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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
8 p/ k) p1 g% E# R#include <linux/init.h>
+ c3 N4 a/ H6 c: C#include <linux/module.h>- z; \4 J  B  x7 U/ A
#include <linux/kernel.h>5 N- D: Q" u2 Q" c  r
#include <linux/types.h>
- |! }5 z9 w5 }$ s3 f#include <linux/gpio.h>$ k& U, k6 Y! x7 b4 z4 S
#include <linux/leds.h>
0 v+ j8 G9 S# q* Z- b#include <linux/platform_device.h>, B/ U2 T" R# {( x/ w; X
9 q/ t7 Z2 m) d% Y% {+ i" w
#include <asm/mach-types.h># R  X5 k9 \* j- |5 ?
#include <asm/mach/arch.h>
& J2 _7 D! q$ m  \- y% \#include <mach/da8xx.h>- j- ?: r# D2 f7 p0 B5 `
#include <mach/mux.h>9 j! t# ]1 O) a2 l( W

! U' Z# M6 e& c/ z. V: w: e; c#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ ~8 C4 X6 j1 Q% l5 R9 M
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  H( T, {, d* M#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- b7 d9 ~/ y8 O( v5 Q  u$ e/ T
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
& M  n6 Z: m: A7 o! O5 M8 \4 u$ y1 I3 T. E. m$ e' |7 }6 V: p. |
/* assign the tl som board LED-GPIOs*/* n% L6 d! y8 u) u9 J
static const short da850_evm_tl_user_led_pins[] = {" y6 F. e* v+ d" o2 C; Z% J
        /* These pins are definition at <mach/mux.h> file */) m- r; N& f, B- P0 p3 k
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,8 f6 ?" v. [  z" z- D/ t
        -1& o, R7 |+ M: w+ a6 Y7 ?1 {5 X7 T
};2 [) Z$ t; e- M* B# i7 s' w8 H
! Q* k: ~) L& M  `% ^
static struct gpio_led da850_evm_tl_leds[] = {7 l" D6 K8 q+ M
        {
+ W" m$ C- k4 {3 H                .active_low = 0,3 |4 O2 i  P: |+ T# e" L- }
                .gpio = DA850_USER_LED0,
8 s1 B6 L  D- f$ T6 }0 a- |8 S                .name = "user_led0",- [7 b% d, O- K; Y
                .default_trigger = "default-on",& v. A  v6 h6 T" V3 C3 h- q
        },
$ o5 o* L" _3 [) Y. y4 S8 T& R        {
& ?' i  J+ _4 s9 O2 a                .active_low = 0,
( o( A  j* i: }. v& y                .gpio = DA850_USER_LED1,
& u, I6 _7 b4 `* z: z" f4 i                .name = "user_led1",1 }$ X9 Q9 O  S
                .default_trigger = "default-on",
" k, m% B1 J3 c- u        },- w- @) r' ~3 f. ?1 a! v5 v5 J
        {& a: O: t% H8 f
                .active_low = 0,& E, I$ ]% P( W- y
                .gpio = DA850_USER_LED2,3 h4 R, W' G% _1 D
                .name = "user_led2",
3 l8 u+ G/ ~3 m                .default_trigger = "default-on",
+ y3 n/ u7 ?, F        },( z) V" e& Z* \! ~- z0 }; B- ?
        {% k$ x/ [. x! ?$ o) n1 x
                .active_low = 0,
4 _9 e" I& p$ R$ B7 X/ D6 a9 y                .gpio = DA850_USER_LED3,( s% R' T5 ?( d+ a  o( E% `( w
                .name = "user_led3",0 I& f  [( X# c, i5 O+ C9 e
                .default_trigger = "default-on",
4 `2 U7 E; [& R" A: w        },5 Q+ S( [; L5 U$ D, `2 ^3 h
};
# M& p2 y. o6 r6 v/ x9 b7 A/ g1 Q
7 t/ Z- ]% o* |  C) T) Gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
( U0 s) Q5 G8 Y, G- H        .leds = da850_evm_tl_leds,
% R* u9 R+ E9 M& r! V        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),0 }+ |- d# l$ ]  q
};
3 F6 ~; s' |6 y5 Q: `4 k% y: e! v
' s* ~! m; r" A# fstatic void led_dev_release(struct device *dev)4 c' v7 e- c# D, Z6 O1 X9 q! d
{
$ m; G0 ^* D0 h" J, e8 Q$ Y; z' X};! d5 o: u( w' Z& f2 P, q7 Z& X

$ ]- K* j2 N( p* w, d8 t4 }static struct platform_device da850_evm_tl_leds_device = {5 C3 X9 T% W, W8 r6 _$ T' h/ t( \
        .name                = "leds-gpio",  H* s: m) g. J! E& q" S( r. T
        .id                = 1,
) {1 j5 J9 \; J) m  w+ V. K        .dev = {
  `7 n+ _, N9 o* ~: T- h- v                .platform_data = &da850_evm_tl_leds_pdata,! @9 |5 }4 i# X" v
                .release = led_dev_release,
2 L# C  \1 m* J7 t2 e+ p/ M4 \        }+ \( A. k0 ?; |/ v0 Z
};
* \9 C8 \6 h7 z
/ Y, d1 W9 T+ dstatic int __init led_platform_init(void)3 y' L/ f! H- _, U4 ]
{
! ^9 g) Y/ t0 ?! m! g! U        int ret;
. ]# c7 X3 l/ x& m1 t#if 0
# G" J8 \' i5 @% h& }  U        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);/ o+ r# t4 B; N0 M5 R
        if (ret)
7 u% C: [: P( j8 [9 b. @0 S                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
, U/ J+ G4 o; m5 v5 v( R                                "%d\n", ret);
$ M# w, N. J, G  p#endif
  n" |0 S- ]4 q0 u1 p1 x% B/ l        ret = platform_device_register(&da850_evm_tl_leds_device);* s  r* t  L  \1 N3 H. T/ i
        if (ret)
, i$ a5 C- C- e) f$ k                pr_warning("Could not register som GPIO expander LEDS");
' X# @, N/ ^4 l  d& u        else3 ^8 l: M) @/ X$ {# U9 C, j4 Q/ V
                printk(KERN_INFO "LED register sucessful!\n");
* }" z4 G/ c9 E* `* y* n" y& V& B1 V3 a. H
        return ret;: c9 {# D8 z- J$ `' Q
}% j# B/ ?5 y/ S, g0 k4 d

9 J7 ?+ W' }1 Ystatic void __exit led_platform_exit(void)/ A/ m" J  l" ~
{/ `$ `; t* W1 P( o
        platform_device_unregister(&da850_evm_tl_leds_device);
  R7 A6 F2 U  h9 N2 X' m6 j. ~! J5 x7 s' p+ H
        printk(KERN_INFO "LED unregister!\n");: a* q9 _9 V/ B  s. b
}
- v. _) z! F+ d1 r+ i5 E3 h3 t: y9 i3 W0 i0 i& Q  R
module_init(led_platform_init);( b( d& m8 p4 W
module_exit(led_platform_exit);2 L6 ~* D3 s  L# i* o
: i: E6 s# b( s9 h8 D' u/ f
MODULE_DESCRIPTION("Led platform driver");
& g5 i$ O6 @; w" V% T* @MODULE_AUTHOR("Tronlong");
# I( h' I  F" xMODULE_LICENSE("GPL");
* U, q. o- s5 _" R% H
' f6 K( ?" W0 h) Z. J2 M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-10 00:54 , Processed in 0.038581 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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