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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。9 |  T5 g* h, S# q
#include <linux/init.h>
5 s9 k9 ]# e! {& z#include <linux/module.h>& Q- ]9 s- I+ J- }
#include <linux/kernel.h>
6 c. y8 `6 E) t1 W9 o9 t#include <linux/types.h>$ J7 u- F' q2 v% K! }6 a3 d
#include <linux/gpio.h>
4 I" Q. N, i  w+ C1 @7 E0 J#include <linux/leds.h>
' @8 ^) t9 x  g: Q" a+ v#include <linux/platform_device.h>/ L& Y$ e% x& `1 w* D$ }* G

3 c- r2 N  L( }3 B* z( w#include <asm/mach-types.h>. t8 i3 }5 P+ d) k2 w
#include <asm/mach/arch.h>
" j+ e* Y5 z& q& Q! z#include <mach/da8xx.h>
, h- W; x& ^1 y9 C6 |/ x* \6 c#include <mach/mux.h>3 }5 a* Y/ w0 x# _+ [2 y; v: W+ f0 ~
, y" F' K# I8 G+ ~7 u: s
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 s+ p9 O. ^& n: {: _+ @#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
7 J5 N& W0 c. L' k$ O( m6 T7 S4 `# W#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
/ _6 m$ m* G+ v#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
0 n' ^2 @, X' Z) f5 x3 Y8 W
- q( R% e+ O! R1 [+ B( e/* assign the tl som board LED-GPIOs*/, {8 d3 d! {5 Q8 s) p0 Y* X
static const short da850_evm_tl_user_led_pins[] = {
% m# b  g  v' D) W8 N( x- `$ V        /* These pins are definition at <mach/mux.h> file *// }2 W6 ^) Z) m# Z
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,2 z3 O0 u: E# J) O& g
        -1
1 t  D2 H  X/ J  p" P};
; Z+ N; ]# s& @
/ |' `/ m; L: k7 o. estatic struct gpio_led da850_evm_tl_leds[] = {, j; h# |/ ?2 e0 o5 a1 E  C/ p2 _
        {) I  U$ E* @; n
                .active_low = 0,
- a0 y2 v5 `$ e9 v" j2 c0 g                .gpio = DA850_USER_LED0,3 w/ g) p! U3 s% ^1 b( i# l1 L
                .name = "user_led0",
  O( v& D, @5 J) V5 G                .default_trigger = "default-on",7 C6 Z5 G( U# a1 l$ M
        },
& c4 R; j6 N8 x/ ^( m+ s2 U        {
# b' {/ i) t* x8 C8 ~4 s1 [6 l                .active_low = 0,- V; A# e3 j$ l
                .gpio = DA850_USER_LED1,
' ^" I  U% g0 p" {$ W                .name = "user_led1",  G% T6 m- d* D7 s
                .default_trigger = "default-on",1 ~2 U" r4 w* U( [4 z; j
        },
2 `: v# j4 ~( K' [        {
2 f; ]+ O, ]1 K1 Q2 @                .active_low = 0,
7 I) l+ x, s7 n0 d/ p                .gpio = DA850_USER_LED2,+ Q$ @0 {$ y2 _% g1 j% G) J5 S
                .name = "user_led2",
% A" _5 x/ Q* u0 d                .default_trigger = "default-on",
* }' P5 _8 M% T- ]7 o        },
  y0 V& f9 r" d1 o: g+ N% G: u        {
8 v* a% X+ A8 M                .active_low = 0,
# ~5 M3 N3 G& D                .gpio = DA850_USER_LED3,- A% P" X* Y8 L$ S0 }1 s! c( i) @
                .name = "user_led3",
" ~+ x5 U+ m& C( s; C                .default_trigger = "default-on",  M; b7 ?8 @4 Z8 ?2 V! d
        },/ C, q6 a$ |' k
};9 }; B  a8 u+ X' a
" l, u: Y& G0 k
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {# L' [' k* g) q: u
        .leds = da850_evm_tl_leds,1 {3 o# n$ ?. `+ \# D
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
( c) ~/ a4 G; i0 Q8 F0 S8 G};2 }, N/ Q. R4 s
, P  w" P6 ^6 {7 X' w9 G
static void led_dev_release(struct device *dev)( i+ B& k( w, v% z
{
  }* c6 L4 L  N1 j1 `7 P& T- y};
4 v& J: ]4 y9 h7 |
0 ]! G. R1 F9 n9 V& T3 b# Ustatic struct platform_device da850_evm_tl_leds_device = {+ r. w; N8 B' \3 C: c
        .name                = "leds-gpio",
% P' ?$ B4 `, C3 b' |        .id                = 1,! O# I7 E+ K  {, Q( g: A
        .dev = {+ z$ E! j" w3 \$ u0 |
                .platform_data = &da850_evm_tl_leds_pdata,
) O7 M: J/ E  y( V                .release = led_dev_release,% t( g" ~& k* O+ N6 v4 Y6 F8 i
        }& J, C0 Q. M) N' ~4 O/ u
};
0 E) T- Z7 T* l* B: y9 K6 D8 E) Z1 G; d- p! R
static int __init led_platform_init(void)0 J; q  j3 d; f) k
{
* f$ C1 j; A/ w' U& ~        int ret;0 I$ f% [8 I& Q
#if 04 c9 f* b: E  [) _! o/ P* X" I2 F
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);. z2 s8 b$ O6 W) ]$ C, L: @
        if (ret)
" C* G3 W* X" ~% m                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 x3 F. ]" U- G! o& ]/ x( P                                "%d\n", ret);
* W% n& c, w! P' D#endif
- a0 R) e+ A1 }0 U4 _2 y1 Y5 G  j        ret = platform_device_register(&da850_evm_tl_leds_device);1 C; o; w; G8 p) w8 O" T) Y
        if (ret)* I% o. j+ s. ^4 @* ^0 ~9 G, i. {
                pr_warning("Could not register som GPIO expander LEDS");
: G; G. n# g% ]        else
4 J5 `" y3 Q) v$ A) ^4 ^7 q7 w* p$ x                printk(KERN_INFO "LED register sucessful!\n");
0 }; z6 l* Z( H, P
! o1 _$ k( C* f  i        return ret;
6 a% k- e4 P) f* M& j% g# e}: D0 H  A. F) w/ m$ P1 W; D& i1 q

. m  _3 v9 L/ N8 c+ f" c. ?static void __exit led_platform_exit(void)
& S( u# h; g" X6 P6 ?{
+ K0 g% M* t3 J) x        platform_device_unregister(&da850_evm_tl_leds_device);
4 E; g1 i: \4 y& Y8 q# R9 j
& w; D3 r5 y- h# Z        printk(KERN_INFO "LED unregister!\n");
& t0 [' t/ a! D: G. B( W}4 k. Y2 ?5 b; f" t) s7 t
& U* U( W6 [+ d/ ^: H' k1 Q
module_init(led_platform_init);- C- j1 u3 L/ Z! R
module_exit(led_platform_exit);: O. P  O6 d8 |' w
- h" y8 r  V5 l  ]6 S; R, M! Q
MODULE_DESCRIPTION("Led platform driver");
! V" l; e1 a$ A: \  N- D1 o9 A. v+ gMODULE_AUTHOR("Tronlong");
' a0 q8 E: }$ l' B1 v; d+ J& `MODULE_LICENSE("GPL");! _# f7 g2 T" D' X. Z8 W+ Q
7 t8 D; L, {: x$ `+ f" U5 M2 N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-15 09:27 , Processed in 0.040063 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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