程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8112|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
9 v; ^- g7 w" O% a#include <linux/init.h>
1 |. F% A% h; I4 `- i; f. K#include <linux/module.h>9 o+ T. w" V9 s
#include <linux/kernel.h># z* b' z. b% `
#include <linux/types.h>
0 `5 S6 g& s' E* \) w#include <linux/gpio.h>* Z$ F3 ~# R: H: R( }
#include <linux/leds.h>
4 ~! I3 y8 N2 e; A#include <linux/platform_device.h>5 d3 L" m5 {8 K

  S6 y6 o3 _0 v3 e5 q#include <asm/mach-types.h>! e$ U' G2 ^- A' I: b
#include <asm/mach/arch.h>" y( L! k% B! Z+ u
#include <mach/da8xx.h>" Q8 }0 N4 X" Q4 t6 g3 f4 ?
#include <mach/mux.h>1 j% i$ O) X- @, o! H/ x( @

" Y1 T& j4 F" E1 @0 M#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
5 t$ N" M* J: C5 o. T  G% B& U  c; Y#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)- T; o, ^4 l# Y* k  @
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
. ~2 K$ f( \5 j* s( \  L#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
0 C( S9 q; Z% r% _( }. D, e1 N( R+ D$ [0 H5 k& i1 f: s* y
/* assign the tl som board LED-GPIOs*/
& t: S: r2 b7 @/ kstatic const short da850_evm_tl_user_led_pins[] = {
( e4 o% L( e! v3 m7 @- }, h        /* These pins are definition at <mach/mux.h> file */, A7 ]; ^' D: s* W+ u5 ~
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,, N. S* X. Z" ^5 S0 ^- x% m: w
        -19 a& k4 W6 n; e! }1 |$ A; X
};( ?( ]7 n( J1 z3 H2 @( ]
! I/ M$ W4 Y( W& A& J
static struct gpio_led da850_evm_tl_leds[] = {
, `0 v: ^: r. A1 m) o        {
7 P+ Q  }; H. j. o                .active_low = 0,) I" P, n+ t  _4 F: J  ]' ~9 i
                .gpio = DA850_USER_LED0,  ^: e* Q* L9 v5 S
                .name = "user_led0",: k* z: v3 b/ i/ M6 |2 B& h
                .default_trigger = "default-on",
6 h# m5 O/ O. i2 _. k+ H        },6 W( P- f: r3 }1 U; F( u
        {) d  Z2 w* ]( e' H3 |
                .active_low = 0,
" Y1 J/ k- R8 ]1 a2 L+ ~2 ]. h                .gpio = DA850_USER_LED1,* I8 P; D. M$ J$ J: s! ~
                .name = "user_led1",
3 P0 F( _: @( J3 M                .default_trigger = "default-on",
! Z; s4 }  U3 o0 [        },% }; ^) _3 Z5 W0 \
        {
) L" G( \0 @. [6 y! \" q                .active_low = 0,
4 ^- W/ g2 W. r5 d                .gpio = DA850_USER_LED2,
  F) C* q# }% o4 ^/ @0 i% e, q" g                .name = "user_led2",0 z  q4 i; o  S* L7 \
                .default_trigger = "default-on",. j3 ^* F! i* b: `. q
        },5 |' ~; v# R) N' ~
        {, N" R8 n: C' o6 W: n  B
                .active_low = 0,
2 g1 K3 P* d- F. J' C                .gpio = DA850_USER_LED3,
2 ?0 b1 o9 p5 G8 o4 b/ H                .name = "user_led3"," v! r! b' M8 R. o2 ], I
                .default_trigger = "default-on",+ @1 z* Y' W1 Y1 ~
        },8 s, S/ Z# h/ a1 Z! q
};
5 U: m* s3 M! X# K
& I# g1 F( }; istatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {" Z' d6 z7 ~* t- a
        .leds = da850_evm_tl_leds,
9 Q6 W& L3 b( S/ y) I! |4 O/ n( ^) B9 K        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
3 Q! i) V- C( J9 ?* Y4 d7 ^};
/ ^6 I3 C, g: D; F. O  a* g- p0 o/ L) z! |& s# ~. y
static void led_dev_release(struct device *dev)+ J& J& G# A% R* x
{
/ P5 p9 x2 W5 D2 p};
  b' h7 v" X& b, e4 x( }7 f) I# U# b& ?2 r
static struct platform_device da850_evm_tl_leds_device = {9 }4 b  T- V- X5 y( w" o, ~) R
        .name                = "leds-gpio",
: Y# t$ ?2 A' i6 V  j6 m' K7 i& ~. u        .id                = 1,
2 z' r' T* b; x6 j9 E# B& A6 n4 h        .dev = {
: c$ s( y, }) Y                .platform_data = &da850_evm_tl_leds_pdata,9 V4 `, K' y( N: y6 _7 k! |
                .release = led_dev_release,
. z9 u. }$ ?) {" y0 _        }) m* w1 Z& b; n2 [
};
( ~0 t, |7 [3 r9 G  M
: N! T. a3 k, F; Z; rstatic int __init led_platform_init(void)) L' n' q: `& p% g3 _
{: a  B- V& r3 y( G3 i
        int ret;
% y: r+ q9 d% D' W4 d! l. e& Q2 V#if 0
: H+ x( N$ @9 |  u        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);5 Z) \0 f$ V- V+ Y6 |
        if (ret)
2 u3 N6 G3 i5 e5 J; s( u                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
8 @' h$ O2 d' |7 `! `                                "%d\n", ret);
' g( `+ k, y+ E! ]2 u( f#endif8 A, p$ D. p0 y  G  w4 w+ M
        ret = platform_device_register(&da850_evm_tl_leds_device);
0 d" t! i8 @+ U, W0 P4 E. q        if (ret)2 M! f- L5 b6 C) Y
                pr_warning("Could not register som GPIO expander LEDS");
# u4 k0 }: W+ j$ ?2 u1 u        else) ]( L) {% N' Y  D
                printk(KERN_INFO "LED register sucessful!\n");+ k7 [* {6 E! Z: W! o. q

6 ~3 f) z: l$ `) k0 C        return ret;; o" a" X+ K/ G% I) ?% z) F' i, f0 Q9 p
}0 \$ ?: c  p8 Q/ ?5 m2 H

$ O/ d0 M* t; {+ q) ]6 R9 `static void __exit led_platform_exit(void)
# j( U2 F$ F! M% o! i: \! J{) b' }/ G  f: d* Z7 l+ S
        platform_device_unregister(&da850_evm_tl_leds_device);
. ~/ K7 D, [; t4 C4 ?9 ]
% ], q" ~% q9 Y  C        printk(KERN_INFO "LED unregister!\n");
  [3 \8 @+ R5 o4 b9 |}* T9 r6 G; [( `, U  r! }' M

5 N  e  B0 i4 @/ `8 [2 r! A4 D: Ymodule_init(led_platform_init);
5 n1 l1 \: [5 i* N( X% U8 Emodule_exit(led_platform_exit);
, k8 v0 X8 T& E& A. L( {1 a% q  _' h- [, m; M7 h
MODULE_DESCRIPTION("Led platform driver");' n6 ~; U$ H2 ]+ x- V% U6 r
MODULE_AUTHOR("Tronlong");
/ U; O* W; D4 U/ Z" rMODULE_LICENSE("GPL");+ z1 g$ Y3 [" R+ M

( V4 Q) j7 W0 E+ W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-1-18 12:06 , Processed in 0.039428 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表