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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。/ t6 v* u, O5 D- [0 T9 T8 Y' S; W
#include <linux/init.h>
4 @: K, v! I# I2 p- v, J#include <linux/module.h>
7 s  t: z1 ]  E5 _* I#include <linux/kernel.h>
) e/ t8 S4 M9 \8 c) x#include <linux/types.h>9 _! X6 O& S4 D' e+ `4 {' N
#include <linux/gpio.h>' _! f1 K  j* d' b& r  T
#include <linux/leds.h>9 H4 l2 C* f0 X/ g& K$ \
#include <linux/platform_device.h>$ m- T* n: J  O. a4 C7 t! a

0 z+ q  I  z, ?  g. }! o#include <asm/mach-types.h>* C9 `9 Z$ A0 t
#include <asm/mach/arch.h>- j% |" ^9 G2 l1 R5 E
#include <mach/da8xx.h>
1 C/ l) H2 i0 }, c) S7 r#include <mach/mux.h>
/ P( A% T. a$ w9 B6 W' z* g. I" b: x- k/ }. x3 f8 ~
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
( ~4 i8 V0 r( }1 d5 t7 J#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)# H0 C* A; G& V+ @1 E) C/ Q. q' e
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)! r" \! G: h7 S* F9 F( `
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
  `+ N1 _( h% X' j- Y3 F& H6 I) r# f5 j2 d% W
/* assign the tl som board LED-GPIOs*/' l; n1 I& Z/ E( D! c8 V$ J& [
static const short da850_evm_tl_user_led_pins[] = {
' O: g4 N1 V! l1 }- u3 W2 k        /* These pins are definition at <mach/mux.h> file */( j3 Q. C* p" s* c4 x" i, f
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,8 }  L) G! d1 ]: ?' B" `4 _
        -15 D6 H# F* }" g5 n3 d0 p; L8 Y
};
+ V. |4 a" L, k" q" G! }# S7 X3 v( t; ?* x) w
static struct gpio_led da850_evm_tl_leds[] = {$ @. k& N) ]: ~+ w; v/ p
        {
6 T6 \8 Z" ?0 x6 v! J                .active_low = 0,
) K0 U9 ]' j) o9 s                .gpio = DA850_USER_LED0,
) v" o! p7 W5 G$ w" E; y                .name = "user_led0",
% b! e1 i9 {8 o! E1 b2 U                .default_trigger = "default-on",
2 s* D* P! p2 b% Z9 _$ P/ v        },
: E6 x* r, @& M  H' w) l- N        {: S$ J0 z( E* G8 y- M6 [
                .active_low = 0,* q0 H; i: [2 L* a4 T
                .gpio = DA850_USER_LED1,
- f- k, @" B! a" i' J  O4 L                .name = "user_led1",' R2 e% q% j. n! j& V- }+ C
                .default_trigger = "default-on",
4 T" E! I* Q+ Y* w        },2 j' a% B& N% I/ W7 Z
        {  E/ C- K2 S2 V2 g5 t) U. ~
                .active_low = 0,' o  z8 ?, k* A+ X
                .gpio = DA850_USER_LED2,
  z- r6 g  R  p7 o                .name = "user_led2",
- j. C' w) Q- p# `) K# O                .default_trigger = "default-on",
& h7 J5 k) n0 K( a; V0 v1 e        },
6 L1 G  Q. u7 q) s; l        {% u% ?; I4 F+ V0 \; E# ?  F1 |( g
                .active_low = 0,+ D! t  M- U# U2 E: }* r
                .gpio = DA850_USER_LED3,
; n% l! L, j! x8 U                .name = "user_led3",$ P% c5 L+ S$ j' k' Q! s
                .default_trigger = "default-on",
  M( m  `1 [2 l        },
; C+ D+ T! M& [' y0 r};! `! B8 s4 S. L! y
1 `, F) t) |! o) Q6 z5 D
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
& y0 |+ o4 w% ^( T        .leds = da850_evm_tl_leds,, p( P; ~' B7 {; t) j
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
: w- K3 C; q2 V& l};
8 @. r- N3 u3 w4 J) ]8 A, L  K; j7 v1 {- `+ D
static void led_dev_release(struct device *dev)
- J) b( K1 V: ^% \4 L) ^{" z6 @4 V; G( Y7 q) p* r+ q. {
};
& j7 J+ L  k$ y: }' W+ Q' Z7 z0 C5 M; g! @, R& _, S- t3 o& g+ {
static struct platform_device da850_evm_tl_leds_device = {% y' c6 |: G; q. b% a
        .name                = "leds-gpio",1 O+ W7 P) F3 ]7 g+ [* ?$ X1 i( B
        .id                = 1,. _( O: w' c/ r
        .dev = {
4 L# Z" @5 \% E/ y/ X, M( r9 r                .platform_data = &da850_evm_tl_leds_pdata,# ^7 P5 m( s1 I& q2 ~3 R
                .release = led_dev_release,5 R- [4 b( _( D0 d/ B
        }
' C5 B$ @- ]: y& r7 g};
+ O7 E! p7 P+ S: d# Q
2 l0 L* T% y) ]static int __init led_platform_init(void)
: W/ \3 v6 C/ L) g4 p# w4 T# t% B{
) |: _4 b8 H& |9 v' H0 b        int ret;' C7 E6 G, o) A# N* ^7 v
#if 0- a, Q: P- [! ~8 T1 N! j
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
$ z/ w$ g( z% S; h9 s) m6 m$ h        if (ret)/ p: Q& [4 a: P
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
& M0 ?+ F6 _- @, r4 J5 ~0 ]                                "%d\n", ret);& t# \- r8 r& X( M9 u! h
#endif
1 G( h/ ^$ H  [; n! n        ret = platform_device_register(&da850_evm_tl_leds_device);0 a  y' @6 v7 W' f3 Y, l
        if (ret)5 n- n. e/ F: g7 F
                pr_warning("Could not register som GPIO expander LEDS");  B, \% ?+ H: X: o$ @+ O
        else7 }+ H/ \1 u" C' H. w$ E7 c3 [. k
                printk(KERN_INFO "LED register sucessful!\n");5 H% N  s3 R2 g# O5 z
; t! A* e6 l# c* |& j/ |7 M" ?
        return ret;. |) s8 g  k7 e
}
6 f3 ?; N. `  q
+ V0 ~, p9 X& m' z: C! Tstatic void __exit led_platform_exit(void)
. C2 l/ G' @8 P{
( U  B" y! E& B, Q. v( E4 `, @        platform_device_unregister(&da850_evm_tl_leds_device);) I* U" O$ k4 [0 h" B9 e# v  @0 |

3 N3 X3 B- @. z. N* }, F        printk(KERN_INFO "LED unregister!\n");7 {+ F( m( {4 W
}
$ x/ }1 S, N5 X: `& D6 \
7 I2 s: c- K- C. _  a1 F- G" Q  ymodule_init(led_platform_init);
' K8 b+ A* S  _+ B; V6 u: |1 Rmodule_exit(led_platform_exit);
, V% G: {# d# `, R5 g3 @2 A  A8 V+ `3 F9 [) x3 G: J( I
MODULE_DESCRIPTION("Led platform driver");4 Q" [+ S# t9 J$ i5 @
MODULE_AUTHOR("Tronlong");
* M% `6 o! [; A! j! @2 ^MODULE_LICENSE("GPL");
, F- w9 V1 {2 @$ p7 Z. l& R) B8 g+ w, B1 Q- S' g: c! y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-24 05:37 , Processed in 0.035669 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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