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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
) O; S$ T7 ~* Y#include <linux/init.h>
& w8 R) q2 w; R8 O+ }9 L#include <linux/module.h>
1 d! B+ ]$ b+ z" p0 ]0 U% E3 E. o#include <linux/kernel.h>
( O2 o8 k" y3 P' ]5 A7 y8 H#include <linux/types.h>7 `# C5 B: W7 x4 ?+ [2 U
#include <linux/gpio.h>
( r6 B6 z  O5 z#include <linux/leds.h>
1 @) g8 M; X4 V5 O. m6 ^. }3 J  ?; x#include <linux/platform_device.h># r+ N3 ~* r" h+ X. l
: i* W% Z3 k+ e+ m6 k
#include <asm/mach-types.h>0 g$ g! ]+ N) J
#include <asm/mach/arch.h>
8 y' p( F" h8 h0 P- s! X#include <mach/da8xx.h>
) Q' \' ]' _, a  o. x' P#include <mach/mux.h>3 k( ^( L  o: q! C: e' M
  d5 S. z! F" k4 Y
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)9 t! _$ x2 Y+ e0 }' q
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 Q$ C8 H8 O( x2 g, D#define DA850_USER_LED2        GPIO_TO_PIN(0, 1), m' w9 Q$ N, `; O& F; `& W
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 C7 M) _0 Y# i7 r. V& i/ V

