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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 o! u* s% \3 c6 z! @
#include <linux/init.h>2 n( h0 q! R5 [& ^# D6 z3 z
#include <linux/module.h>: D$ Z# p. h% @  e) l, e0 t& Y
#include <linux/kernel.h>1 W, }  \4 }- W% C) v+ X$ R
#include <linux/types.h>. Q4 I4 ]! v! O. U
#include <linux/gpio.h>: w# y$ U3 n! g% {! t9 @
#include <linux/leds.h>" Z7 K6 j8 E3 J
#include <linux/platform_device.h>
) m, B; w0 c) r, I1 y* v5 \' l
' h( l' v/ M; v9 P+ r#include <asm/mach-types.h>2 G* i- F; i: F+ a2 B2 e+ i
#include <asm/mach/arch.h>
2 y: }( m- C/ W. U* e#include <mach/da8xx.h>% }( i6 e6 P+ \3 c
#include <mach/mux.h>
4 S8 m+ ~( p- N; B. V& Q- a+ B' R0 b% H! v! B2 h
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 J, b8 i. W! N. m' _: n#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)/ h  E, F" C& B) y- J3 V
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
; I+ X) _9 v! b) V- |0 Y; ~#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
* I# ^% i# m9 X6 j" \* n, a1 `& p+ h+ S# u- t, n: Q0 w
/* assign the tl som board LED-GPIOs*/
7 l- |; X2 `" V: ?1 K3 f7 u  I. m5 gstatic const short da850_evm_tl_user_led_pins[] = {
* B3 [; P6 b# J0 t        /* These pins are definition at <mach/mux.h> file */  q$ a# d6 \/ H; U9 `  k
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,* M4 L$ H: r7 m0 e7 C
        -14 ~* k  [' C& Y. h
};
3 ^! y1 D" {$ O
: R- q2 E% M, R. ostatic struct gpio_led da850_evm_tl_leds[] = {
* o8 A( @' n# `: j2 m        {0 v5 t: B" B4 n" a5 _3 ?/ ~
                .active_low = 0,
: p# U1 ^# T! U3 X+ b                .gpio = DA850_USER_LED0,
1 D0 g' |! u( b4 d                .name = "user_led0",
1 U, L6 M2 _+ p/ S& R                .default_trigger = "default-on",
4 f# {! m2 r3 Y# M* S9 u& G- y' S        },
& u; J0 L6 o! ]+ y/ v5 Y) o        {
' O8 v7 K& d. d5 G6 j" K                .active_low = 0,; ^% W  H  l2 o1 U# F
                .gpio = DA850_USER_LED1,
7 K2 K8 |; y* _                .name = "user_led1",7 p) Q& n6 `. `/ G& D
                .default_trigger = "default-on",$ l; W+ g' p  e
        },
& n% p! Q  Z# b- y        {5 w( [6 p8 q4 w0 X& b1 I
                .active_low = 0,6 ^: E8 X# R. ^  O& Y& W0 Y, s! m
                .gpio = DA850_USER_LED2,
) p% h+ B" X  u! y; o1 S                .name = "user_led2",, X" i  D8 _' o# C/ q9 o7 ~
                .default_trigger = "default-on",) F5 v! _+ I3 X! a  u
        },
+ x- K" Q/ f, @9 l/ A. d0 t* Z+ U9 @        {; }0 a/ N$ e2 |4 F0 W
                .active_low = 0,
! }* k6 x. K: s" a* F' R" l                .gpio = DA850_USER_LED3,
9 L( T2 `9 L' b                .name = "user_led3",8 V9 f) w; r4 O/ M
                .default_trigger = "default-on",
6 B, \6 g+ n: N) {" y$ N0 H        },* d$ j$ d3 J. D% p! N* \
};
4 |& ?' @8 G  f3 E8 r* \8 W0 w& u5 o' E9 H" X0 g  n) J
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {$ W) l# T/ A0 P4 e
        .leds = da850_evm_tl_leds,8 z2 X2 f6 `7 ?+ `' o- D- m. E/ O* Y
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 H1 S9 u0 M8 [  ~
};& A* w$ w) T$ E' q) |

8 K  C, U. c( M$ _static void led_dev_release(struct device *dev)) H3 a8 w. E+ S& a/ x- k
{) w" c9 ~% S3 W+ a, g
};0 d+ C/ [) M. ]5 s; ?) j
' v2 U9 b( ~, ]: _
static struct platform_device da850_evm_tl_leds_device = {7 S& f* \- G* _+ g) d: D. G2 ~1 U. p3 c
        .name                = "leds-gpio",: b3 C3 \& C& @0 D$ W
        .id                = 1,
' j/ I  ]7 }) x* L        .dev = {
& O/ q* ]! r$ }6 w3 f                .platform_data = &da850_evm_tl_leds_pdata,5 i: W7 O8 a( `: o6 g( t; D% Z# l" R
                .release = led_dev_release,7 y0 e/ w$ ~( _5 L. J& o( N. v3 d
        }
1 K0 H6 x- {& [8 L1 K, W$ N+ {};
6 s4 J2 ^3 c- C: A0 b$ F
/ s, @; \3 N1 ]0 D1 T, D* m, v0 Dstatic int __init led_platform_init(void), N8 j( o( m+ c1 y, g8 R
{
2 O& ]8 E# q" d+ F) @/ `) w3 f& q        int ret;& K0 k( W1 [+ ^# G9 E. U# m
#if 09 P  H3 B5 q) t/ X
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);( q5 @" q  k* p% _
        if (ret)
% X; \9 b% \% @# g9 i! a' y                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
9 i' J1 @3 A$ D' z" {                                "%d\n", ret);
6 O4 _: ]; Q8 e9 X& X6 F7 @3 y#endif
9 Z; D: R& B3 D+ r: q: d3 o        ret = platform_device_register(&da850_evm_tl_leds_device);
  @5 M# [/ ^- Z- S# v( z( X        if (ret)2 L$ O7 T# j8 z) A" W+ [# D
                pr_warning("Could not register som GPIO expander LEDS");
0 g" L# W1 ?7 C; H/ @1 [        else
/ l7 `, r) X' s6 a. W$ u& x9 A5 x! @                printk(KERN_INFO "LED register sucessful!\n");0 N" h9 ^7 V! U

2 h7 c; A1 |: y5 p* m! L        return ret;; |& E  W/ z  E# L
}
2 I9 O' M( ?6 `# ]7 a/ Y& r# u4 M7 V! N4 K' W
static void __exit led_platform_exit(void)2 z+ B0 t% P' d+ K
{
: @/ q! X7 S- d: U! \# V        platform_device_unregister(&da850_evm_tl_leds_device);8 R" t1 ]/ g; M, m" }1 l$ M5 e
5 n4 \0 A! H. |; ]
        printk(KERN_INFO "LED unregister!\n");& ]+ x0 C7 }& u, F$ E& P
}' @- p3 T) A  E* N7 u8 g
6 s9 v+ Y. {% |8 n  E) t0 k5 R* |
module_init(led_platform_init);
8 N6 J+ k" y% w0 @- r! Rmodule_exit(led_platform_exit);
5 s+ `5 |* N4 K3 c; F, {) o/ L1 _& D4 \0 O2 @% k' j
MODULE_DESCRIPTION("Led platform driver");; l6 Z0 G2 g8 R. x& p
MODULE_AUTHOR("Tronlong");
9 c! U8 Y- l1 L, I3 W. o# r3 OMODULE_LICENSE("GPL");
. j" d' \" G* K# y1 N- W/ q' ^7 k/ `& J7 ^2 @4 c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-10 09:01 , Processed in 0.037833 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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