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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。' ?" G4 O8 T5 l7 z* S& t, k
#include <linux/init.h>! H; O' n0 M7 L6 j
#include <linux/module.h>+ p+ x1 J9 t4 Y! @' I! u
#include <linux/kernel.h>
- k( x+ Z, h% p2 k( f#include <linux/types.h>3 ]; a) j; ]4 W
#include <linux/gpio.h>! y5 {( D5 |! h* _8 L1 g: j% s
#include <linux/leds.h>
9 p. _) Z+ K/ b! k) C#include <linux/platform_device.h>! z  D- _0 [0 M, C  F

2 u! E* h$ S2 a" H( K+ t#include <asm/mach-types.h>
  f' L4 j: F# |6 b6 a, v2 S+ e#include <asm/mach/arch.h>; N- c/ T0 R" R% t; J. e& e
#include <mach/da8xx.h>
$ \( N) C# R$ W: u! z* w#include <mach/mux.h>. H5 I: U/ }8 H6 V( _+ E( k
! M& Y- y$ j" L0 p0 L- H
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)+ p2 X' ^9 Y" a
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)3 v1 z4 c3 ~9 W/ r6 M1 q/ S
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)# u  Z! t* }, G# X: d
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ k7 f2 H+ r& c5 M  R

4 z2 D- s  ]3 S/ u/* assign the tl som board LED-GPIOs*/* _( c$ I$ N9 E
static const short da850_evm_tl_user_led_pins[] = {3 ?+ A7 J/ a3 S, q$ K) G8 }
        /* These pins are definition at <mach/mux.h> file */
1 F; L) Z* X, h6 p* J        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,7 w% {  U, R0 \
        -1
+ ^$ X+ K$ m0 L};7 P( E, F7 \" u! I5 K- F
$ A, z1 W0 G& k. I8 S: k4 O5 J; Z9 a6 J
static struct gpio_led da850_evm_tl_leds[] = {
, s$ ?5 z  w0 N        {6 \$ K' |" B* b* Y3 M- m
                .active_low = 0,  b/ H- M3 k7 V6 @( N9 e5 g: A
                .gpio = DA850_USER_LED0,7 f( i8 Q. S( H- e. }. D! c
                .name = "user_led0",
* m" Y1 c1 R1 c                .default_trigger = "default-on",/ R0 Z+ [0 ^$ Q$ _9 K
        },; \8 W. L& s# K5 P) y. p. A
        {  h1 r* V+ \; Y5 e
                .active_low = 0,# G1 w5 f- Y3 O/ Q
                .gpio = DA850_USER_LED1,
- j# c1 A! J7 I  F% U                .name = "user_led1",# _/ z+ a* y' x9 z
                .default_trigger = "default-on",
) ?6 P$ Q) V6 g# X$ h. a9 u        },. X; o4 l  H1 `: N
        {
/ A# e0 r  _* b% V                .active_low = 0,. T0 b9 g1 V/ V: s2 V% Q
                .gpio = DA850_USER_LED2,6 I/ ]2 S8 ^+ `, Q" b
                .name = "user_led2",$ \' \& Z; v: H! L# W% a) O
                .default_trigger = "default-on",9 E; V, I) N6 S/ }+ Q1 n
        },
' U+ n: Z; O  _& T! v3 |) p        {
. O( N9 n( h6 J0 N$ ~" B- U                .active_low = 0,
, j7 b, _. c; X9 k: L% y                .gpio = DA850_USER_LED3,
- T' Z; s: o- v% b: A2 [                .name = "user_led3",
5 A4 N* k" G6 H  t  _4 a2 }                .default_trigger = "default-on",8 r# Y7 Y, Q8 @, b0 |+ t
        },+ t" X% `: J, H6 g
};* u/ M$ L* n  z

, m3 y$ O' a: E) Z( D: X7 Rstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' c) ^9 P* D+ f+ ~; C: X) O
        .leds = da850_evm_tl_leds,. n/ g, D$ |& f
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
( R. s$ W# }: q+ C3 s};, F8 j# h$ _, F1 {- f) }, T
: C, q3 c. H, X4 z! \/ ^- Y
static void led_dev_release(struct device *dev)) f# h5 B0 ]# k! B  r
{" k- B: N2 x5 u) e+ G0 O
};
2 b: D6 [( P2 A" p) b4 w+ W
* v$ i* l  N* K+ `: I( sstatic struct platform_device da850_evm_tl_leds_device = {
6 k& e/ E0 U5 j( z) F        .name                = "leds-gpio",+ d$ ^8 {7 W4 F* B
        .id                = 1,
1 A  y2 h' }% X) D        .dev = {2 p2 g0 o9 E. Z7 |0 b( s3 v. v
                .platform_data = &da850_evm_tl_leds_pdata,! Y+ n. l/ t% b2 U
                .release = led_dev_release,  ?" I$ C9 |4 I, G% c) O
        }
5 x* z. z2 H& g9 O};5 S) P. C& L) y% d, X4 q

9 E- _7 p% M$ `# Y5 N$ |5 Z- Gstatic int __init led_platform_init(void)/ a( E& P( x* }- g
{
# w! c5 ]$ e0 y. p        int ret;
5 p  {0 b& W* ^2 r% B#if 0  `$ \( v6 |6 ?2 g& ^
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
0 J, Q( K/ j- Q/ Z$ z        if (ret)1 l  Y- M& r) Y! n+ `6 ~
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"9 r; b+ F2 e% f, @2 S& x5 y& _
                                "%d\n", ret);
1 k( v0 {: j1 P0 n0 u$ Z/ A#endif
& B6 o3 z$ `8 v. ^: }& Q( Z        ret = platform_device_register(&da850_evm_tl_leds_device);% ~9 X: I5 u3 P, p+ k
        if (ret)
* Y8 u# e2 E$ d6 S                pr_warning("Could not register som GPIO expander LEDS");
2 D0 i3 d7 A; W" o        else- I  \! j$ @5 G" f: D+ j
                printk(KERN_INFO "LED register sucessful!\n");: \, e) x' s3 x! C/ T& ?/ f' y

7 n4 t0 `. {- _        return ret;5 o+ `! {( t6 K# Z6 z, j. ~2 u
}* s# Z8 `/ l2 n  W
- I. V) v6 a; U7 A1 v* N
static void __exit led_platform_exit(void)
% B# m7 z( _; _5 O( O9 b) g{/ O0 p1 @% x% @% I0 S
        platform_device_unregister(&da850_evm_tl_leds_device);% [& v4 F1 g" L# ~( ^
7 M- P6 A8 A* {7 R: a7 `
        printk(KERN_INFO "LED unregister!\n");0 B9 Y4 ^% ~$ B$ ?$ x
}
+ X- G" B& s8 U! k# [5 k  g  N6 Q1 ~- c" q. p7 D* ]/ ]
module_init(led_platform_init);1 {4 F- ]5 d0 Y; l) c
module_exit(led_platform_exit);1 S2 Y& S; T3 _* v( l  k$ c2 g) M

% o, U& I) D5 X+ MMODULE_DESCRIPTION("Led platform driver");8 V. j' w, X1 Y0 k8 p" f
MODULE_AUTHOR("Tronlong");
& c0 D) r1 r; h) R' Q% a7 vMODULE_LICENSE("GPL");7 I) n' \  q; Z8 D/ ^# B
! {8 q' k+ g5 G9 W) d5 p4 @; H" y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-27 19:40 , Processed in 0.039726 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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