: V# S  o* w. M3 w  x- A% J: X/* assign the tl som board LED-GPIOs*/
7 V8 C) @' b1 Zstatic const short da850_evm_tl_user_led_pins[] = {
/ c) M  Q% P/ k        /* These pins are definition at <mach/mux.h> file */3 e0 E- S6 W- j7 _; B$ S! d& d
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 W6 d2 \. o. A: ]& |        -13 ^8 \/ Y* `/ J  L7 w
};
6 J# u7 ]! R3 o  s7 \1 Y8 e9 _- b) L1 h  \' {8 a3 _+ j
static struct gpio_led da850_evm_tl_leds[] = {
8 u& v% N. ?, e3 N5 F        {+ r8 @7 x- k5 p9 U# u
                .active_low = 0,
1 ~; s* t! R( ^                .gpio = DA850_USER_LED0," y9 l2 s. l( u8 k7 @1 w) W
                .name = "user_led0",. v7 K5 `( v& R3 M2 I8 c8 b8 G
                .default_trigger = "default-on",
5 J. L* J% e" d* [' R, C: M        },
$ e2 A" m7 ?+ G- Q! E3 P8 S( K        {5 t* N. I) F, K. ^3 e( G
                .active_low = 0,
# ~. G" E  R% \. B2 C. s7 O                .gpio = DA850_USER_LED1,) P2 C5 ?+ ], m0 d" C" f; d* R( ~; s
                .name = "user_led1",
4 D* I3 T% j( E& u, o                .default_trigger = "default-on",
' X0 m, C  v( W" @, h6 t+ }9 T        },6 U# a+ |) C1 ]
        {' x$ {! e6 r# \% s! T
                .active_low = 0,  ^/ c& H2 F1 n4 {: q, q- J$ k
                .gpio = DA850_USER_LED2,0 d/ r% V/ T2 I. o) [
                .name = "user_led2",
. P6 |6 W; T' j0 O3 y- `. c* A( O# @5 o9 q                .default_trigger = "default-on",$ C6 X& v( A9 B
        },! }% L$ P2 t+ p0 ~- ^
        {
+ y7 s! V' y, E5 q" A, d                .active_low = 0,8 n4 A* b' {. _/ R/ [
                .gpio = DA850_USER_LED3,
8 V' t1 Y5 a7 z                .name = "user_led3",
( l9 d; n5 K4 |8 C* T" I2 L                .default_trigger = "default-on",6 B7 ^' @! a3 L" Z
        },
/ i& f4 F, w9 c" E};
* _- v7 g7 m5 s+ E. o9 h, v1 e4 @, W0 B/ d3 y$ [  K0 C* v
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
8 l9 S; }2 V; \$ r* j        .leds = da850_evm_tl_leds,1 a& \. Y2 D' [& F9 w, k+ b! N
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),8 Q  O) d- g" z, G& ?0 D, P  y' i
};- v! |2 N/ D! \' C2 ]0 n1 {

5 D8 E) J: W$ Y6 v! u) Y& A7 Wstatic void led_dev_release(struct device *dev)
( I3 w, s' ?# w, K{
+ R% t( n5 u7 x$ p  q};
5 n  W- w! ?8 }. R1 y! |/ z- N3 m
7 b% W7 T: x5 O2 d0 Ystatic struct platform_device da850_evm_tl_leds_device = {
0 D: F* l$ C4 ?3 K        .name                = "leds-gpio",
, x5 n# K' D$ q. j* H; P( ~        .id                = 1,! D5 p8 a5 b; ?
        .dev = {5 |2 y: D. b+ t- P4 N6 m- _0 F
                .platform_data = &da850_evm_tl_leds_pdata,* Y! `' k# r4 u9 Q2 Q
                .release = led_dev_release,! [0 |0 j8 X! j3 C$ z* v
        }/ U: I: x) P- V. ^& D6 M' m: E
};3 p$ J  B4 Q# E# G8 C0 z
4 |$ D5 b7 ~( W6 ]0 p" `  F
static int __init led_platform_init(void)% T3 ~  g% O+ n
{
4 i' S) m. y& g; R' Q7 ?        int ret;" O3 r' I7 Z4 Z1 c2 ]# Z
#if 0
0 ]& N) O7 f* e2 W3 d: E' y" u        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; D: U2 C6 F& ^3 U
        if (ret)) j1 R! W$ ^% \/ g( c! E
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ ?* G+ V) W5 `
                                "%d\n", ret);2 j! n! p4 s7 v! D0 X
#endif
8 n$ Y$ ]) |' A" S% L8 i        ret = platform_device_register(&da850_evm_tl_leds_device);
+ a# k" [$ I& a4 J- K2 B: ?# r, l        if (ret)
# R* e# H7 O! _. ]# f: ?                pr_warning("Could not register som GPIO expander LEDS");" d" m# o, X4 {) G7 R! j, f. O
        else
1 X: D0 p- a+ ~8 i4 K& a7 p                printk(KERN_INFO "LED register sucessful!\n");* F( g/ c( t2 v, y* b4 ~  K

) ~7 ~9 L5 ?! _6 Y' a        return ret;- N* C- u" E8 p2 O5 l
}6 M  u5 u, W1 i( o. R

5 Z$ j' ?' D& pstatic void __exit led_platform_exit(void)0 r8 o% i! L" x4 H5 Q$ O. b
{- j7 J  O+ b! N0 _
        platform_device_unregister(&da850_evm_tl_leds_device);# d% [2 B3 P( K( f9 `  m

0 b* \: V1 _. T        printk(KERN_INFO "LED unregister!\n");, N0 ^+ w" N" H: [, J
}5 }9 `' A9 Z& s# @

1 a+ w! Q4 ^: F; {' _module_init(led_platform_init);
9 F4 t/ J$ J3 f% V- M' _' A- xmodule_exit(led_platform_exit);
6 q; T3 f  z$ r* }. W% g# a# F& I: Y, Z5 ?" z1 {# u
MODULE_DESCRIPTION("Led platform driver");
2 T8 C" S# f# g* `2 B$ dMODULE_AUTHOR("Tronlong");& e, E' D! a0 m7 z! `
MODULE_LICENSE("GPL");
1 G) X3 m8 M9 L1 j/ M( R3 g# [, z$ w* I
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-4 16:16 , Processed in 0.040266 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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