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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
) x/ Q" _# X! m- e4 z#include <linux/init.h>
7 C" K) r" N% z" C5 B6 p2 U#include <linux/module.h>
4 o. e. w/ H5 N& t1 F#include <linux/kernel.h>$ P/ R3 ^5 \+ w7 g
#include <linux/types.h>
' x- Q. q( |5 ]; G+ u: O#include <linux/gpio.h>
; L7 H  @* r; o* o& l#include <linux/leds.h>
& q  d: n* E8 }- T: z1 X#include <linux/platform_device.h>
( B& G, X: s- [+ ~& T) Q( ?4 w! z/ L
#include <asm/mach-types.h>' O' j9 j9 T' c! R1 P/ s$ e9 T( q
#include <asm/mach/arch.h>8 \3 b; c6 P) F8 h1 `7 h2 n
#include <mach/da8xx.h>1 Z2 z1 _" G0 l  G
#include <mach/mux.h>
! G7 U# x5 M" e& J$ E5 P& f1 S' T+ ]$ f) J
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)# M: H. o/ S! s6 f& n+ T
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)1 o3 Z7 n% }& Z& X4 C
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
+ @6 Y% k+ j( Z7 I7 j7 N+ `& x3 Y- X#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)' `, K; F  z6 Y# k9 X" q+ E
7 S8 g2 F$ F" j8 y% O" r
/* assign the tl som board LED-GPIOs*/; o, [) b8 B' s# n9 K, t$ X
static const short da850_evm_tl_user_led_pins[] = {
3 Q" W! h( A$ u$ w; v" `        /* These pins are definition at <mach/mux.h> file */- L- v4 l0 W1 b& ~) d8 [, y
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
4 R7 r: s1 e" G! C* ^! y        -1  c2 Z- B+ R3 j! l' C3 M# g: [
};
; x: ~- \2 v3 j6 u9 N8 O
* V' H' h. t, _5 k, @static struct gpio_led da850_evm_tl_leds[] = {
5 [, n3 o& H) w: L        {
' Z& y8 S  ?+ K' R8 m                .active_low = 0,
# a6 U4 b# V8 w9 B1 e                .gpio = DA850_USER_LED0,+ `0 M* Z( q& u9 w$ R9 H9 D3 j9 _+ W
                .name = "user_led0",* Q' `& P0 ?) E
                .default_trigger = "default-on",% k* O* Y! X5 e) T- t
        },( O4 j5 e0 h( ~* L* v5 Y: y0 N7 u0 q
        {; b, v7 \  @2 a. s* {
                .active_low = 0,
. F! q9 n* {. `& Q$ D8 Z+ ]                .gpio = DA850_USER_LED1,
7 U5 v$ c9 q! X                .name = "user_led1",9 J) x. m( ^! R3 F( n' R& O
                .default_trigger = "default-on",
6 x$ @9 m5 ?. W# k* _' r        },  c5 G: J) M% i# J5 l- ]5 o# _
        {* ~6 d4 F9 {& F4 N6 ^6 }4 T
                .active_low = 0,) S' n0 n( s# ]& A0 [  b
                .gpio = DA850_USER_LED2,6 M) l' R0 z: d& ]& f% |
                .name = "user_led2",0 e$ R+ H% l4 h. {% v) D
                .default_trigger = "default-on",. U4 B: f/ L' r3 N8 O- P8 X1 Z
        },3 V- n" V1 T9 n+ }
        {
6 A$ b3 d5 L4 H3 S6 Q* F6 }, v  f                .active_low = 0,& l, X5 x1 o+ J- m
                .gpio = DA850_USER_LED3,4 C# H1 ]  L- R& D6 V
                .name = "user_led3",5 v$ o  M3 Q! r; d+ r
                .default_trigger = "default-on",  D* t. d4 J' _' ], Q
        },
: t' _" V! m5 i) ]; F8 P+ a7 w};
4 i! y; e1 M8 @5 g( s
3 m0 h$ P2 \# r' n3 g. E5 ~static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
# P/ Y( x1 ]+ D9 J: i        .leds = da850_evm_tl_leds,
- F4 r: R3 \- U        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),! O6 U, i7 I3 \4 |1 f
};
# }3 @& m: [, M+ F- F9 C8 u% u  e( S( l; B! g" c9 J# N! A; ^
static void led_dev_release(struct device *dev)
$ u) f; a8 e; V5 l/ v) y0 O( c{
3 t* a& `9 j+ a};( F% X8 G4 c$ M! _. C4 @$ L

* O, @5 Z3 @& l, D6 s+ G0 n& _static struct platform_device da850_evm_tl_leds_device = {% F& J4 c9 t0 Z" T" J
        .name                = "leds-gpio",
, m+ Y, r# N2 e( V* s# ~        .id                = 1,
* v9 Q! m* M0 m        .dev = {
# E! q: M; ]# |2 E# ]1 q* k2 @* `6 B                .platform_data = &da850_evm_tl_leds_pdata," U" Q& T7 i% P! O" o
                .release = led_dev_release,
/ b1 Q2 _- R" p        }
# K8 d/ h  b, x3 G* ~" n};, V  e9 u3 f1 W- B
/ w. B/ P1 p$ R6 c4 {( h
static int __init led_platform_init(void)4 U7 u! z3 _, c2 T8 d' M8 d
{; j# y: V: ^0 v/ j; I3 k
        int ret;
3 J7 D: I6 U( J8 v% u. A6 V#if 0
& s! f' [. @- g        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
) g7 D) e2 `! H9 z; O1 a        if (ret)
9 i$ V$ A' T2 A( B. n  c                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
1 _  y' b$ @0 `: Q& e                                "%d\n", ret);
3 T" b* \& \7 t! V#endif3 b& A. K5 `0 C; n9 c/ O3 U7 n) m
        ret = platform_device_register(&da850_evm_tl_leds_device);
! p3 F6 |% I+ V( p3 K( K" ]        if (ret)# I7 ]# X9 F% G: U* U& D2 S/ q, T  Z
                pr_warning("Could not register som GPIO expander LEDS");
2 Z( R- c# D" M7 R        else. p- p2 l8 q* ?' @+ s; R
                printk(KERN_INFO "LED register sucessful!\n");# n7 P! W$ ^* i" Q- K1 e- t$ Z0 J

* s- p& N+ E4 \. |: M        return ret;
7 ^* S6 }  v8 y# p0 l}
& E1 V4 Z- |; N  X, o
* S8 L  @4 w1 i2 ^% Tstatic void __exit led_platform_exit(void)  ^0 Z' A& C: F& r1 S1 u
{
# b( K/ v! _' X6 N% O6 }( d        platform_device_unregister(&da850_evm_tl_leds_device);1 P/ Z7 g5 x# }
6 q9 X4 T  [& y: [4 O& D1 D
        printk(KERN_INFO "LED unregister!\n");
- l0 f6 d; u, {' S5 u) o. B}8 x5 v2 m( D; x/ N

0 e6 q7 h( E3 I  @# t$ P; }4 D% jmodule_init(led_platform_init);/ s( f1 S( x- L0 i9 e( W- v9 }; |
module_exit(led_platform_exit);6 X& ?; l- N5 A2 g0 q$ u
& U# Q3 D4 y; m$ s5 w/ k
MODULE_DESCRIPTION("Led platform driver");
) p' D4 H: M( S  sMODULE_AUTHOR("Tronlong");
. F( v" z2 _1 |MODULE_LICENSE("GPL");8 r6 n! I' A) P1 Z8 U0 M0 R7 x

1 O( p  [8 `- r" g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-10 16:50 , Processed in 0.048874 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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