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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; G* n+ D' A$ T6 e
#include <linux/init.h>
* v4 k  @" d7 R( z; Q# f4 X#include <linux/module.h>4 K+ q8 @7 G) N8 r, J: i6 h- s
#include <linux/kernel.h>
5 E/ Y4 F' E) t, n#include <linux/types.h>
6 T3 U1 r0 T+ i: J#include <linux/gpio.h>
! Y& J+ X- u: e+ X#include <linux/leds.h>
1 t2 R+ Y2 r! t! ?; s#include <linux/platform_device.h>1 t& n& c- d) g2 q! E) B! Y
1 D, Q& a, ~& A4 D7 i7 j: x
#include <asm/mach-types.h>
4 ]5 ^* V0 c2 d& |#include <asm/mach/arch.h>  f- @% v6 z/ z2 b
#include <mach/da8xx.h>. p: V5 Q- _9 P4 ?2 x
#include <mach/mux.h>
3 q  n( t/ A3 u0 }  J
* V: e7 x: C( R3 \- x6 F#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)/ p9 f$ s6 m+ O& y: c' U
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
5 Z$ f" W* _2 R) t#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ B8 H% e' P' E- V#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
* A' w/ |) U  v
$ u0 {8 ^9 M- }, f2 L. |& ^, u# O/* assign the tl som board LED-GPIOs*/
3 o3 ]. `( O6 a) L' y5 xstatic const short da850_evm_tl_user_led_pins[] = {
5 k4 [' n2 z- f* y        /* These pins are definition at <mach/mux.h> file */* V0 n9 h$ w. S6 S' @
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
( ?9 _5 a: a+ ]: G7 b        -1
! `  A) ]' `( k; u1 k4 R3 e};
- s1 i2 ]3 U  u# b# G; |, O
% E9 u  z' E2 v) rstatic struct gpio_led da850_evm_tl_leds[] = {# d7 e/ U: P. U/ B; h( |- |  f7 B
        {1 a& R! x' k1 }2 Z
                .active_low = 0,
$ `& v: Z+ I$ F; ~/ k- _% g6 l                .gpio = DA850_USER_LED0,
, {4 N$ O% K/ C                .name = "user_led0",& D5 _+ y5 c% x- Q  M0 s! H: W
                .default_trigger = "default-on",$ k; u% i8 ]3 @' W$ \, Z- V
        },, f# j8 H( |/ R5 E3 C
        {# N, Y$ b8 I0 x
                .active_low = 0,* b/ L6 G2 z. c
                .gpio = DA850_USER_LED1,
* f* R/ V& n$ P; R4 Z                .name = "user_led1",' i# |& T% m) \6 _
                .default_trigger = "default-on",: l( z" Q8 N( [8 V" I
        },
+ S( v# y( N6 J5 Z        {2 r* x" Q& }0 M; w
                .active_low = 0,5 J) b5 J2 P& P- u
                .gpio = DA850_USER_LED2,
' P* G, b# G  q: i% f: g! Z                .name = "user_led2",
% @) y8 X0 f, I3 }) J, @; g7 J, n                .default_trigger = "default-on",
. S) O$ H' p; W; W5 }7 r7 m        },
8 a- q6 z4 t2 M8 O! B        {9 W: m3 `2 d/ ?# A* s8 t0 K* r) r
                .active_low = 0,
8 d7 `1 P6 i; v/ y8 Q" M                .gpio = DA850_USER_LED3,
* Y6 S! A% G# x$ A. S3 Q- w# U                .name = "user_led3",3 V7 i. O6 @5 r  F! A
                .default_trigger = "default-on",
" t# j; {* g% ^0 l( M& Y        },
5 c0 A9 W9 Z4 J& v7 b};
0 T$ _* q) s1 o9 M8 x, e6 _3 {" P+ l- U  j! _0 B' M' Q8 U
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
5 g" F" u2 D3 l- Y        .leds = da850_evm_tl_leds,4 [0 e5 u7 W- ]& ]4 W; \, Q
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),3 n% J% d" K0 H/ l
};
! d2 v5 {  n% B) M% w$ }  M' x9 Q5 a  e# e
static void led_dev_release(struct device *dev)
/ S& `7 X' o3 R) a$ o{9 Y5 Z0 [8 i5 b: v7 Q8 A& h4 X
};2 `' z1 B4 |) P! B5 q

5 s+ J4 k0 C; {) A; \static struct platform_device da850_evm_tl_leds_device = {' e% t4 U' h9 S3 N, V( E6 U. o2 I. }
        .name                = "leds-gpio",& `: i3 d( {' I5 Q% |4 h! z
        .id                = 1,/ v1 |7 ?9 K% h( J
        .dev = {
+ R& T( p- K5 w8 [                .platform_data = &da850_evm_tl_leds_pdata,% x; t2 p9 ~6 O. Z9 D
                .release = led_dev_release,5 F1 [3 A8 [8 q, e8 O  @
        }/ Z8 }$ M- H/ |8 J$ l
};% V6 I: Z7 i9 y: F1 C! b: i

9 \7 C1 j# V8 O" p$ g1 S( |static int __init led_platform_init(void)
9 a, l4 n. X3 j, |+ G, C7 r{
$ o& _  k  L, Q$ F' K" P* v- ~        int ret;
# N6 c) k- Y, o8 x: G5 x#if 0# j2 ?" N) a4 N: t: \2 g
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
! q! i7 g  n. m/ o8 D, Y: l# Y        if (ret)
6 b8 [& c7 g3 N6 w8 i# @                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
8 f2 N5 m) V7 S' b5 j7 S& _/ J- r$ p                                "%d\n", ret);' ]4 b2 W* h7 k. p3 P) J
#endif
( [, D/ u/ G* W' y" A5 W        ret = platform_device_register(&da850_evm_tl_leds_device);
& S. `, \6 q* W) D        if (ret)1 a' l, X( ?/ a$ v1 Y5 O8 u. u
                pr_warning("Could not register som GPIO expander LEDS");9 C$ Y& E( a' i# t/ T( ?+ b1 K$ L+ B
        else. r1 o4 q4 x! [* R- W
                printk(KERN_INFO "LED register sucessful!\n");0 W7 d4 B5 e$ k+ N+ ?1 v* l
7 E" \, S7 \! i' C- K$ i
        return ret;4 u5 v% s$ a/ c1 u3 I3 l
}
" `. H2 @! g" Z* R& q" u3 q1 `3 }! t. N0 ]9 U" j
static void __exit led_platform_exit(void)
$ j! D8 P7 @% Z, u5 N{3 p2 T# `, g1 g, C
        platform_device_unregister(&da850_evm_tl_leds_device);) t$ m$ Z& {; Q7 X( c: K) n! q0 S% X

8 n% E! c: E" v6 B3 ]9 `( B) M        printk(KERN_INFO "LED unregister!\n");
! ^( T- W; q7 a. S4 W$ v. p+ l}
8 S( i- r/ g: k) s" X) p# _$ L+ G/ }" L
module_init(led_platform_init);/ l8 l7 v4 B6 p1 w
module_exit(led_platform_exit);1 @/ h% P& A$ ]5 p& h5 x6 r
( X6 ]! i+ k% A3 f/ x' L
MODULE_DESCRIPTION("Led platform driver");) p* Y2 j% v2 O# G% S; x
MODULE_AUTHOR("Tronlong");( T" m6 R; m7 w% f
MODULE_LICENSE("GPL");
7 W* ]) w; n( w9 v" I! G( ^# y$ K- b, O) s* p7 |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-23 02:16 , Processed in 0.041980 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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