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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。+ z8 R, O# t; }/ o- m5 ~5 M- }
#include <linux/init.h>
, ?2 y* G7 m8 L9 x6 R#include <linux/module.h>
  `6 V3 G# _7 b. ~#include <linux/kernel.h>+ k9 P+ Y% W' b  t/ @8 r& n
#include <linux/types.h>& L. J1 l1 A1 }- D' H" U6 g; X
#include <linux/gpio.h>
, c: E! \9 u* s! E! y/ `#include <linux/leds.h>
5 R/ `2 Y! o' i/ {#include <linux/platform_device.h>8 }1 s3 ~6 c1 P. w/ d" i, J: `- M/ T

7 b: f1 s: ^, d1 }#include <asm/mach-types.h>
8 }+ F! r! }& B1 n5 p# Q  ^#include <asm/mach/arch.h>+ p8 M9 |8 h8 Q0 V
#include <mach/da8xx.h>
% ^8 X: o9 z. K, }# l( y# s#include <mach/mux.h>
- U  h& N9 E- L0 h- m- `5 {; E5 W2 L4 x
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 r+ h1 R# ^, M: A) d4 V#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 p8 @) y! m# q# Y! U; p8 L% p#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)1 t  [( i6 p) A
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
$ y- r$ M* Y1 v) H- v- V
  t! \1 w, L* ^( j/* assign the tl som board LED-GPIOs*/4 p: H& P1 Q" j
static const short da850_evm_tl_user_led_pins[] = {
9 T: ~. K5 v; h1 I1 }2 P0 I        /* These pins are definition at <mach/mux.h> file */2 b- V# u* j5 O  S3 [- \+ `
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
; K/ N7 @6 d' \$ F; \        -1  A5 S8 k8 C, }, a; c4 Q/ k* Z0 e
};
8 Y$ o: M1 V9 b) A# I
7 v2 i5 G( D) Kstatic struct gpio_led da850_evm_tl_leds[] = {& N: n1 U9 e" o
        {
/ p! {9 u7 d  ?& ]! i                .active_low = 0,( Z( J( S/ z4 L+ y0 N( V
                .gpio = DA850_USER_LED0,6 R. d2 I1 Z% R8 Y5 s( z5 B
                .name = "user_led0",
& m/ D+ x+ r6 G2 r1 N                .default_trigger = "default-on",
+ d/ U: v! C( r% a1 d" {        },
) O( s: z5 }8 F. b* E5 L        {
% W) r  p* _3 p; O1 @, y                .active_low = 0,& n3 E: {0 ~1 R9 t3 J
                .gpio = DA850_USER_LED1,, {1 @( R# h3 p6 Q) \5 t; K
                .name = "user_led1"," g; @6 e4 E8 ~9 E: b0 [4 n% W- H5 }
                .default_trigger = "default-on",
0 F7 R0 @7 C* I( l+ ~        },' H6 t- @) t3 {( C- Q' J
        {
( e3 y; z! K2 \5 c+ l# h                .active_low = 0,
# d! a$ ]& O8 D4 s                .gpio = DA850_USER_LED2,4 Z/ ]- f9 r2 q3 c! O
                .name = "user_led2",
8 Q: I& `/ |. m; r1 e/ H% r+ B                .default_trigger = "default-on",
% n* n% C, x' `! \1 h        },- q1 p; E2 f& T  P
        {
9 B; u3 V: \# q0 n5 h- L+ a' \& H                .active_low = 0,0 J3 C+ @' `) A; l" X; f
                .gpio = DA850_USER_LED3,
8 ?* d9 u  J: [& e) `7 i                .name = "user_led3",
2 ~! y0 ?& p, O! y9 j  d  U1 k* j. t                .default_trigger = "default-on",6 [- F1 m' s0 \4 n
        },
' H3 t: E' w/ Z! M, H$ l( }};" i# I1 W$ p; S+ I

; M* L+ o6 L* I* `$ Z8 lstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {& h3 G  d6 c2 D0 x7 ?& O# K5 v2 A
        .leds = da850_evm_tl_leds,% ~" G7 ?* C4 d+ Q% `, O
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),. [8 e+ y) C: L7 J; V( X
};* L9 B8 A" b6 x  F! p% z

( a. d( G8 |1 f: y" |. Lstatic void led_dev_release(struct device *dev)- F4 G; b* `' b- Y# w, U
{9 D: \) T! e; e9 z
};# O6 R, u) ?) L# k- `. f5 i9 Q8 A
0 d: E2 C( j5 B$ i" ~# r: N
static struct platform_device da850_evm_tl_leds_device = {
$ ]2 ^6 ?" _" U        .name                = "leds-gpio",
- _# h; I; A4 k+ |9 I4 E9 {+ L/ u        .id                = 1,
1 k$ U& `0 b/ q+ l9 q. ?9 E3 e2 q        .dev = {
4 T" O* y6 Z8 W' _! ^. e0 W                .platform_data = &da850_evm_tl_leds_pdata,& a# F- d4 e* X9 r% t5 }1 m4 N7 V
                .release = led_dev_release,& T" _* k4 N: z
        }
3 X9 F. x' u# g  v};
# u; ]: V$ \9 S- ?0 i
7 y& K. L0 A& Gstatic int __init led_platform_init(void)
( f0 n; H1 q4 G! D% m{8 t' `) {* Y8 E* J1 K
        int ret;
% ?8 {% _4 |1 ^7 k1 g#if 0& E' j. w) f' d4 A
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. K1 X3 @+ b" ^0 I( v        if (ret)
) T- F7 t4 k2 c' U( y7 p                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
0 @  [8 L* e7 b* Q- X! y                                "%d\n", ret);+ o( F2 u5 b4 U, K3 E* W
#endif
% S' A2 o& ?3 r2 d0 ~5 H3 x. Q& O' m, }% |9 j        ret = platform_device_register(&da850_evm_tl_leds_device);
- \8 _: K! }6 X* t+ n- M9 {. W        if (ret)/ Z1 I* v( {3 R* s- {
                pr_warning("Could not register som GPIO expander LEDS");" I0 V$ Z+ ^! @8 v; F
        else# F7 D" d- o$ x* d8 S
                printk(KERN_INFO "LED register sucessful!\n");3 ]) F5 R! {: f' z+ p0 J+ U+ O+ ]9 P
( }9 g9 k6 x- R9 o) R; C
        return ret;% f* y2 N$ ]1 o0 q) a' g
}8 K0 o! u& C: R: A% h! M
  r: g/ j: O: J! J: G
static void __exit led_platform_exit(void)9 d7 k4 H' ^5 N2 N2 ?& x
{
4 B4 C6 F& O" h' n; D4 y! i3 Q        platform_device_unregister(&da850_evm_tl_leds_device);
# ?, L9 ^- u" \2 D# ^6 |1 c& A% }. I9 D- e7 t5 P
        printk(KERN_INFO "LED unregister!\n");
1 I0 A' n0 T) h+ }* a}
* o; W) Q3 Y( D% W# j8 t! V! O; M) P  N, ?7 N
module_init(led_platform_init);
  D( C+ N( c' _5 Rmodule_exit(led_platform_exit);
& V* q7 Y, E0 i$ E& ?
* Q2 R% O0 |3 v9 B$ wMODULE_DESCRIPTION("Led platform driver");: y+ o# h. F1 |
MODULE_AUTHOR("Tronlong");/ K# C- ~& a1 q5 I. q0 C. N
MODULE_LICENSE("GPL");- M+ c7 b0 {' }) Q  z

' E  M% \/ ~. l2 f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-26 21:35 , Processed in 0.039844 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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