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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
* \( w" `6 n. @$ q3 K2 [* j#include <linux/init.h>1 \+ J$ @  |# U2 z# C1 ]7 E4 c
#include <linux/module.h>
" L( F: S8 j8 K* M#include <linux/kernel.h>
; a% e% K/ e7 d: m& d( c#include <linux/types.h>
" }, N& r/ |2 E1 t#include <linux/gpio.h>6 ^+ e' H( d! O: O
#include <linux/leds.h>
; h. ~; W2 `9 A, h! \* L#include <linux/platform_device.h>7 V% ?3 Q  U; ~" Y) M5 F) l, y

/ F+ }. d' A5 b5 h8 Q. P#include <asm/mach-types.h>
% O; j1 m' R) p8 D$ K" }#include <asm/mach/arch.h>
% g% E' Z$ Q9 k3 P. p- B9 M#include <mach/da8xx.h>3 Q$ j8 E4 S1 T( ^
#include <mach/mux.h>
, l( E3 N9 [8 c( g% v; {- Q
8 V+ ^) a+ b. P8 E7 k. r0 e3 D% |#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
! B' @- B( u' C8 m7 F9 L#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ U) y  L) I5 D/ h2 Q9 A#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)) `* p+ D% d! m2 \1 C/ p5 X
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
) R4 z. H+ s8 \9 ^+ n% N$ B
1 Z. w2 G/ ~+ x: \) j& j/* assign the tl som board LED-GPIOs*/
- ?/ F! O, e. `# |static const short da850_evm_tl_user_led_pins[] = {
8 |2 `- B3 y+ J        /* These pins are definition at <mach/mux.h> file */, @; Y3 |" z2 ]
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
3 r9 O& F2 J4 }& E        -1/ _" G4 \0 t! n) F4 c
};
; d3 _6 n4 n# U, t" p$ S' {0 O+ N6 B1 q) j# l$ e4 g0 o
static struct gpio_led da850_evm_tl_leds[] = {
2 P5 J  R8 n* v6 H* K        {
0 Y/ r: b; X9 L! g3 w/ m- O                .active_low = 0,
1 J5 l8 I; u$ t% Y" I* E% i                .gpio = DA850_USER_LED0,
1 Y5 Z  G1 i- `. S' f, |                .name = "user_led0",4 Q* X3 t$ s- q6 n* l
                .default_trigger = "default-on",% w( |% ~. G) i( ^$ b/ V) T
        },
$ T" _' f1 t; A        {* P/ k3 |  `' F  y1 {; L
                .active_low = 0,( R- J, r* C# L' G
                .gpio = DA850_USER_LED1,2 C& v9 n. |0 c4 x; [
                .name = "user_led1",+ w4 L) e. E& s( V; ^2 r
                .default_trigger = "default-on",- b) w% {% C9 k5 t
        },
2 q) z, F: }; T: c9 j% B  `        {# B. H: i7 L& l8 ?1 \! ^  b5 g$ B
                .active_low = 0,' p3 \. M( C% e1 @; ]1 _0 X% u
                .gpio = DA850_USER_LED2,
* R" F3 J7 s, v6 Y                .name = "user_led2",; H+ v4 d2 ~: `0 z' A: m3 t+ \
                .default_trigger = "default-on",
" r5 w/ p9 S' K- p! B0 D        },0 l4 Z, p; j5 d$ m
        {; r1 M% w2 q2 ^  P5 a& F
                .active_low = 0,
. U& ^  |1 s+ X                .gpio = DA850_USER_LED3,+ N$ l" ?; Y! B3 c3 h& D' q
                .name = "user_led3"," U( d. q; C8 o3 J5 F4 h# Q
                .default_trigger = "default-on",
' M7 W: v* \" W2 R8 z        },
% |. K' O$ v+ F  A};% F& Q) }- P( }; C6 H

8 r0 l. J: |; ^( E5 k+ U4 }static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: U5 S5 H% c! b1 j        .leds = da850_evm_tl_leds,/ M  L5 |" i+ c4 V" l
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) }4 y, ^7 K( A( M6 g+ j};" G2 r0 b2 o' z' b' `6 d  j7 N

+ _2 U" w( F7 C$ Lstatic void led_dev_release(struct device *dev)5 N+ O- d, C0 g# c  b$ t5 i
{: @6 ?' `3 q% x- _4 ^
};
& S  H" s2 m# H5 O
) }5 Y3 S' K! e0 j; {/ h9 S2 ostatic struct platform_device da850_evm_tl_leds_device = {8 O5 ]7 X7 ]  d  ~1 M! z3 v7 W
        .name                = "leds-gpio",
