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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
2 j/ X9 W2 W. N: Q) W9 k1 c#include <linux/init.h>, ~7 j; e6 b7 ~8 Y( F  h( R
#include <linux/module.h>
6 b. P6 w3 U% C#include <linux/kernel.h>
# M; B! I/ c7 n4 h3 l) C#include <linux/types.h>& F+ f% b& Z2 Q. }* X4 W
#include <linux/gpio.h>
. H' d5 A" [3 U2 @& W#include <linux/leds.h>' q- x& `. b9 [" [1 F$ m6 N* p
#include <linux/platform_device.h>
2 {; I* ~) Q4 J! Z' W+ `6 e& U' T5 d6 ~0 j
#include <asm/mach-types.h>, i. j4 k: n- [  K) _
#include <asm/mach/arch.h>
2 J3 q! C. c1 l# W$ H#include <mach/da8xx.h>
+ e& @- B  S! n+ Y9 \# ?#include <mach/mux.h>$ V7 ]3 x0 s0 h& ^, }

2 U2 L; ]4 u. j#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)9 Q* F" _2 `3 V6 f+ N8 k
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)- c% \7 h' T9 m& j
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)* J/ H: o7 @/ Z6 `" X' y2 Q4 _, o
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 B4 j& p; R  O7 f7 ?
+ B0 D: H7 \# }& _6 ~& r4 y& v+ S1 M/* assign the tl som board LED-GPIOs*/* |5 G5 R' r, N% \  `4 n' `& G. K1 z
static const short da850_evm_tl_user_led_pins[] = {
0 K- F! K% b" B2 N/ A) K        /* These pins are definition at <mach/mux.h> file */
: ]8 Q# |, D$ v0 ?" j9 q        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,3 E1 q1 Q0 F7 z) `% K
        -1
6 p- r, M" i& Z9 v! E};$ S7 P4 `: m2 j

. v1 I2 q. O& I! q8 P5 Tstatic struct gpio_led da850_evm_tl_leds[] = {; \& w0 g2 V+ t- `
        {  j- p+ ?7 i( w2 F0 @8 h7 Q3 n
                .active_low = 0,
: r; l5 D" C* s4 Q6 G! q6 b: c                .gpio = DA850_USER_LED0,
; [) X+ q! {: k, r9 \" J2 }0 W                .name = "user_led0",
+ Z, T+ C* e% U7 l) A                .default_trigger = "default-on",8 i4 L9 L1 {" M) P8 G2 f1 r" p
        },
- z/ O. i0 L: ^        {
  E5 z; J9 W! i; n2 P) `& k' v                .active_low = 0,
. [/ X% L, o& L; q                .gpio = DA850_USER_LED1,
# C* `5 a: y" B2 Z                .name = "user_led1",
( G1 `  c6 q* K* Q9 Z4 @6 d+ V% D                .default_trigger = "default-on",
0 X* x' f) u$ j) C        },, `% l5 V; W; y" R$ F/ l1 r
        {! }2 p+ `! I* E
                .active_low = 0,; U# |; m" v, q% v! h* ~4 |% C
                .gpio = DA850_USER_LED2,
' |- I7 q2 D* x% V5 `                .name = "user_led2",
3 m# e+ H+ S  Z; z                .default_trigger = "default-on",  Z+ d3 v, V# R% `1 T
        },, U- V4 h: ^& i2 @$ E; q" ^8 _
        {5 p! |9 e5 P+ E' S" M6 v& h) b
                .active_low = 0,1 b: Q* W7 w6 v1 a; ]  v
                .gpio = DA850_USER_LED3,. ]! b; o  B4 S
                .name = "user_led3",
" g* U  J0 m9 E                .default_trigger = "default-on",
# H$ S1 e5 I$ U* Y0 z        },7 _, Z- b! u' D  U1 s1 V$ M; G# j) k
};. ^- C8 n8 Y! n

1 ]/ ~6 s3 n4 h2 _static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
2 j' {( ^$ u0 J7 B8 e; V        .leds = da850_evm_tl_leds,9 |: _( {  z- P9 A5 A% D, Y6 Q# l
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, v& F  r: s  ]2 A
};
2 G* D, B$ y1 `8 f" [  D6 ]+ k8 z, x1 M
static void led_dev_release(struct device *dev)" E; T- r' n, |7 c
{% R& b4 ]/ m$ I6 {. j! j
};5 n% V) F3 I6 u& M+ C. p3 L3 |
9 k! v# C# V* [: g
static struct platform_device da850_evm_tl_leds_device = {
5 Q( V* _6 T! B. D        .name                = "leds-gpio",
& V! b$ r2 X8 a8 o/ J. [" k# ~: U# u        .id                = 1,# t% y, T4 n/ W8 P2 ^& J# |- M
        .dev = {
/ Z# M% j/ U8 u- b; N# [$ T                .platform_data = &da850_evm_tl_leds_pdata,
  k: w6 }* k# i' C; V& I2 l                .release = led_dev_release,
) _6 M+ [$ I. |- h9 B; G        }, W2 k  P; ^9 Z$ V, _
};( ?' S. \0 u: C: H5 u; W/ A
' b  O8 Q. H( `; Z; w
static int __init led_platform_init(void)
& O% n- H: @$ E% u: }6 Z{" n# L  \% W) y5 S% ]
        int ret;
8 i* S% y' m  y; r3 Y#if 0" \: F% ?& u7 N
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);& u0 e( s3 ]- r8 Q* K4 h) b: P; [
        if (ret)+ d7 g9 P" U: C# z- t: G+ H! m
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
* P& d1 o# m# H$ [% s                                "%d\n", ret);
6 e! c/ u& [2 W& V#endif5 h7 b1 D5 A9 L% }: G( W8 c3 I0 c
        ret = platform_device_register(&da850_evm_tl_leds_device);
# w: L; x* k' f7 w. w        if (ret)& Y! f% H& \0 D! j7 V. p
                pr_warning("Could not register som GPIO expander LEDS");
* V6 j7 `7 y. r1 T8 T        else
& B; s/ o5 z+ _' E                printk(KERN_INFO "LED register sucessful!\n");
0 K( ~- L$ B! @& p% Q! Q! w
' A; ?! c) a4 }5 X/ K" Y        return ret;
1 i0 o4 R6 `1 E$ c6 p; X0 A}5 s3 p  ^. i0 I; }5 e

& }( H# s0 o- o( K+ C# ^static void __exit led_platform_exit(void)
) O/ i7 ^* P7 p$ E, U! n: Y{. Q! F9 b1 W( A$ P$ e; Y, u
        platform_device_unregister(&da850_evm_tl_leds_device);4 I7 \7 v( S& e! g- s) R- A
4 Y. @8 W# ]" ^
        printk(KERN_INFO "LED unregister!\n");
# y7 F  ~, B; c}6 q* {0 D2 s# J$ G

4 Y3 J! ^( P; C9 s3 H! Dmodule_init(led_platform_init);8 `+ B  {& k+ r/ C# F; \$ L
module_exit(led_platform_exit);) j( l0 f/ g% n- w2 R
* Y2 J2 Z* X$ m! s9 b. x/ a' {
MODULE_DESCRIPTION("Led platform driver");
% F0 s$ z7 ^5 _& yMODULE_AUTHOR("Tronlong");' P3 j, r8 y) E9 ?- A* R
MODULE_LICENSE("GPL");! g/ ~- M$ X' G2 y

( }9 T) s8 x" Y; H6 G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-30 19:58 , Processed in 0.038722 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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