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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。0 Z  P3 y. q5 ]9 [7 z
#include <linux/init.h># o! H; X1 u* q) c2 U
#include <linux/module.h>- G8 A" F& W1 ^1 m& L) A/ I
#include <linux/kernel.h>
6 H) u8 Q  u, \#include <linux/types.h>5 d9 [/ [/ a7 P3 T3 I9 b
#include <linux/gpio.h>$ ^* G2 P- ^9 f- y9 M, g$ V4 n$ W
#include <linux/leds.h>
8 H" w% y3 j0 E8 Y3 h& g' Q#include <linux/platform_device.h>
/ Y* }# H- L- E! a/ Q& O% ^& N
7 M! g; V5 K# X, a4 E/ J% _. \& N#include <asm/mach-types.h>
( d6 c$ H, t; q! w7 V# N#include <asm/mach/arch.h>, L: j, i: p" q2 p/ ]5 l
#include <mach/da8xx.h>5 u! K% `  U5 U9 b+ S* B
#include <mach/mux.h>
/ |+ H) }6 v) b( o5 n9 W
0 I+ V3 D" C2 k1 s#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 E7 y* n0 J, J3 g#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)8 ]8 r9 g: T# F$ @: Q. z/ a" a
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
; `1 ?3 @! K- r5 Z! x$ B: U#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)9 n. V0 x& F; P* I. p
. \# m5 ~3 M# y4 o% L
/* assign the tl som board LED-GPIOs*/
- G. R7 j# L8 vstatic const short da850_evm_tl_user_led_pins[] = {6 s" f2 V: \/ P5 X  h
        /* These pins are definition at <mach/mux.h> file */8 w% D& \& V; j8 r9 _4 S
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,) X& u# K: I* z+ r) J  Z
        -1
+ M8 T6 |2 Z+ e# X) f6 g};6 F. h: |4 b1 _! k, K; ~

6 N* S& w$ f* ^& d) y+ S0 w2 U' Hstatic struct gpio_led da850_evm_tl_leds[] = {/ v$ b# C- ^) d* |+ s
        {
. f  R/ j- m* z* X) g5 K2 U                .active_low = 0,+ E2 w+ ~  S/ D4 P
                .gpio = DA850_USER_LED0,
$ \# j, s& J0 P7 L+ W                .name = "user_led0",
5 g- ?  C0 w5 K1 E6 \                .default_trigger = "default-on",2 `# M5 N6 R* U9 B" k( i* @8 X
        },
