程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
" r5 ~0 [/ g: J8 d1 R  ]#include <linux/init.h>( k- e' f7 U" ]1 Q( V" h( m
#include <linux/module.h>' d) _, _1 Z) k, u
#include <linux/kernel.h>% e" T+ n& d6 X5 d6 w1 @. ~4 W
#include <linux/types.h>
/ s0 r! L5 J$ q. k) h#include <linux/gpio.h>
0 S! i% u# _- P3 o#include <linux/leds.h>4 Q) W, h( G* }* Z2 y
#include <linux/platform_device.h>/ }$ @9 n3 r, T  U# t$ A
- k1 k& p0 q* c0 u! V) E; z
#include <asm/mach-types.h>$ z: b6 T2 ^: k* B# ]  g+ \
#include <asm/mach/arch.h>
: }7 p0 k/ P$ |+ [/ V1 j. Q/ \#include <mach/da8xx.h>
0 {) @7 _) o6 h. o% B#include <mach/mux.h>
3 u1 I4 f  d5 W% g( _( V( g4 q/ Q+ f. n5 t: b$ y) W
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)) ~( H& y1 B" }9 Y& C+ t
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# V: A2 m$ B/ u+ }  P$ J! z5 Q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)1 ^. D7 G+ F! E& s% @9 m8 ]
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
; G) t, t6 [" t: [# P' x* L
* r9 @/ w! g6 ?/* assign the tl som board LED-GPIOs*/
, A& G0 W9 L3 t& y, N" l- mstatic const short da850_evm_tl_user_led_pins[] = {, R0 q: U$ D  w! ^
        /* These pins are definition at <mach/mux.h> file */
: W9 \/ y) A, P) ?        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,6 G8 `6 `# w5 ^3 V( y- I
        -1
8 i$ V& G( C  h1 X6 t) v0 w" }};& U4 Y' h5 D9 M8 L/ ], o
  }6 X2 w0 N& X4 z- V
static struct gpio_led da850_evm_tl_leds[] = {
4 y7 s3 z. J9 X* f9 F& T        {
+ r4 o) F* ]- T, O) m6 w9 K                .active_low = 0,, V7 Q- `. b$ Z
                .gpio = DA850_USER_LED0,
' O+ Q( i8 C' w9 @# V" Z                .name = "user_led0",
$ n8 }3 m' o; P7 v. ^2 j, [; o                .default_trigger = "default-on",
3 j7 v6 R; N) H3 q3 |$ L3 M        },: ?" I% p, A$ D* D9 R" A) k
        {" z% A# Y, O- }* K
                .active_low = 0,
9 G$ e' k" l* W# j6 {+ X! K                .gpio = DA850_USER_LED1,
! I! D5 _* u  H% J4 F                .name = "user_led1",4 K9 X, Y- ^  J8 l/ X% F
                .default_trigger = "default-on",$ O; z7 F, I4 S  W6 D( b
        },7 j1 x! u- Y" n' n& y+ G. p$ L
        {/ O# D5 t& P  g, O" e
                .active_low = 0,; e! l6 F+ Y  j
                .gpio = DA850_USER_LED2,) k4 W3 L/ o7 m% ]$ Q
                .name = "user_led2",/ X3 X; r: u' W4 K5 w8 t
                .default_trigger = "default-on",* g1 W7 @3 P  G* c
        },
/ R5 t% s2 S+ o( z        {) @- I2 ~2 d) g, S
                .active_low = 0,
* p0 y. e5 ?3 I  ]* p7 m/ L                .gpio = DA850_USER_LED3,( h+ c. r; G5 D
                .name = "user_led3",% b" h% u! o% z7 e; s
                .default_trigger = "default-on",) I: Z5 i% `. A" m( w9 d5 k8 }
        },
+ ?9 t) {8 n* r1 t};% K. P8 F/ {0 x+ Z' P+ N

5 h2 D5 a* Q5 |# ustatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
5 B3 z+ V9 {+ T$ t' h1 ]        .leds = da850_evm_tl_leds,( G0 M  r: r/ E+ X# ?1 Y
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
. ~1 c- s6 g6 s# L, G6 u0 u};
; j0 a& H8 T: L7 L0 q& t) d1 I* @2 ~/ Q& ~
static void led_dev_release(struct device *dev), f/ Y6 ]8 P' r/ ~. e
{! l& ^5 A) A& G8 L; Y! N
};$ m; O4 I6 X! A9 S' J% i7 |" x: Y
: Q, a+ R6 ], W- ]- ~8 V
static struct platform_device da850_evm_tl_leds_device = {
8 `6 ]9 U7 I5 @        .name                = "leds-gpio",
8 F' v& S/ x2 N5 r3 N$ e$ s* k        .id                = 1,4 n) x$ w) m# D, t, o+ [
        .dev = {
+ ^1 S8 i9 E3 `) {( X7 y$ ?                .platform_data = &da850_evm_tl_leds_pdata,  |. l6 |2 P8 w1 r
                .release = led_dev_release,
' K# K5 I+ A2 T0 o' g        }! w0 i( T# a! W) k
};
* Y$ L& K- [# }2 k( N2 x7 w# t8 t7 J3 u
static int __init led_platform_init(void)& U5 }9 |% A/ o: b
{3 b  x0 o- b7 J; @
        int ret;
3 M" h- I& x( ^- N' a# t- ?#if 0& u8 x( F; y) G, c+ `
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
4 J6 v; k9 V! J0 U8 ^; D+ d# A" _        if (ret)
9 N5 A+ d* U8 r0 U                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
1 U: v" m, A5 a! _+ j                                "%d\n", ret);
( e3 }$ G7 r( t% g+ r2 c#endif/ i5 c, T* a9 f3 O
        ret = platform_device_register(&da850_evm_tl_leds_device);
- u( j- P1 J7 \3 Y. G        if (ret)# j5 |, N1 F. j
                pr_warning("Could not register som GPIO expander LEDS");6 M: e+ P) _. S0 Z( B, P
        else
5 ~4 ?$ v& Z4 _' s3 t5 y' m                printk(KERN_INFO "LED register sucessful!\n");
5 N/ W& g& T; }
# h/ U7 `6 y: t        return ret;- A' d% Z/ L% f& O* }  M% H
}4 i8 i) \9 B/ M9 T

) K, u; Z7 `- o3 l5 {# t+ u/ Bstatic void __exit led_platform_exit(void)
3 Z# ~' W6 `7 {8 h0 z) C' Y{
( s9 ?" r' @2 b, B6 m1 W        platform_device_unregister(&da850_evm_tl_leds_device);
2 ?, |) L8 p$ ]& q" M. O; E/ a
( H) f0 }8 j: H3 o2 S, ~        printk(KERN_INFO "LED unregister!\n");7 |! @9 k- k$ ]' t
}
/ Z; n  Y5 ?: v; J! G% L
4 V7 V, U$ d( Ymodule_init(led_platform_init);
4 U, N- S9 s$ b. |, X6 \! ]  fmodule_exit(led_platform_exit);
3 t- Q7 s9 k) d0 v- c. b1 I( e) a% f) V
MODULE_DESCRIPTION("Led platform driver");) x# W+ U, J, k( t, B
MODULE_AUTHOR("Tronlong");
) g2 h) u0 K7 g: B/ v' \MODULE_LICENSE("GPL");
# z% `. e$ p/ ?" X
/ u5 @! i/ u% X/ [& E8 e
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-28 17:06 , Processed in 0.038683 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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