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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' y$ h+ {) Q& g  x+ `' e; N#include <linux/init.h>6 a  s' }7 N& W: _
#include <linux/module.h>/ _4 l- E7 ?$ l# T' t, N. C
#include <linux/kernel.h>
: x5 W$ G5 o, ^( L, [# M* n! b#include <linux/types.h>
7 A; `2 x% l# \7 W% V" ?#include <linux/gpio.h>
7 \* V0 f9 F1 E/ U5 }- W) ]#include <linux/leds.h>
+ f/ \+ s8 `! @* k. N7 [2 l#include <linux/platform_device.h>
( ^$ w- y' D* S3 a/ M, z2 z- z/ q- ]. b
#include <asm/mach-types.h>
, L% b8 d) a' q+ b3 x0 c#include <asm/mach/arch.h>
" x! I, t- ?! M3 I" ~#include <mach/da8xx.h>+ d" D0 M2 p" s4 n
#include <mach/mux.h>* z9 s2 ?7 x/ K9 O6 X+ Z
7 Z) R& G! {4 Q: O' Y# ~1 A
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
  J% \: Y1 x5 ?; ]1 u# m( R+ I/ B#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)5 ~+ M4 d( b- D
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)! y: S$ Z6 @" o% G8 K7 H
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)8 f# K" b; P" ]# u' \' R

9 P2 k3 s+ i7 b( ?: A) t/* assign the tl som board LED-GPIOs*/5 u& [2 E5 T5 V7 Q
static const short da850_evm_tl_user_led_pins[] = {( ?8 L4 B8 o1 n
        /* These pins are definition at <mach/mux.h> file */
; K' G$ r+ w0 B" G6 _        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,! H* x9 q% h1 h8 _' ]. g8 P" Y& c
        -1) f4 |* y$ i" `  [/ ^
};
/ v: `9 r7 W* Q+ o
9 X* b3 h1 \4 u& sstatic struct gpio_led da850_evm_tl_leds[] = {
" L% V# o, T* E8 C+ g% X        {& g. Q. [5 i2 l3 M  s
                .active_low = 0,
, S0 ]$ n1 W3 e+ d2 ^( ]6 P, Z& k                .gpio = DA850_USER_LED0,
' j* ?! H' t! `; i6 B+ Y                .name = "user_led0",9 f; Q" ~1 B/ P+ \& {
                .default_trigger = "default-on",
$ H4 T2 V; E, q7 [  J        },/ q5 ~) R# z* {+ Z: ~, o
        {
& P5 s; c% S! ?$ N* o) N  y+ E9 K                .active_low = 0,! E' h3 _. _5 s4 m! Q! Q9 e( Z5 P
                .gpio = DA850_USER_LED1,; {0 e+ H) d! Q" i) ]6 c5 R/ k
                .name = "user_led1",
" ], `& I3 h% p, T  A6 F3 n                .default_trigger = "default-on",9 u4 z) L3 f8 w3 I
        },% g  H' f2 Q7 }: g" h" E8 [
        {3 S4 S' k/ r, W$ C. B
                .active_low = 0,; d6 |5 `* M* J7 s% t
                .gpio = DA850_USER_LED2,* p' R. D+ O  H% O* l
                .name = "user_led2",: H) m: @& {" R5 D% a
                .default_trigger = "default-on",
  Y% Z( b  C( D* k        },3 b4 u8 d/ e7 [9 p1 H: Z
        {, L, E9 ]3 c" d$ E$ E
                .active_low = 0,) m( F( A/ A/ `, l( E2 I! h9 Q' l% ^
                .gpio = DA850_USER_LED3,
% b# A& _( S. _                .name = "user_led3",
' M0 x& C/ O: @. K& B- ~# o6 n8 e                .default_trigger = "default-on",
* D$ y# H- Q6 R5 W        },
0 P. k1 t( Z' d( t};! ^8 F" F- s) }6 [1 R3 Q
, x; G+ S( D9 ^5 j$ p: ^, ]% e1 s
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: k7 Q9 S, J! f# }        .leds = da850_evm_tl_leds,
8 _; l1 J/ ]4 C  K4 f. q        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),% X8 r2 e. Y; `: G$ \3 S
};
1 T7 G% ?. u" X9 V, X& G; O  N% \3 S, l5 T; o* z5 `- q! E* D7 Z9 K
static void led_dev_release(struct device *dev)
4 W+ P2 Y8 T: O: V$ a) s7 R{1 }1 w8 E* ^9 k4 }
};1 H+ T6 J& c+ Q6 c4 B' p) p, n

4 G2 m5 Q9 N$ v9 T7 @7 G/ rstatic struct platform_device da850_evm_tl_leds_device = {
4 M9 J+ i8 E) ^- s$ q        .name                = "leds-gpio",
4 `& j* G4 ^8 b: \6 n6 O- n        .id                = 1,
; m& b$ g- A! r( v3 n7 E9 @        .dev = {
6 t7 f8 Q7 Z) ?0 n                .platform_data = &da850_evm_tl_leds_pdata,
4 G! d) l% a0 d6 p5 c) Y                .release = led_dev_release,
1 f9 v1 C% _- c/ _        }
$ t2 K# z3 {4 r* g% k: @};
9 M: E. v: v0 z6 H: o8 S
6 m" [- U5 N3 J) ~, o: @static int __init led_platform_init(void)
& ^% Y8 z: W; G' m" D% S( ~  a{
& }9 v+ t4 r* _/ N        int ret;
. r8 _; o1 c$ ]3 c( k#if 0
) B2 d# Y* b* Q- A        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 R& r  ^' G1 @; I9 p        if (ret)' r9 E5 l5 J! b9 M) e  f
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"( X# @' k+ P$ H
                                "%d\n", ret);4 z' x  n6 z1 P( T4 J
#endif+ U. q4 h6 p* E" D! i7 q' t
        ret = platform_device_register(&da850_evm_tl_leds_device);2 ^* @- E6 |, X1 q
        if (ret)
; e0 ~6 j- P' b! a                pr_warning("Could not register som GPIO expander LEDS");# [/ e/ K, R( ~$ H; l! \
        else
2 v/ \% ~. N+ s                printk(KERN_INFO "LED register sucessful!\n");
- q4 @/ \6 t2 {: j- I9 _0 B5 |
; n6 j& D% N* }4 {        return ret;  g/ x5 _3 b. F. b+ ^6 M
}
8 I6 {/ e% j  R6 g* k& M! |! G9 u; N" G8 X
static void __exit led_platform_exit(void)
5 |3 E* I7 j4 ^! {{0 c" a5 I8 e8 f1 u
        platform_device_unregister(&da850_evm_tl_leds_device);8 h; J" [. a$ `  s
, Z8 ~1 \5 b0 B, W* P0 ~( a
        printk(KERN_INFO "LED unregister!\n");
' Y% V0 B: p2 R7 Z4 r7 ~}
+ t# M, I: @/ U$ d) \" Y$ D& |5 K* N0 W7 R+ C1 e
module_init(led_platform_init);
+ A1 G" E0 t* q8 @8 Rmodule_exit(led_platform_exit);2 R. \( O+ _' E5 G% X

* J& h! o* b+ r% W# GMODULE_DESCRIPTION("Led platform driver");
/ r: }0 F: q$ [7 s7 _) X: TMODULE_AUTHOR("Tronlong");
* P/ N# D9 E) U2 V- sMODULE_LICENSE("GPL");  y7 K( F7 Y7 n8 _, U
/ B& Z/ t3 l/ S7 T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-18 05:08 , Processed in 0.040812 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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