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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 o  L( g3 X  m( s4 b  q2 [#include <linux/init.h>+ _8 ]" {+ {8 o5 P
#include <linux/module.h>& e4 t0 D8 @) a: B/ a5 n8 y: B
#include <linux/kernel.h>. H# r) g( U/ o5 n% R8 d
#include <linux/types.h>0 ]) ~  h; ?5 S9 Q
#include <linux/gpio.h>
/ c' z% C: T/ w* U#include <linux/leds.h>: n3 V+ d3 E- j8 @
#include <linux/platform_device.h>  E4 B1 A! {; @. D2 F

3 u( ^$ y1 r% D; c( I#include <asm/mach-types.h>
( _! J2 w  r5 W# H#include <asm/mach/arch.h>
" }: o# B- K% u6 T#include <mach/da8xx.h>
+ Y1 }9 ?3 Z8 T#include <mach/mux.h>6 S4 m5 J/ `6 |. X

' w6 F! t4 r1 `' ]+ _3 }; o, [#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)8 d+ K7 \/ Q: ~; Y
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 H& `& G8 A5 a& N# X* Z* V# }4 |& u#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 d2 f9 Q$ H2 [  Z7 o& ~7 c
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 o5 i+ N' z9 t0 O7 b" j

1 U4 J# C' W8 F# \/* assign the tl som board LED-GPIOs*/
! h, \; a- m1 l0 R' i" L. r9 ~static const short da850_evm_tl_user_led_pins[] = {
4 K9 T  m( @7 i8 _( {        /* These pins are definition at <mach/mux.h> file */
7 V& m. g. r7 v/ i" {, M        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) C% [  H' k% R0 K9 E( M        -1+ Q. [5 N" U5 k( W
};- T! z0 m/ @/ b' t

* Q. H1 L; e3 N" ?3 Istatic struct gpio_led da850_evm_tl_leds[] = {
6 ^7 Z( [7 T! _6 u        {
) d+ M! D) X0 h; Z0 ~7 M- N+ ^% L                .active_low = 0,/ `, d2 x/ E9 f) U
                .gpio = DA850_USER_LED0,
% J8 [# e" _9 |( g$ L! G                .name = "user_led0",- p" T6 w9 }- a3 ^! V
                .default_trigger = "default-on",
9 f; A5 X, h( P# u8 u; S        },0 W4 k$ G6 k# G) q, K
        {
* C  q$ R" X( Y& \+ h: E% g                .active_low = 0,/ o& M* K& F9 F" s/ w$ V& x
                .gpio = DA850_USER_LED1,
) n; E7 f3 |0 x) r                .name = "user_led1",; c3 M" c$ [5 k9 V2 {0 T. c$ \
                .default_trigger = "default-on",
& z: y& S4 s8 W8 B  P/ L; ~) K        },
+ O' d( p' P6 ], @        {" M: z5 L/ P( O3 J& v
                .active_low = 0,
& o: d- J) l) [7 _                .gpio = DA850_USER_LED2,3 D% x6 p7 ?7 O5 u! N, Y
                .name = "user_led2",: Z( h$ v* Z* B& c: p
                .default_trigger = "default-on",% d5 s2 U$ D8 ?& r
        },$ K& W, A# a2 e* W- Q
        {
: b/ f, V$ T/ ]& X8 a* O8 g                .active_low = 0,% j1 F! y; M7 X$ K' \3 q
                .gpio = DA850_USER_LED3,) p; z7 b$ T1 s. b+ p
                .name = "user_led3",
: b- r. o8 G, s' N3 w; w                .default_trigger = "default-on",6 H) L% E" o0 E6 {4 D# W+ h
        },
$ I2 n7 @% `, r8 A' t};
- V/ E, n8 j0 Z8 |/ B6 O+ B; N- j" I
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {8 J' \: A" `7 H
        .leds = da850_evm_tl_leds,* z; U' b# w% Q
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, D7 `, A8 O$ `( H; d};/ a# v5 F) z. T6 E1 n* u# I( f
3 M) r6 O! t# h
static void led_dev_release(struct device *dev)
2 a, ]9 Y: G: n{
) Z  d% `: H# ]6 g8 K% V) L};
3 P) I$ A- \6 @) L: |) b8 q" |7 S5 f  ^7 K' O5 u/ W1 \6 X
static struct platform_device da850_evm_tl_leds_device = {! G9 u' n7 P2 e
        .name                = "leds-gpio",3 v) D7 \7 l9 k6 Z
        .id                = 1,4 {( m! F0 ]- V. u3 s+ K: O
        .dev = {& x! C9 C: y8 _9 g8 f  B
                .platform_data = &da850_evm_tl_leds_pdata,
/ p0 P5 c8 n* J9 g7 L                .release = led_dev_release,- ]/ R8 S; B; R$ ~
        }# x4 g+ Q' N5 b4 z4 e9 c; U8 B
};0 j2 p: O) t4 P! t
# G9 @( Y! F& L+ F/ Z& d
static int __init led_platform_init(void)
, A. B% x+ F6 ^{
  _1 a0 U+ K* T( A        int ret;& @) U7 t  Q% W* `1 ]6 o
#if 0
* y0 n! k% p3 @3 m5 j        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
/ g/ v+ O5 k3 N( c        if (ret)' J, `$ `9 B% r( `+ ~6 J  f
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
+ e; F4 C3 {, a, J) K                                "%d\n", ret);
# Z1 u, H  F4 [#endif% F- y4 G# t( ?& M: l! [% p
        ret = platform_device_register(&da850_evm_tl_leds_device);
, C; P& U2 c3 B' L% J; K9 S        if (ret)
% K  f# p' V$ [4 X! y; M: u                pr_warning("Could not register som GPIO expander LEDS");- t) R9 ?2 Q  X5 z; j- N
        else
6 q; B: P6 e$ R! G1 {/ ?                printk(KERN_INFO "LED register sucessful!\n");5 P( G' g6 F) k5 u
6 T. o, \/ X$ u
        return ret;
& \+ M; w" L& b" s/ h2 @; t}
6 k0 ]1 x3 |4 B  J9 K, U* \
/ `% a4 G! T1 Estatic void __exit led_platform_exit(void)8 _; |! R# \7 q* C8 G' ?# @. X4 P
{
& Y  r6 X0 ^1 `1 x/ w* t2 I( x        platform_device_unregister(&da850_evm_tl_leds_device);7 l1 X/ I) u. m0 T

! a1 G1 Y& r" E* P        printk(KERN_INFO "LED unregister!\n");6 E' u8 }5 ?! ]1 m- O9 d
}8 ^( q8 @. y0 ^- E
1 B! {, M0 I9 g) P3 {. B" Y$ l% V
module_init(led_platform_init);3 n0 Q8 L# F  c, M$ N  F
module_exit(led_platform_exit);
7 T" j8 T+ M  |  Y2 E+ \2 l9 I5 a2 f. Z' s' {  K1 B
MODULE_DESCRIPTION("Led platform driver");
7 _+ k7 b4 H4 v) h, IMODULE_AUTHOR("Tronlong");
; g# n; l2 S& a$ ^MODULE_LICENSE("GPL");
9 D; s% _3 }! }, u/ J; ]! K* K% m; f5 x5 ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-25 19:21 , Processed in 0.040612 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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