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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。0 C/ o; R8 }& R% |5 C  d, K
#include <linux/init.h>6 l/ M- S' H8 A! v8 [
#include <linux/module.h>5 x8 s/ C. @) u- P9 k4 V# y
#include <linux/kernel.h>; H+ \& y& _3 ?) i8 U" x' F" L
#include <linux/types.h>
6 Z) q, u5 S1 G( V# d) s#include <linux/gpio.h>
7 j1 O! L" j4 C# |  t$ A0 \#include <linux/leds.h>
' c2 B( c! ?* z0 J+ z#include <linux/platform_device.h>$ H' ~% V* H. k  _

4 L/ \! k; J) o. R3 B3 y- w' E# E: T#include <asm/mach-types.h>- z) ~2 w. m" H" P* a
#include <asm/mach/arch.h>
% S+ E( x- K$ N3 Z$ t#include <mach/da8xx.h>; U( W% p6 Q1 d0 k: T
#include <mach/mux.h>$ `* h; o! V4 H' h! z4 L; u( C" ~
1 m9 K4 l% J1 b  V/ N
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)% H' q) ^2 ]; m8 D" v
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
- d  x1 {3 R1 k- {#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& s7 k, a2 T1 C& {1 i+ ^8 X$ y0 _#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
+ E+ z0 f0 m+ ]; w" @" `2 }( W# U  o. C: ^  D
/* assign the tl som board LED-GPIOs*/5 h5 T1 I7 b2 }
static const short da850_evm_tl_user_led_pins[] = {
. O& E) C. Q5 O. ^, c& ]        /* These pins are definition at <mach/mux.h> file */
# c6 y0 ?/ R! j8 z# x        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ @! ^+ ~' X! k" T
        -1
( w' D& |5 O; x/ {# V2 ^2 A};
3 @- B) X- i: f& r$ ?# {& [/ @4 }- c1 P- Z4 ?
static struct gpio_led da850_evm_tl_leds[] = {' ~0 g  I+ ~( L2 H. Q8 Y
        {
: J% h- A) g8 [+ c                .active_low = 0,
' _0 _/ S% t2 E* k, b9 ~) t                .gpio = DA850_USER_LED0,0 r. [% |- ?' S  z2 }5 d- F. ]
                .name = "user_led0",. j1 R& w2 \6 M) _! c- R$ l
                .default_trigger = "default-on",+ P, b" p: {& `3 X  j& c0 m! `
        },: x: P, s$ C4 }/ M% @# i
        {: D" f" m( {# E0 ?; f* T7 Y
                .active_low = 0,
& n7 }* `3 |. r) \  Y                .gpio = DA850_USER_LED1,
' H, T; }# z  p; h, X9 k5 ~                .name = "user_led1",3 G  Q' H# X( i" c
                .default_trigger = "default-on",
5 |6 N# f0 z: x6 L8 S, ?) o( T        },
8 ]/ V8 n5 z" T: }        {
& W: e0 R2 c* ^8 k; n                .active_low = 0,; z9 B* @- O  e5 i
                .gpio = DA850_USER_LED2,1 u! A: O0 p" |5 u' |
                .name = "user_led2",
7 w5 e/ _8 U: h+ p/ ^                .default_trigger = "default-on",3 F  T' ~; w, I
        },
