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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。# b! |0 T; H  b& a: F( i
#include <linux/init.h>1 k$ d5 v# F4 h& P8 ~) D
#include <linux/module.h>
  b; D! a7 K9 d; h1 S#include <linux/kernel.h>
' K( D! u2 \- }7 x#include <linux/types.h>
# E7 h. z& i& Z4 H  o- o#include <linux/gpio.h>
6 J( g; w1 p9 S+ I" l" C4 t#include <linux/leds.h>
2 ^6 P# {. g% S$ A#include <linux/platform_device.h>
( Q( B# \6 X& D; K8 j$ b' m/ B! U9 ]: ?; |$ \
#include <asm/mach-types.h>: f# d6 r1 x6 Y6 k
#include <asm/mach/arch.h>
* p3 [0 p) _: a$ N; U* U2 E5 Q#include <mach/da8xx.h>/ v! i$ q- v9 \, e
#include <mach/mux.h>1 O! @% y5 A# g# ]

) s% R/ O: K! C9 x0 a+ d#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
$ H* C8 d7 w% j#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)/ `5 a* Y/ c& U  {3 n
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( T; H& r; P1 @" G4 r" X
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
3 }+ [2 j0 N- o6 F0 q' @$ j6 m/ Q3 I! Z: I. q0 c  f% Z- C9 N
/* assign the tl som board LED-GPIOs*/
; [9 K6 t& b; s3 Q& ^) T& @$ lstatic const short da850_evm_tl_user_led_pins[] = {1 y% k# s! _& e0 [; ?. T
        /* These pins are definition at <mach/mux.h> file */8 H' u" t& |1 a5 S6 N
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
2 V$ ^& O0 }) K$ R        -1; j9 M1 i5 V. ?
};1 u9 g9 D! f7 j! `

( S% m* l& Z1 l. [7 E( Ystatic struct gpio_led da850_evm_tl_leds[] = {: e5 r% p5 e, P1 D7 B8 t! U( l
        {
" l# m' M9 u" E                .active_low = 0,
, f% ?3 I9 n+ W8 a# a+ j                .gpio = DA850_USER_LED0,
! b* U7 b% k5 K9 u- r; R$ `7 D4 ~                .name = "user_led0",
% R) w5 k" ^9 R, f                .default_trigger = "default-on",9 c( f; e% `7 T
        },
' p, O, \) U4 \7 t3 {        {
) d+ t3 m$ y% H- t2 I& C, u                .active_low = 0,$ E- p1 C8 @) J# q; D& o' h
                .gpio = DA850_USER_LED1,/ l) p) \6 q4 E. |5 O1 Y
                .name = "user_led1",
' e9 [) m6 z5 ^! {" A                .default_trigger = "default-on",
6 z5 d2 k) i7 o- W        },
# V! q  H1 d  H; n# J4 ]" u( ?' z        {
0 P, {' ]: r: {$ Y                .active_low = 0,- L* _9 O& a( v4 q7 n/ ]  o
                .gpio = DA850_USER_LED2,, ?. `! v: d. O& L( z! d0 J
                .name = "user_led2",* u( G0 \4 i9 o/ ]) }
                .default_trigger = "default-on",
. M& ], N9 z: Z; \% ^7 l        },! m2 T: v& D) ~
        {
0 p9 f9 @* x  J                .active_low = 0,& k0 `. {5 d- ]
                .gpio = DA850_USER_LED3,
) R. }5 x- v  Z                .name = "user_led3",
0 H. _4 P0 b0 U! I) }                .default_trigger = "default-on",! m1 J* t! h: e3 z/ _; O1 r
        },; v, B0 `0 o4 ?( K
};' |7 A% P" S# B, `

9 `& `: K( H3 A+ Lstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 \+ h3 m+ ^& v" S# W) u1 a        .leds = da850_evm_tl_leds,/ q  J8 P) X; u5 j, n- y* O+ G* Y
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 @- P& X* B; V3 S. y6 c
};, E+ _7 B; P3 p7 B3 d

; }% ^, @+ t6 y9 Y! y) Fstatic void led_dev_release(struct device *dev)
2 H$ J( P( r8 ^& h' Y* F1 H! U8 O6 ]{
9 q+ d; j2 r5 Y' R};
, h2 `1 |+ k4 D& |
, E& K5 m( e) f/ c9 zstatic struct platform_device da850_evm_tl_leds_device = {; a5 j9 a! O# Q" ^7 x
        .name                = "leds-gpio",8 j$ G8 z  l% l, m5 C& `: [
        .id                = 1,' i) p8 W3 p8 w$ s6 T1 @8 n
        .dev = {4 Z7 e6 F' W* R# L4 p, _1 I
                .platform_data = &da850_evm_tl_leds_pdata,
: ^" X! u: }  n7 J3 ^7 y* L7 Z                .release = led_dev_release,2 e  M& Z2 e8 f3 c6 t3 |$ u# e) C9 O
        }
# |$ {  I/ M/ z) B- u2 M$ \" h};
9 F5 e( j+ [$ X; J8 G4 ?
: d( l* C4 u1 B6 [static int __init led_platform_init(void)9 k# R  w$ M' o" h) T+ [+ k
{
- l/ h, {+ S2 q* j% R        int ret;7 j9 T* \! @% n6 |# B8 Q
#if 0" O3 i) X0 D& k0 B
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- J1 c+ u% Y3 u* I6 d2 G! C' S        if (ret)
) y4 f* s# m5 O                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"7 `/ {; }, p( J  o
                                "%d\n", ret);
  a& n- U. }3 k' S8 K  d# J5 Q' Q#endif
$ u( ^% @3 {" r: o9 @3 F( A" L8 T        ret = platform_device_register(&da850_evm_tl_leds_device);
+ U: c: I8 b$ N5 j9 A8 u, W        if (ret)
  Y$ I/ g- c) ]9 x8 f# ^                pr_warning("Could not register som GPIO expander LEDS");
+ H0 ]/ x$ j! I        else
2 ?" _, S  a: z) y( ?6 K4 }7 z                printk(KERN_INFO "LED register sucessful!\n");
. C% z3 J; f0 K* M6 a* `8 y7 `5 \; a, a0 D7 w) ?5 L  o1 |- l
        return ret;7 L% p2 a( b0 A, m8 U
}
# V9 G3 y% f( U" \( F, \
! F( Y: C' o4 X6 Z; O, S, ~: Istatic void __exit led_platform_exit(void)' m" A, [" ?8 }" c
{; X$ W2 N3 J) i6 u7 U. e/ M4 l4 b
        platform_device_unregister(&da850_evm_tl_leds_device);. q) p% v- ?, R5 e

( ^. T; D% Y  M, O        printk(KERN_INFO "LED unregister!\n");2 ~* ?5 `5 s8 {' a8 A. i1 G
}
. A; y! ~! ^! K+ |+ a5 _. B$ y+ Q7 V1 D! H, \5 e
module_init(led_platform_init);
" C' H- i6 o- j* G& Z. \, Kmodule_exit(led_platform_exit);. l. Z1 r% O3 i2 E5 X0 }0 h! J8 S

. }5 E( T+ `1 \/ pMODULE_DESCRIPTION("Led platform driver");! C' z0 v1 M" n$ I$ Q
MODULE_AUTHOR("Tronlong");
8 J0 ^$ O7 A; p, y1 C2 BMODULE_LICENSE("GPL");
5 l5 U5 p( I( ?! }" N$ W/ e) V/ |/ ]( D( ~1 k9 [3 U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-20 05:32 , Processed in 0.039230 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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