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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。- k# a! n# _* E5 f9 d
#include <linux/init.h>* C: _+ P7 U0 m8 f
#include <linux/module.h>: R# x* N  n" e1 ^4 h* v
#include <linux/kernel.h>
8 O  T8 G! }# s9 Z" p1 w$ R4 g$ n#include <linux/types.h>4 U: n; u: c# M2 h+ {7 u0 F
#include <linux/gpio.h>
1 u/ l5 {& y' U# m3 _2 ]3 y#include <linux/leds.h>; D) K  L6 H; m. G7 y& N
#include <linux/platform_device.h>" }. l( Z" a; D/ ]  w, @
7 B: ^8 G1 M4 j0 Y) P
#include <asm/mach-types.h>6 t1 l1 c" r$ ^+ s# t
#include <asm/mach/arch.h>+ r: P! ?4 R) i( [: ?* @* a* g# K
#include <mach/da8xx.h>+ `# f% V$ W  W" e( V. E/ X) {
#include <mach/mux.h>
7 `& [  ^( B2 a, s+ q3 B5 ?- c* L$ T% y
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
$ s. P: o: \; l5 {/ \* s#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)4 q( t8 e% Y6 j* A
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1), Z' T2 I4 x5 N2 Y2 E
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
* n# o$ }8 O+ F5 `- |4 y! ^3 P; |+ {5 G( ^
/* assign the tl som board LED-GPIOs*/3 L5 W) d: H3 b, e
static const short da850_evm_tl_user_led_pins[] = {
9 S$ F9 C: w; N        /* These pins are definition at <mach/mux.h> file */
4 m8 o% z9 B% N1 f9 r        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" Q1 [: }) }! q) O- a; y        -1
3 @8 S/ D1 g' H8 @. I/ S7 [- J};
. m4 s6 Z& d# @* M: h* x) b* `  j6 D5 u7 k. [" H% @7 \: w, l
static struct gpio_led da850_evm_tl_leds[] = {
1 b& p/ q* t! u9 q( a5 E- ?0 V' Y& |        {
$ G; |! H! E! o6 O% J                .active_low = 0,. }  T  u4 U  l7 E" |1 ~7 G1 P
                .gpio = DA850_USER_LED0,
8 {# _" q# b, Q7 R                .name = "user_led0",+ |; W, V2 v% E7 Z# @3 H
                .default_trigger = "default-on",
) o- a4 v  |+ `7 a        },
" V# D* t0 g$ P$ x        {
( W) b1 ?3 V: j; Y! \" g. u4 B                .active_low = 0,
$ P8 l' }' u. L% C# ?8 u! u% z                .gpio = DA850_USER_LED1,
; A& T7 n, s" ]& J8 Q, N                .name = "user_led1",7 {+ `( l7 ^6 X
                .default_trigger = "default-on",/ J+ L% I8 e- G7 W' Y
        },+ B  e- U$ a4 }" f
        {& R4 B0 i9 _! C. d( [
                .active_low = 0,% o4 E: m/ H, Q: }  `
                .gpio = DA850_USER_LED2,
( W! D$ G9 O. O2 I; u' ]: H                .name = "user_led2",) _$ B' C8 q1 A1 z1 }3 \( ?* v3 I
                .default_trigger = "default-on",
( O" U; @4 x- t        },
( O8 X3 @9 \* x+ K0 [        {
6 `& I# U- E# t+ l5 P                .active_low = 0,
% l8 D3 x" d8 {1 `: k. Y                .gpio = DA850_USER_LED3,4 @3 k; w; F* h- F
                .name = "user_led3",3 `* N; F. t/ S/ k% k
                .default_trigger = "default-on",  Z; ]1 H1 B7 |& Q: y
        },
% M- n5 r. i& ]3 Q. i- X2 _};
" I/ F5 p4 g4 j- h7 `
4 N) h+ c7 v' s6 J1 rstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! |6 M/ P: ^: y; M! N        .leds = da850_evm_tl_leds,
/ Y* W  x) _/ g1 l        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
5 Z: A" m; a4 p0 l};
: L% Q- _$ R2 t! }7 F3 O$ ~, s5 k4 b7 D6 g, Y
static void led_dev_release(struct device *dev)$ k1 N* J0 A% S5 V7 E  v+ ^0 K
{
+ c1 u' S9 k$ c/ {  f( ?};8 ?7 J8 a/ k& t4 a/ A: ^+ n

$ |4 x' S+ u2 Y" n0 E/ Nstatic struct platform_device da850_evm_tl_leds_device = {
" [+ N# R! m  v& I* U        .name                = "leds-gpio",
' F+ f9 W8 U$ C2 M        .id                = 1,
. z! V) l, N! y5 {4 Q, I' L& L        .dev = {
( Y1 d# K' Y* J2 }                .platform_data = &da850_evm_tl_leds_pdata,
/ q" j$ G3 B' I. R4 ?5 A1 K9 h                .release = led_dev_release," E8 s4 t5 g; l! Y7 I
        }
! v3 {% t- v# V2 J( ~: J5 D. h};1 k& J& V& n, D' R- l- ?0 ]3 D, c
% {( M' S/ i  l! w: s. E
static int __init led_platform_init(void)
3 H; t) o2 f5 e! M7 n{
& S' i7 a9 `$ d& B! @        int ret;* |4 f" u( G) p5 Q' n, [* N
#if 0/ i8 O9 @# L6 j& R/ s
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
$ E! v2 l# J- t6 Z: f8 k        if (ret)
! e5 ~0 h$ J5 w+ M/ y                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"! [$ u8 b3 [4 u+ {" _
                                "%d\n", ret);- _& T! P2 |" T1 X+ x# d9 v/ E' y7 R
#endif
' z) y8 J! V/ T$ ^- R  J" a        ret = platform_device_register(&da850_evm_tl_leds_device);
: _3 n; G" }3 I        if (ret)
& S$ {: P0 E1 Z4 ^( N1 P                pr_warning("Could not register som GPIO expander LEDS");2 Q) O! T. r2 _0 z) ^
        else8 \7 ^6 @" ?! h; t% W& D4 N, \
                printk(KERN_INFO "LED register sucessful!\n");
7 N6 f$ z. }1 |8 b# ~  I
: j- w- u0 x# M        return ret;" J7 d4 U# ?* F- X6 U! P2 Q2 v+ q
}
" Z/ k7 v% `% }
: t' B8 Z8 ^+ y) v1 `0 xstatic void __exit led_platform_exit(void)
3 J9 w9 g% h  g4 Z{
: J9 o) ?8 c# `4 m2 c0 P; C# o        platform_device_unregister(&da850_evm_tl_leds_device);
: c5 w4 K4 q1 i- [$ n3 y# Q; \, c! e: B  V8 \
        printk(KERN_INFO "LED unregister!\n");
2 }  w3 O1 E0 D0 l}4 r& q" b  B% I+ {1 |! z

3 X5 V& T; {8 Lmodule_init(led_platform_init);
' ?0 l4 x2 l' V, k4 ]module_exit(led_platform_exit);3 |/ s* T( {6 z  ?, A! w, \

1 X/ z& t; h1 i; Z! ]6 m6 [MODULE_DESCRIPTION("Led platform driver");
9 I) o4 b, Q2 l7 h- MMODULE_AUTHOR("Tronlong");! ]( D" h* L3 z! G: C
MODULE_LICENSE("GPL");* I: _( @2 Q" |

" V! i1 O9 \8 I6 I1 n9 b! Y. F
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-15 06:59 , Processed in 0.038826 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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