4 l2 d0 d. J) `* F) h. m        {
0 r/ x+ f8 |* E                .active_low = 0,/ y- l' e/ Q8 D/ _. M' y% Q+ Z! Q' y
                .gpio = DA850_USER_LED3,: H  S* {# ~" @! d$ [4 P
                .name = "user_led3",6 p& Q& f; G* d. [: O; M$ C" f( L' G
                .default_trigger = "default-on"," \& _- T! X0 [: n& R. L$ x+ y& W
        },, |) Q' I  ]1 a; `8 Q( Y9 L
};
6 T) F: h+ D4 S0 z3 b' D! [
3 H6 e1 M) D2 T9 I3 x/ Gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, J7 |- c: n) r! E& j, M4 \        .leds = da850_evm_tl_leds,
; ~. P9 e/ v$ @        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 }, a* c; Y! ?$ a; r1 r( [6 p};
, ]& B' K7 ]$ r7 \/ ~4 i; l: W6 N* `
static void led_dev_release(struct device *dev)
2 O0 v' ^! C1 O3 N0 Q! W- D' \{
" U+ F' J8 r# u" ^. P4 t" S};
) ?/ F  N  R$ w8 I, @" U% Q! M
$ @% X  u! }( b2 ?( Sstatic struct platform_device da850_evm_tl_leds_device = {
/ j0 a  n' Q1 |' g+ y        .name                = "leds-gpio",. C# f7 h3 @% S" e# i" D
        .id                = 1,
( N( C4 l; ^$ Z6 a5 m        .dev = {+ s$ Q/ o9 ~4 l$ m% V
                .platform_data = &da850_evm_tl_leds_pdata,6 O" i- W$ N: @, j( }! A
                .release = led_dev_release,
: B1 t" Y$ v6 P+ |/ n        }0 M3 Y$ e8 Y8 k
};
( {9 b( \" e2 B$ o; V! @; G# M0 G4 x. x$ U6 j8 P) ]8 Q
static int __init led_platform_init(void)
) d5 L# \  ^7 i& l  J{* Y9 r7 H0 v5 Z- z- a/ \
        int ret;
8 Z  P% i1 }; |1 `+ B$ t6 h# h* @& a4 P#if 0
/ j0 H$ H$ s% P        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);# w( w0 [' h6 R% h$ X
        if (ret)
' c2 E& D! u( p% c                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
2 _+ e% q* r- g' D8 z                                "%d\n", ret);) ~! d: n6 ^! m, d# `5 h' Y) k
#endif/ [) I5 h8 p+ _/ T$ K
        ret = platform_device_register(&da850_evm_tl_leds_device);
- ~5 z# R! ?, W        if (ret)
2 j  I" U1 \( r$ G+ J                pr_warning("Could not register som GPIO expander LEDS");# y5 }- j4 R7 z( V7 D9 t& B4 g# ]
        else5 S. D  z; I8 y7 r
                printk(KERN_INFO "LED register sucessful!\n");( z& P$ Q$ ~+ t6 w  N& z( `$ X
, P5 Z) w6 x0 V1 H2 X, T
        return ret;
& R/ K- D1 N0 D% s6 N$ }  o}
1 `1 E! V. g! T/ z6 n: o6 e" s/ ^; i+ q4 v% I# }2 o1 P! S: r0 b) z
static void __exit led_platform_exit(void)
, f1 Z' Q6 P. H# h6 Y% C{
& o$ U% }) D6 J0 D$ v        platform_device_unregister(&da850_evm_tl_leds_device);
! f, H4 V' L1 C1 c: g% T' L9 }' Z. v. R; P6 }' v
        printk(KERN_INFO "LED unregister!\n");7 u7 q0 W( a: f8 w6 S8 o
}, E$ R0 o% b6 r( j) H& A

. U% G9 d( n$ I* f2 ^% K# ^/ dmodule_init(led_platform_init);
+ j, l. o- ~5 A3 emodule_exit(led_platform_exit);4 Q3 U1 w* B; x# V
6 R+ d0 q1 S+ w! l9 e+ k
MODULE_DESCRIPTION("Led platform driver");# B0 t: [$ i8 c" P; G0 ]
MODULE_AUTHOR("Tronlong");  }4 r0 D, c7 W0 Z. a
MODULE_LICENSE("GPL");+ B- a* `7 b2 [2 R7 f

' |) l: N1 z( l* ^4 W+ m
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-21 00:32 , Processed in 0.039186 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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