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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。+ V& `" v1 K! ^0 r" X' T4 @, K
#include <linux/init.h>
1 Q0 E: N$ W, @#include <linux/module.h>
) R; U+ n: r& H5 n$ u#include <linux/kernel.h>* K4 j) V( M9 ?3 t  _
#include <linux/types.h>
% A7 R3 E3 h# G* A#include <linux/gpio.h>
  G" J* t! e0 Z' j3 R#include <linux/leds.h>
4 F( {, G* i  \0 v#include <linux/platform_device.h>
$ i5 [9 b8 E, h7 P: A' ?+ Q+ P5 _# V3 V  t. W( K" p( |' J; y' K
#include <asm/mach-types.h>& v( c% s2 l' n9 B$ m
#include <asm/mach/arch.h>
* G9 S2 T) Z* s#include <mach/da8xx.h>
4 n, v, y& Z2 J4 }#include <mach/mux.h>
- ?$ s# V  [/ Q5 a# c9 i7 I9 g2 F' U- h5 F8 i
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0); z' l9 v1 q0 c( H) `! `
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)! K: X% h- w8 h8 y# f! e2 J
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 t, K- o1 b0 |. r0 q7 D) C
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)! G2 g1 w8 i) T  l. b

) T* [. a' T1 {7 E/* assign the tl som board LED-GPIOs*/9 T0 |- @% {9 Z6 W+ G4 P5 k, }
static const short da850_evm_tl_user_led_pins[] = {
& P, W0 M2 X5 R  O; {7 m2 j        /* These pins are definition at <mach/mux.h> file */
8 a: e" f  @+ V/ X. G- E8 v( n        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
% b/ k8 `5 M* d3 d+ Y/ b        -1, F6 ?: c5 H6 U) a3 r- h
};3 }7 R2 i. L! b0 P7 }/ q' N

1 X) H; z$ L2 r! O. l7 g4 nstatic struct gpio_led da850_evm_tl_leds[] = {" h" N$ H% J& o: E& e
        {1 I4 C# l% F& d5 l* M; R
                .active_low = 0,
; a2 t) q4 O: l9 h$ H! q; W                .gpio = DA850_USER_LED0,
8 p' Y/ c5 I; C7 O' i3 q" K9 A) h  W                .name = "user_led0",
. o; i6 h4 J0 c# H8 i  p                .default_trigger = "default-on",$ G; y' w0 n, k: Q5 g" G+ ]: ?
        }," i; M5 p$ B. V* {0 X
        {4 d% e. N3 Q9 q  |/ h! q
                .active_low = 0,
& o2 n& [# w9 C8 k                .gpio = DA850_USER_LED1,
3 R; i  n  ?2 f- z& _/ @                .name = "user_led1",: u$ f& _$ ^2 z: T% k
                .default_trigger = "default-on",
, F9 _) y, j2 p1 m$ @/ ]  i+ c$ A5 K1 E        },+ S$ a) c* i# F' n5 N1 }) v4 P
        {
5 U+ A1 [% X/ M                .active_low = 0,# D0 o! Q5 Z, S! C8 i
                .gpio = DA850_USER_LED2,# x9 V4 M1 v6 n/ E. a9 Q  g% A, F' |
                .name = "user_led2",
1 O% J' i% D' ?                .default_trigger = "default-on",3 c, H2 ?& I! v) F
        },
2 G8 x! I+ V+ ~' X) b        {8 W8 z. a# Y( z5 F2 \
                .active_low = 0,
5 f" D( Z) i+ R1 F8 u) a! X                .gpio = DA850_USER_LED3,
- f5 M$ n- S& i) m  |! V& |                .name = "user_led3",
9 v; G" H  g+ h3 a                .default_trigger = "default-on",8 q  X. d7 u2 X& M
        },2 H* @9 W5 u9 S+ S; R) P
};
7 {  P, M5 V5 w, {9 v& U5 n/ Z+ z$ B! P6 N
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
) `% }' t- }- _; X; q5 Q        .leds = da850_evm_tl_leds,
, U/ R) ^6 h. n+ n; j3 _* o$ U+ z" t        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 H) L  P9 c) Z+ D- G};
, z. D2 z4 t/ d9 J  D5 O/ X; M6 y6 T2 J! F) a
static void led_dev_release(struct device *dev)
4 z+ V/ _7 i5 K( {; j" ^{
: |) T$ o) `  W7 e" z+ Q};
: E% X/ s2 D5 k, H( Y
/ Z9 p7 t6 p0 F2 O- Cstatic struct platform_device da850_evm_tl_leds_device = {& z4 l, ^7 \5 `7 ^* i
        .name                = "leds-gpio",
0 ~* e' b4 g: B! l        .id                = 1,
& F# _% ~( b' X        .dev = {5 z' n8 D6 P) Y) Q, g' ?& X, ~* N
                .platform_data = &da850_evm_tl_leds_pdata,
6 l9 _) M! g! W6 Z# r1 P                .release = led_dev_release,) p0 Z6 R! g" j/ B
        }: e1 Y7 f, e3 Q( @+ u  a
};8 C1 n* e3 t: D
) [5 ~. `: V7 ]# G6 E
static int __init led_platform_init(void)
8 a+ Z0 g/ t- g0 z9 e{
( S& M3 ]4 a( v# l        int ret;
4 k5 C; Q  q9 }#if 0, C3 A8 H( v3 B' C2 J. M
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; }3 g8 |  ]% E! U/ d8 G4 x) u
        if (ret)
( ?; u3 E! e, C9 r/ i  Y( |* J0 {0 U- e                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  P* @! @$ Z( T+ `
                                "%d\n", ret);4 ?$ P" [/ P8 u. b2 n
#endif
2 Z# {8 M$ x' |3 E$ a7 x$ `" w/ O  c        ret = platform_device_register(&da850_evm_tl_leds_device);
+ R( {1 A6 I2 `/ V        if (ret)
$ x% W9 h6 \; r4 k' J                pr_warning("Could not register som GPIO expander LEDS");; I7 i: y& A7 ]
        else
# C5 {' h$ C6 v* s! G# {                printk(KERN_INFO "LED register sucessful!\n");
: u6 A+ }0 {. s# M$ {2 @( E  A0 z& ]6 s& \& F
        return ret;) |: @& b( m# q; N: b$ k4 I; b
}% _5 A  d. u  p, D( ]- `8 k% R

$ T' V" |" j) E5 J% p' Rstatic void __exit led_platform_exit(void)) y, E: Q# {* Q: b
{
2 B% I# E; J: P' F! d        platform_device_unregister(&da850_evm_tl_leds_device);
5 M( M* g' R7 k/ y0 q0 E
* \8 U$ i% V! `: _! n        printk(KERN_INFO "LED unregister!\n");
8 I0 O1 d; f# S6 f# n  d}8 a0 f, u9 k) [5 y  t! [3 n/ ?

- ~/ y; W3 E& m- l/ ], T3 Y% lmodule_init(led_platform_init);
8 R7 x: r- }9 w+ R) W, g& o& e4 wmodule_exit(led_platform_exit);' u6 [8 }- i9 K& ?
) Z( t; W! I+ R
MODULE_DESCRIPTION("Led platform driver");
3 j% z$ H: y" iMODULE_AUTHOR("Tronlong");
0 q/ ~  E  U7 GMODULE_LICENSE("GPL");
" v  n2 N6 S5 E4 t( e7 \4 V9 {' c# \0 L
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-8-26 13:08 , Processed in 0.040744 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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