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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; j) S; t% S3 V6 u8 u7 ^
#include <linux/init.h>
+ \% R8 Y/ m7 P: J#include <linux/module.h>
# ^! Q+ y' s( b& L+ `3 w0 o#include <linux/kernel.h>
$ P7 W, M( b. ~2 M' @; O/ D) m' n% w' I#include <linux/types.h>
# {2 j, n( Q/ F! z* V3 r#include <linux/gpio.h>, @+ T8 ]/ j! [9 x: E
#include <linux/leds.h>& L+ m( [  y( y9 O3 r" G
#include <linux/platform_device.h>9 P$ [% `- F: v2 T
' r- e8 k  ]  j, ~. e6 v$ ?
#include <asm/mach-types.h>
, C1 v4 o* F+ @5 s; V#include <asm/mach/arch.h>- [/ `" V" C2 X( E1 R9 d5 n2 q' r
#include <mach/da8xx.h>* K/ |& C& d, ?$ Z8 c- z  t
#include <mach/mux.h>
) R9 q/ a' R. G0 F( a! F
% v2 J& X- p4 B& f; ], b#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)3 ^4 B$ b# y. o" m
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
( E8 B4 r3 h! Z8 ?) T( R; {1 m#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- x( @3 ]9 |- I- |' S! |$ _
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)! b5 ]  V5 J" f- _) N
3 {. Z7 K' E, I  o! D' |/ r
/* assign the tl som board LED-GPIOs*/
' d& t# }$ ]* E0 d5 H; ]9 X# d0 _3 `static const short da850_evm_tl_user_led_pins[] = {) P) I$ [7 b. }& b9 {
        /* These pins are definition at <mach/mux.h> file */7 H: S8 M' D$ v( N+ g( S0 g
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
3 ?/ L8 ~" ]: L; g3 o$ w+ r7 M        -1
8 z- W3 y( i4 R, p+ F" e};
+ e  a: P7 y0 \4 r; Y" A. I/ J  l" X  j' C# K5 U1 C& i' ^; O# z
static struct gpio_led da850_evm_tl_leds[] = {
7 e! m# ?; N9 {  R  H8 v        {- x" c- f2 M$ W1 I2 X
                .active_low = 0,4 v% J  d( X2 j, I4 T: d* j
                .gpio = DA850_USER_LED0,
+ |3 M( |2 M: b. Z. u5 U2 {  ]                .name = "user_led0",
) V( R9 W, R8 U. b/ }                .default_trigger = "default-on",5 A) z5 G/ \. ^
        },
3 J1 L, b3 d: i8 j9 R$ i! }" h" H1 B        {& H8 [8 y* N) M/ w( d' y
                .active_low = 0,7 d0 X* _' b! y3 d7 N
                .gpio = DA850_USER_LED1,( [6 Y7 D3 f* [. n
                .name = "user_led1",
' C1 {8 l, x2 z5 O                .default_trigger = "default-on",/ L+ V3 V6 k/ M& b5 t/ S& a( y' ~
        },# K8 S1 |" {+ `4 O: j) }3 C
        {3 x/ _# d' h4 Y1 s! M0 d
                .active_low = 0,
* j% h3 Q6 ^+ l5 O( S/ x( s                .gpio = DA850_USER_LED2,9 z. Q) Q2 m  E9 @( W4 A
                .name = "user_led2",/ X2 W- z$ |2 B. g: e" u% M1 i
                .default_trigger = "default-on",
6 \+ L" d( v! h4 Y6 F1 Q        },. J1 J# \0 b! r4 h& t2 w5 `
        {
' ?+ `2 F. l3 O- k. ]& k0 b. V                .active_low = 0,
3 Q' u  }# J4 g4 _8 S- U                .gpio = DA850_USER_LED3,
. M6 b) ^: C4 A; m5 Q! w5 j                .name = "user_led3",
$ K3 i* T, [  E# M$ i' g; y. Z9 g                .default_trigger = "default-on",
  {3 {* C5 E. K6 q1 p7 |. y5 \        },/ y, m2 E2 F+ L9 V  o% T+ L  u
};
+ W5 c% J8 s  k. `7 |
5 t0 o7 l" H$ A6 n, F. fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {3 {! V) Z9 ]) {0 N  A/ v. Y5 W+ \5 D( N
        .leds = da850_evm_tl_leds,
# o- l0 W7 O; I) w# b: [        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
$ r: x3 U0 V) Q# L3 c$ y% j: R) `};
' I9 i- Q% J5 x. t8 ?# j8 |. A5 I- j# K7 y
static void led_dev_release(struct device *dev)
" y( L- x  U5 W4 V{* D5 _& ~. E, G$ r5 @
};
. Z% S, H+ y7 E, \, v- V% F' s! C; @  }3 f
static struct platform_device da850_evm_tl_leds_device = {7 f- u" o6 l$ K' `* h. n
        .name                = "leds-gpio",- Z( P; m1 C( }+ g0 Y1 |
        .id                = 1,
0 g1 H0 n: Z1 b. F        .dev = {3 t% e8 p, L: C) W6 [  h( h5 J
                .platform_data = &da850_evm_tl_leds_pdata,
  `9 W  D# z2 ^! H' y8 |# p                .release = led_dev_release,5 p. |4 ?; ]  \' R6 w
        }
2 T; r  T  A& C- v};6 y2 Z/ m7 O" w# v8 ~
- W1 B# T0 Z6 D7 a. ^
static int __init led_platform_init(void)
: g  y1 A! G$ C& j{& a1 U) @/ U: i% F" [
        int ret;
# W4 f3 N, k& C; a#if 0
3 P1 T: g# X  O6 y  \! Q3 z        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
$ d: f8 o' A3 q# h7 P/ ]        if (ret). @* b7 D* f, i' ]7 t" T& n
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
+ N$ K0 M+ E; Q; r! b7 {                                "%d\n", ret);
7 E4 }1 }2 N2 K. E5 ^/ w8 [( I. R#endif( D7 `) W5 O4 y7 ~
        ret = platform_device_register(&da850_evm_tl_leds_device);
' ]- y0 I" X9 r/ _- j! ~- \        if (ret)
8 L* ?1 h0 g8 @2 o# d3 K                pr_warning("Could not register som GPIO expander LEDS");
2 u. L0 o4 G& x$ a        else( F: L1 f7 `2 \, {8 F7 T6 s" ~
                printk(KERN_INFO "LED register sucessful!\n");
  h* H9 w  J+ @4 _& y# U) ^! G4 X: @% d6 _
        return ret;, g: E5 d$ W; c; S1 W
}
, Y, N" y& ]% q' r; i
6 s5 C: y; g8 {$ A- s. O, X) sstatic void __exit led_platform_exit(void)
/ d; E/ u/ F2 K3 q* ]{: m0 e* Q( E" n7 o- p% r3 b/ f& K) L
        platform_device_unregister(&da850_evm_tl_leds_device);4 r1 q! |; z" v
0 l  f/ _) K( ^0 p$ q% N# t
        printk(KERN_INFO "LED unregister!\n");
, r0 L! l1 ^5 W- H% i. _( H}
+ ^3 u9 @7 }/ m
) ]/ F) L& t1 N0 X6 w  wmodule_init(led_platform_init);
: n( O9 b& Z! h; E* p- Z# B: [module_exit(led_platform_exit);
2 t/ y/ v. Z$ s0 R. v, v
; d* M' o; F. n. _% ^9 xMODULE_DESCRIPTION("Led platform driver");
- X6 |$ ~& j$ ~9 c7 L, C: aMODULE_AUTHOR("Tronlong");5 m- D+ u# r9 P* m& A9 g
MODULE_LICENSE("GPL");
" p$ ]+ g# U( V8 |. ?$ V- B
, o6 b& _! }. y1 _* h4 ?" x! R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-14 04:38 , Processed in 0.042599 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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