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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。. f- U0 m0 i9 E3 D" j0 x9 x2 R- s. L
#include <linux/init.h>
* `& e5 D: c2 j5 U) K; P7 Q#include <linux/module.h>
) F0 J( |/ j- ^. X, ^#include <linux/kernel.h>* a5 q& I4 _% \( I/ J8 m6 u
#include <linux/types.h>
& n) y& r+ [% i/ M#include <linux/gpio.h>
# V9 D" G3 M! g& v#include <linux/leds.h>! i5 v7 W0 q8 \# w' [  n
#include <linux/platform_device.h>
3 `' D: K: e' ?5 w5 I$ R" J1 ^
#include <asm/mach-types.h>
5 W4 t7 Q! @6 j! }3 F) d* j#include <asm/mach/arch.h>4 {1 B" O8 p6 k- i; x
#include <mach/da8xx.h>7 S% z7 O. A9 o
#include <mach/mux.h>
' K9 D5 S% a& K
- }' d/ ~& c6 l+ U+ d2 S9 J& o#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* x1 v) W0 z  ~' L7 X! f; F
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)' ^& v7 [6 D# v! h; D6 e/ @1 e+ o
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)' G" c* y, T7 A5 S
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: a1 z* _5 P, F( s/ j$ i
6 s& k( R/ c2 ~3 p9 G/* assign the tl som board LED-GPIOs*/) _$ j% j6 W! k2 [( X& M
static const short da850_evm_tl_user_led_pins[] = {5 w) C6 w+ {/ Q
        /* These pins are definition at <mach/mux.h> file */
1 J, p) X6 O3 ]' T& F2 }        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,' O  u: [/ n8 M" P
        -1
! A* j# G; B7 K' o! v! u};
  y: d- B  H2 k$ b* b9 |" y: c8 y6 {7 G! D* E7 f& w* ~0 ?
static struct gpio_led da850_evm_tl_leds[] = {7 O3 P, {: G) D9 f/ P
        {  r1 t4 y8 g. N! N( N
                .active_low = 0,! W* N+ p3 K' J
                .gpio = DA850_USER_LED0,  }9 m4 h7 F: f% u" e
                .name = "user_led0",
+ G/ _9 M4 o8 _, V! ?. N9 B, A                .default_trigger = "default-on",
& V! D- d) b' R: E. O+ @' e        },  u9 W, ~+ X1 A* {3 P0 d; h
        {: M0 k/ d' y( G6 o# j
                .active_low = 0,
6 j, F/ d. d% ?8 c+ r: J8 i                .gpio = DA850_USER_LED1,- M. q# y- I" x0 U- d$ l/ e4 W
                .name = "user_led1",
2 R2 v* g) r# y7 K8 e                .default_trigger = "default-on",- v9 \; i8 i4 d
        },1 G; n9 r3 z4 j0 }; {5 K
        {9 F0 K; O) V' B# E/ T7 @
                .active_low = 0,4 Z$ t, N! _0 B# A* X
                .gpio = DA850_USER_LED2,
/ z$ k+ {0 F2 I! n' n                .name = "user_led2",/ U. J9 o) W, ~5 D
                .default_trigger = "default-on",7 r0 t2 a" }9 o1 A; b
        },
1 i, X8 p7 c4 l) J& z) _        {
6 ?1 T# G7 v+ g& N$ T                .active_low = 0,, f! U( F" D- O8 L5 `7 I1 C
                .gpio = DA850_USER_LED3,1 Q" e4 w' H! y! z
                .name = "user_led3",1 `; W) j+ S2 {3 ~0 b0 U
                .default_trigger = "default-on",
& x7 E  u2 [& U7 w        },
; A9 A  C+ ?5 E6 W};" y) B5 i) I, }9 R# n  W% n

! S! u. i" B0 \. t- b1 Lstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
7 ~1 c* m+ Q# E3 J3 N        .leds = da850_evm_tl_leds,5 o) p9 G1 r) z& X% s2 ]! u, v
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ J. z$ f8 l, L% h4 `
};" G2 n9 p; O( X) C; Y) j! O
8 i8 V2 d$ {. e
static void led_dev_release(struct device *dev)
# d/ Y# _8 h* c! B' @{
' d) Y. [9 t: v: o1 w( c};
! B5 F9 Q. B: D3 M- v5 k8 g0 p# u1 N
. C8 `4 s* x, n3 _: r  Tstatic struct platform_device da850_evm_tl_leds_device = {5 V9 r4 g+ z0 j8 l2 m5 L
        .name                = "leds-gpio",
( ~0 d+ k3 w* Q; U" ^0 |        .id                = 1,) h8 G' M6 \7 A5 H; V
        .dev = {
6 X: m1 d3 [" }& H                .platform_data = &da850_evm_tl_leds_pdata,
$ `, Y9 B) M: h4 q; a5 s/ i/ ?                .release = led_dev_release,( z$ y7 l. J3 j$ Q" ^
        }
- U, J- Q+ v% _0 w% i. j};: f; A$ X) G# b; t* p- P
$ G5 m: _0 l  Y: }- N
static int __init led_platform_init(void)7 M- C) M8 }- l. y5 B  }: w/ ]
{
# ~9 J' F3 L" \$ E/ d/ n        int ret;
" o# \, y' c" ]# N#if 0" [# a2 u& o1 X- Z" j' f+ c; H, e) K% d! U
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
2 Z2 ^6 I( N% K( e( }- Y# H, T2 A        if (ret)
! G( Q% P/ }" ]0 ~- y                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ y, V8 y, h4 t% Z" Q/ v
                                "%d\n", ret);
9 ^0 E3 F* l3 n% ~% N5 o; O#endif
8 `1 ^% f+ n+ \$ r% }+ m9 R$ ~        ret = platform_device_register(&da850_evm_tl_leds_device);
, A8 E  Q2 Q9 H5 b) X        if (ret)
0 Y; X  r1 G) q9 m/ @& h5 p                pr_warning("Could not register som GPIO expander LEDS");  _$ j) \5 y9 u/ F" L8 i4 o5 l
        else
4 F! S8 X1 F1 N; M1 a2 w2 v5 L                printk(KERN_INFO "LED register sucessful!\n");
2 P6 z/ h' I1 ~: S9 I8 m. N; W2 p7 Q5 d- P9 i. |& z, g
        return ret;
: M3 B% ^( T) b) O4 X}& _; p2 P! }9 |$ m, d$ P
( M" y& A; Z, J# _, H
static void __exit led_platform_exit(void)( C+ L) Q! @- e6 w" b
{0 \! z* W/ r+ C& J0 W' |1 u# u0 A- \
        platform_device_unregister(&da850_evm_tl_leds_device);9 f' w6 \; A- S; [0 i! x" g$ Q

- B' b+ ^; Z6 O- e- s        printk(KERN_INFO "LED unregister!\n");- v2 u. I' N8 p0 B8 {3 r0 x
}
; v9 q7 e4 z$ C  u6 }1 b( ~- L
7 d9 ]! t1 O# f: _. A1 |4 Omodule_init(led_platform_init);6 v" v! j0 a- L$ [, O0 E
module_exit(led_platform_exit);$ \' r* `7 i; j5 u

- {4 c4 U4 d! a9 A+ _MODULE_DESCRIPTION("Led platform driver");
* t0 D% |" c. w* n0 ~- g/ iMODULE_AUTHOR("Tronlong");$ E5 p1 U8 ~. H
MODULE_LICENSE("GPL");5 s9 [9 G+ T* |; r1 g% h2 H- d
# ]4 k8 ^9 |  m7 \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-31 01:12 , Processed in 0.042460 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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