; R* `( C% X. W4 F        .id                = 1,- w9 m+ ?; l3 n' P3 F
        .dev = {$ P! N& g3 Y( q  ~4 ~0 X$ U
                .platform_data = &da850_evm_tl_leds_pdata,6 V2 u0 e. ~0 {3 M, ~
                .release = led_dev_release,- W- m9 u7 n9 u& b9 `4 N! O7 k# F
        }
$ P* X3 s1 b  f' [! R' H, I1 Z% C. M};
% r5 X+ s, \& D- M3 K; y
6 |0 `' n% D, G& C( N( sstatic int __init led_platform_init(void)' O0 C/ ]! l- u; N! y
{
! H# t8 l* `6 b8 w7 S+ ]- |0 V        int ret;& S5 c5 I& l7 u% z& i$ U
#if 0
: O; k) U$ T$ t8 r% _; S( o0 l        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);4 y" c( g5 K7 ]
        if (ret)3 z, E; D7 V" Z1 F; H4 h( e1 W
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"3 b" s5 A4 x! |+ M$ `. k+ o
                                "%d\n", ret);! e8 s  C) Q0 `2 O
#endif
! f1 P$ k* l5 f1 `; H6 {3 c        ret = platform_device_register(&da850_evm_tl_leds_device);
: z8 f& Q! z5 U3 k! ]        if (ret)
3 a! a' p) X8 s8 H6 X                pr_warning("Could not register som GPIO expander LEDS");
5 [$ E6 {5 o; v4 _5 E$ S        else) X- Y& b$ c; O) I* \7 k" j: ^
                printk(KERN_INFO "LED register sucessful!\n");
. v* Q5 g6 L- ]! Z7 S) `( J0 u% v% H: I. \" i' _. N+ G5 X
        return ret;2 ~1 V% R& O' R1 d5 e1 C
}
& _* y1 Q  X. k& I
7 B" B0 _" L- {8 G! C- [! ]static void __exit led_platform_exit(void)( O. f# w# V8 x) J
{0 b8 Z. {, _* ~1 s9 v1 z/ P8 d# o
        platform_device_unregister(&da850_evm_tl_leds_device);
: `; s+ e- Y8 n5 D! b5 Y2 E/ y' A
& r+ v# C6 b9 h7 `7 Z2 F        printk(KERN_INFO "LED unregister!\n");$ F+ e; T5 H" P6 M- ?2 n
}
! d' x* M5 D* n- L0 a1 L5 j/ A  X  G$ s3 `% ^" ?+ F
module_init(led_platform_init);
4 ], {- I! {5 F: L6 A1 vmodule_exit(led_platform_exit);
4 E5 d5 H# G% m7 Z/ p$ D2 |
5 x6 `6 P. k3 F: a0 xMODULE_DESCRIPTION("Led platform driver");5 t7 b, E( d# ]! ^" R8 e, i
MODULE_AUTHOR("Tronlong");& A0 B* x; M' Y% k" y
MODULE_LICENSE("GPL");
! B% q! E6 g# \' Q, v
9 X7 c$ d! e, J6 c5 |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-12 08:22 , Processed in 0.038938 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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