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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 L5 k# v, n, |" o( q6 N) |2 z, D
#include <linux/init.h>
$ b  Q" C8 J/ U! t9 i5 M+ m#include <linux/module.h>
, G3 [5 k4 I* c6 ?: _, B#include <linux/kernel.h>9 \+ M& j* j; C5 I$ b
#include <linux/types.h>" `1 ]) `/ F9 b9 M  X/ `7 o
#include <linux/gpio.h>. s2 t3 B% ?: g! H5 l$ g; d3 R
#include <linux/leds.h>
6 p# ^  ^7 v  b6 d2 s# C#include <linux/platform_device.h>% `# P/ ^5 g- R4 n3 [9 B

. Y; P. G3 A7 q#include <asm/mach-types.h>
1 F* }* q. ^2 U/ `- E  b#include <asm/mach/arch.h>4 T* z3 Z  f1 D& k8 x& u0 f
#include <mach/da8xx.h>
4 X4 \+ H5 ?0 J7 e/ G$ w! |#include <mach/mux.h>
8 y/ [7 D+ k# V, K( u6 W! i
' Q* A8 L1 Q8 F6 w8 v#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)4 a; J" V" y" P7 u  p
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ r9 l% b$ F2 h: ?* z2 ~( q( j0 N#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
) |2 ^: `* l& [$ N' t# @3 d. w#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)& X7 n( X" i  A6 G7 |

4 G5 _. ]- ^  G2 L$ x/* assign the tl som board LED-GPIOs*/
' Y, M  J) m: e% c9 d8 [static const short da850_evm_tl_user_led_pins[] = {& \! l7 Y) t, I& j/ ]$ i3 ~
        /* These pins are definition at <mach/mux.h> file */
2 ?  J) @6 M* O' Q3 ^# R+ V        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,& B2 X7 p+ `5 z# v  L' k/ q' O
        -1
