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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。  {4 ~9 M8 ^  [$ u, K) f8 A, t
#include <linux/init.h>
2 n, _: D3 v1 L! W#include <linux/module.h>9 L" A0 e3 \2 a3 \4 b
#include <linux/kernel.h>
' a; V. m$ u2 @& f7 c1 q#include <linux/types.h>
" W7 v) C7 m* v2 B7 K7 W( H3 H, J#include <linux/gpio.h>
* O; ^- M& d4 A; U# a* x9 O: m* m. z#include <linux/leds.h>
% N  `0 ]: L1 B5 z$ Z#include <linux/platform_device.h>
+ H& }3 n* q" _3 y4 L: d6 e5 \, j3 R4 ^7 ]2 S- u! P
#include <asm/mach-types.h>
* j% N5 l" \0 P' U#include <asm/mach/arch.h>
; m0 Z! k7 m% [5 z5 O#include <mach/da8xx.h>
, ~4 ?, K1 t* e8 n#include <mach/mux.h>6 G5 l: b& ^5 V
4 |: F/ L9 ~" u6 k8 a1 Y
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
# k0 T8 ]  _9 T  \% @# f" i#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)4 h$ N. f0 g0 h$ h
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
0 C8 z% r4 b1 E# E2 O& P+ p; g#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
$ A# q3 |3 Z# }( o  W
! ?& k6 q6 D, a$ K2 X/* assign the tl som board LED-GPIOs*/0 ^- s0 Z6 M# w+ D  ~* r# C
static const short da850_evm_tl_user_led_pins[] = {
0 Q* t: R$ `+ H2 ]% |1 n& G! _        /* These pins are definition at <mach/mux.h> file */
  v2 E6 k- `9 z; V8 p# }  ?" L+ Q        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
& m! A- |: h3 m        -1
* u+ i* |* j. f2 V$ I6 h};
1 P1 _+ K3 f( I9 m( n" y. z7 n* ]  u6 m
static struct gpio_led da850_evm_tl_leds[] = {6 c2 X0 Z& L3 u: S5 y' ^
        {$ Y# G7 X. r! C
                .active_low = 0,
- f$ G) p  K; Q8 ^* ~/ D' ]                .gpio = DA850_USER_LED0,
6 M6 X9 B) K' S2 {9 X                .name = "user_led0",. I9 j: p0 g' @/ T7 t
                .default_trigger = "default-on",0 v+ q* v5 r3 X# @3 N
        },
+ {' `" o* z6 h6 }. u' e        {0 m5 W/ S! k" s) b
                .active_low = 0,
$ z& S5 }9 A8 ~; G' o+ J) H                .gpio = DA850_USER_LED1,
- c4 B: t: k7 r3 J1 T                .name = "user_led1",+ o% @$ m4 N/ H  T8 ?( Z( m+ X! p  r; i
                .default_trigger = "default-on",( o* i2 t; {: E: q8 Z5 J5 Q
        },+ Q6 `: z$ O0 u) ^( j( t
        {
# q/ t3 B4 G5 K- ]                .active_low = 0,$ x6 O9 \7 W$ E3 \3 r) g  o% i; p2 Z
                .gpio = DA850_USER_LED2,
6 H2 v2 e" S  C; R4 C5 Z                .name = "user_led2",
# Z( L9 ^% ^  L" y                .default_trigger = "default-on",
9 E. S, l4 y2 p$ J9 ~# T9 k" S        },3 Q( ], ]( }0 K6 Q+ ?
        {' p; q! Z$ {" }% J2 E5 z" C
                .active_low = 0,
! ~; y/ j1 u4 |# k2 u6 Z                .gpio = DA850_USER_LED3,
; z- V) h$ Q( W. n                .name = "user_led3",6 ^8 P3 N* `5 G3 p
                .default_trigger = "default-on",* I: [0 ^' d# @/ X4 z+ ^0 h( Q4 n
        },, g6 u1 G+ G4 B( X
};# ?; {: d2 V2 @4 ]

0 J2 Z: F; Q* H) V0 bstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {+ {: Z; e9 S9 _: U* ?
        .leds = da850_evm_tl_leds,
& X8 c- }5 S$ W- W/ u& j( x        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
2 J' B" k6 @  F  J};
4 y) D2 _, ?0 {; m- }* x9 Q
0 `! q7 n% W3 h6 \, h% b- P! j5 Ustatic void led_dev_release(struct device *dev)
8 ^) C1 [" W5 o6 r$ x0 n{! M8 F: j$ y# r% S) D8 B4 l5 A8 [
};  ]7 D* z) \, P8 o- C( S) @

8 a# Y/ \* g' |6 _# V: [static struct platform_device da850_evm_tl_leds_device = {" B4 K! h' I  a+ h% r6 v
        .name                = "leds-gpio",
% Q% V0 g* H* S. [1 j        .id                = 1,
  T  n: R6 ~! r4 o0 F        .dev = {) N7 I: r0 p# [7 e) N
                .platform_data = &da850_evm_tl_leds_pdata,
6 d/ Y3 P: n8 Z: {- e* q                .release = led_dev_release,, e6 E9 X- Z/ F, N
        }
5 J6 W6 k9 |7 s+ N};0 I0 A) |  L4 j9 h/ h; [+ s
' c7 z# a5 B: v" H7 R" T0 K
static int __init led_platform_init(void)3 \- y4 ^1 K; j: }4 p
{4 A1 q' ?* \  y; b7 c
        int ret;0 k2 B$ }$ P( ?9 J  c, K
#if 00 {, s1 T+ f, U4 v8 R' ^
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);7 R  K& U& l7 m' H1 N
        if (ret)) q% D% ^' U- @9 G
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
4 @/ k1 M6 f' Z* Y! r1 f                                "%d\n", ret);
- [( H/ e9 [# T9 F#endif( v# w, Y' r+ r- i
        ret = platform_device_register(&da850_evm_tl_leds_device);) @" W' r% H) c4 R
        if (ret)
' s# ]( p4 r, }! X                pr_warning("Could not register som GPIO expander LEDS");
4 V* R/ j4 V9 T, O, Q        else
0 U& ]- W* y2 E2 y) B) H' V, o                printk(KERN_INFO "LED register sucessful!\n");
1 |2 ^1 s4 Q" [2 m8 R+ t
7 j$ G0 i# l, G" S        return ret;6 G7 s. j0 c. ^- c2 \
}
4 c/ C( ^  |: R& v' {+ o: e/ I* U  `6 e, j$ O7 _, b  U
static void __exit led_platform_exit(void)
/ C) t' v" G, F0 I! B{7 h# p* d" p$ d* E! Z% d3 f+ \
        platform_device_unregister(&da850_evm_tl_leds_device);
( o3 X' e1 z3 b+ i  i$ H& [9 }3 i5 ~. M/ ^
        printk(KERN_INFO "LED unregister!\n");" n4 W/ L2 u# _5 N" V  Y6 T; d
}
: |7 H2 d3 V- T& [; Y6 f
# ~( x& j* Q7 k9 Emodule_init(led_platform_init);7 f* a2 a: c6 x
module_exit(led_platform_exit);
9 y0 `. k& r: b7 z+ L
" \. M# R4 Z" R, W9 KMODULE_DESCRIPTION("Led platform driver");& ?' f" C$ H0 W
MODULE_AUTHOR("Tronlong");
, `3 {; ]# U" v. \) d0 zMODULE_LICENSE("GPL");
! R- O0 C" k/ X, h/ |8 A5 A
1 b9 M% s0 p( k. a% N  g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-7 08:08 , Processed in 0.039750 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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