; s- |4 v1 C% V! Q) k4 A  p9 z7 L        {
1 b2 e4 s) @7 g$ r1 `1 m2 o                .active_low = 0,
9 u. }9 ?5 N" h$ Z3 ~                .gpio = DA850_USER_LED1,
7 Y' m1 s0 C2 w! b, s                .name = "user_led1",
8 k" d9 ]) Y$ K# g, M) I9 ^                .default_trigger = "default-on",# [: l1 \7 [8 O7 e, r* q
        },
+ q* J6 |1 a& G: C8 K        {0 f9 N2 k1 j/ G" ^  e0 i% A+ |0 |
                .active_low = 0,  u( l4 [# v8 }- R3 e- s
                .gpio = DA850_USER_LED2,
" D6 o* N' F3 {2 {" v9 u( q                .name = "user_led2",: U2 M& p  g: {" P- v8 S$ {
                .default_trigger = "default-on",' V8 z+ x) r8 t, b: n2 ]
        },
- B( O0 ^/ e  A  i  ~2 C3 u9 }  Z        {
( p3 Y0 l+ {* }                .active_low = 0,6 M, O& X( [5 Q3 i
                .gpio = DA850_USER_LED3,
1 `5 |% p& Y4 _; ~) p                .name = "user_led3",. B5 b# a- W& C
                .default_trigger = "default-on",6 v- `5 c% ?& F% C
        },% J8 ^+ f' p; `/ w4 t6 s' J
};
- w6 X8 e, t0 K
( b7 f0 \- Y- dstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ [. ~$ ?2 _8 I! z) c; Z
        .leds = da850_evm_tl_leds,
! ]3 b* ]1 z# m% r2 ~+ o! j) n        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& c4 H9 V- d3 `$ v
};
6 p1 K: Z" C3 y2 r. K! e
1 F+ b% A3 @# N9 y( Ystatic void led_dev_release(struct device *dev)9 I& f; m' {% C& Q
{, v) S- f, b" z3 q
};
! j& @! a2 W# Q  [7 a
7 B1 [% W# d$ n" K% istatic struct platform_device da850_evm_tl_leds_device = {) L1 l- r: r! ?& V# t- |+ B/ m' a
        .name                = "leds-gpio"," O/ M3 [$ W, D; m% e3 ?) t
        .id                = 1,
8 q  u. q/ v! T# [% ^' b- w" L) g        .dev = {
. l" P4 v4 e- x3 A4 E) D- m2 P                .platform_data = &da850_evm_tl_leds_pdata,
6 T% q5 i, X( q% A6 V* j                .release = led_dev_release,. E9 M$ V0 [" Y/ G: z% z
        }7 ^3 \% S% K5 s7 K
};
, x( K. F/ q$ @2 Y% B! Z. G
' C* h' G. i, N+ D3 D) n/ tstatic int __init led_platform_init(void)
& K/ {; g/ u0 o2 q+ r2 q9 L{/ }9 U" G* q4 V1 _2 L4 x3 ^4 P
        int ret;$ k/ p8 Q* a- g* K3 V- K, u, B/ g
#if 0
  D: R1 {: j+ _7 F7 A% l8 v        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
) Z( t& u  _0 X" Q6 \5 W        if (ret)
, X& d( Y! ?) R8 |+ P+ v                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
8 }+ V0 R$ K5 P                                "%d\n", ret);" _4 l4 i* O3 i$ d
#endif
8 m) R! b9 a" e. }        ret = platform_device_register(&da850_evm_tl_leds_device);4 E: D  }: `  P5 e8 {4 D& {$ k6 j
        if (ret)
9 h, U6 ?* Q5 P                pr_warning("Could not register som GPIO expander LEDS");
& C: k9 q1 K$ \1 z        else2 f# l8 O( Y, ]( |9 c9 ]
                printk(KERN_INFO "LED register sucessful!\n");
2 g- E4 A, u# \; _5 K5 |: |# [: t" Z8 ]# d9 s6 m1 a. L7 c
        return ret;, W' z  d+ `  T  b
}  u6 x+ n% s4 L# ]: [3 H0 C
/ m: ^' Q: Q, p5 l! l6 ~" j
static void __exit led_platform_exit(void)
8 V: `. z1 _( Q2 {" B7 f' m3 W{
- W2 q: I' O9 x2 C* W        platform_device_unregister(&da850_evm_tl_leds_device);
* O: a7 ^: q% f0 e4 T0 y
2 O1 M( {2 ?+ k4 \+ X! @/ J* T        printk(KERN_INFO "LED unregister!\n");4 D7 j# l' q3 s: w. J
}$ J4 x% a1 |& ~4 o# C' p
9 B+ l8 F/ G2 I( n. `6 _; G
module_init(led_platform_init);  c7 o, `, h1 c2 a+ U& @8 X2 c
module_exit(led_platform_exit);
# S! M7 E& ]: T% W" r. q+ `% t* [' k+ o
MODULE_DESCRIPTION("Led platform driver");$ {/ ~% K4 S2 E- L' U
MODULE_AUTHOR("Tronlong");
1 ?+ x% n" Y4 J0 V4 |MODULE_LICENSE("GPL");7 j+ {' h) Q8 `- k  z
+ Q1 Z, `, \9 K6 Y- [, @. Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 01:01 , Processed in 0.037996 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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