6 f/ E: n. S; H8 _};
- I% i+ P. Y: H7 |$ M. p6 z
+ }4 [; e$ S+ ]static struct gpio_led da850_evm_tl_leds[] = {$ o$ U( r1 b2 \$ P
        {
6 T2 s% g% s6 J4 i- {                .active_low = 0,
5 j5 P" B9 Q" v- B                .gpio = DA850_USER_LED0,$ Q/ y( N4 b/ O; ?& p
                .name = "user_led0",
# `% J5 h4 F$ n0 a% y1 C/ l                .default_trigger = "default-on",
: P2 G( n# ^& a& T- j4 t        },
4 r' |6 Q' p# I: N( m9 b  M4 g        {
( J% i- t9 i% O3 ^                .active_low = 0,% \* h* X. X8 _- K
                .gpio = DA850_USER_LED1,# _! e. Z/ `$ Y% `* \! |9 W
                .name = "user_led1",
  j2 ?. ?5 X) _; N* S: R$ W                .default_trigger = "default-on",
9 b( b" N. E4 Q: U9 e6 ?; e( A        },
' m/ E9 L. h: v+ N# ~+ k( e8 ?$ b        {4 ^5 u' W1 b' H& }
                .active_low = 0,
$ B0 Z& i  H; C) u7 t: L$ a. o+ Q                .gpio = DA850_USER_LED2,. p, V5 H3 ~; R9 D! x/ e5 x2 A
                .name = "user_led2",
! B& G9 O) N8 n# R                .default_trigger = "default-on",
, r, D7 Q9 N3 T% g# ^        },( [+ k% b) k! s0 V* l; U# d' Z
        {3 ]: k6 j) j$ K+ O& O5 K: ~
                .active_low = 0,
# z. |/ f, T! H1 A9 t8 J                .gpio = DA850_USER_LED3,
; D  E. v: i' K& b( N( \4 C                .name = "user_led3",
. ^0 p1 E$ n. F7 P3 G7 e8 }( m0 I                .default_trigger = "default-on",  E5 A9 q8 {6 N. i  I7 `
        },0 L% T( u" }; f6 H1 T
};
$ {& v% r" {% Q* Y- O; e; z  q+ }  i1 j- X
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {( p/ K; ?1 X# v' R" X: m8 `! t
        .leds = da850_evm_tl_leds,, v# Q  h6 n" v$ M. Q( u- b# v
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 l/ ~- _2 Y2 D  J
};
7 q" Z  v! U" b  s6 B' \
. u6 q5 P3 F2 t6 \1 @, Q) m7 ostatic void led_dev_release(struct device *dev). u# Q$ }( {3 r5 Y/ a
{1 J! J3 o* v1 _3 M  g
};3 O. f- L' K7 Q  v' r

( k- |6 @/ N+ pstatic struct platform_device da850_evm_tl_leds_device = {: q7 S1 ^! S; a& ?, I
        .name                = "leds-gpio",7 ^/ j: Y& m3 q, L4 r
        .id                = 1,
4 S/ g0 l8 t( }: Q        .dev = {
( i, t: p* l) K                .platform_data = &da850_evm_tl_leds_pdata,
- K  I1 V) ]; g  e/ K* A9 o: T                .release = led_dev_release,$ B1 o' h1 _) a
        }
" j2 f1 F8 N3 J* y6 b. Y. _5 T5 L};
& B6 y( z# s+ H4 q" Z0 P8 x# i" J* K8 H. C+ s0 J* G5 o- w
static int __init led_platform_init(void)3 Z( Z9 o" ~% ~, z/ P
{9 X- `2 T$ M- y7 B( I
        int ret;: \" H. Y: g9 O# j$ m/ e3 E
#if 0
8 s# P" n- r( e1 m: Y( O1 L/ w- ^        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 @- I5 k- ?. C" k; l3 z- j        if (ret)
& f9 D' i/ e8 e' T                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"& l$ [8 z" c. C& `# {1 q
                                "%d\n", ret);
! a- f+ p5 O) D- v8 D#endif' q) b4 {% ~7 e  J% f4 s* _" x/ C& ]( _
        ret = platform_device_register(&da850_evm_tl_leds_device);
. T; T; t  A" z8 _5 \. @        if (ret)0 @& Q. u, W& T: o& I* V6 h
                pr_warning("Could not register som GPIO expander LEDS");
* }( w6 Y) R3 ?) X        else6 |" S: w( U/ A2 |: k. o+ y" n
                printk(KERN_INFO "LED register sucessful!\n");6 V' f1 w% i& @
! N$ g0 N9 f* {/ w2 }* U9 t0 `
        return ret;
6 D! E  Z( M; z8 N8 P! A4 e}7 i2 z8 g; e8 m6 Y: ^) @
, ^* a8 u3 H: t7 Y8 T+ w5 u
static void __exit led_platform_exit(void)4 D4 E% j9 h: p- {9 J& Q$ I3 ~2 l* |' h
{
& E1 B0 v0 Z. [$ ?        platform_device_unregister(&da850_evm_tl_leds_device);/ _5 H! g% t; n5 h3 I* v# ?0 m
# X" @" T0 Z3 r; X  s& \
        printk(KERN_INFO "LED unregister!\n");" G& f0 }" G, u4 V7 L  n, j- s
}
5 y6 j  s3 v1 A! ?3 c- `6 b' b9 T+ }4 q% C6 z( F. W
module_init(led_platform_init);
. ?* `4 ]$ f2 u9 o: C# B. kmodule_exit(led_platform_exit);' U, x7 p5 m, g8 ~) Q+ I* `) J
# k3 d) Z1 e& B
MODULE_DESCRIPTION("Led platform driver");
) |! I9 P1 H3 D9 M) i7 VMODULE_AUTHOR("Tronlong");
, Y, U2 G* H. g4 f' w$ M) a; rMODULE_LICENSE("GPL");
) G" k% I6 N: p# w
- o: p/ p6 F+ g- s
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-16 05:31 , Processed in 0.038597 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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