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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。# w% T  b+ }4 t+ [, B
#include <linux/init.h>
" N/ H' ^3 C; E8 z. b3 s+ V8 T#include <linux/module.h>5 h  D" p4 v1 q, Q+ i  r, @
#include <linux/kernel.h>6 e; t0 h  B3 [! O1 x
#include <linux/types.h>
( u4 S6 @0 o3 O8 X; @#include <linux/gpio.h>
* b, m. y" q9 S- G) k#include <linux/leds.h>
8 L& S& D& j. ~$ U! g. k#include <linux/platform_device.h>
! J# B: ]6 G2 G$ D0 b0 J. k) Y5 Z0 P9 U: c3 B7 Y
#include <asm/mach-types.h>
: j/ N; O$ l. [6 C" ^$ U- b( c#include <asm/mach/arch.h>+ B6 }9 @; j' b) l4 X; D
#include <mach/da8xx.h>
9 h3 `) E) @* s. G3 ^$ v#include <mach/mux.h>
3 h. w9 |( h- s" S; W
2 e5 M0 A" ?; q# k#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, s0 F: z# Y  S/ [1 \; W5 e$ d" F#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: T9 Q' Y  @& @' U& ^" Q5 Q5 ~#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)1 I( b/ ?1 c. ~) S! z; V4 Q
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)* S6 l$ V$ Y- C7 U% _

% l5 d- V& N& ?9 b/* assign the tl som board LED-GPIOs*/
) H+ y7 A# g" z8 Cstatic const short da850_evm_tl_user_led_pins[] = {
; \! U/ k% X' g) E* G        /* These pins are definition at <mach/mux.h> file */
/ ?4 |  O$ @/ |0 e  v        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,' u; C) K  _* O+ w% }
        -1
' ]# _0 T% F7 l6 G6 |( w};/ O! M, s3 T4 l0 a: u4 a8 W0 v
5 j7 ?: n; Q, I5 f$ Q8 ]9 u
static struct gpio_led da850_evm_tl_leds[] = {
: s. k. {6 j, X( X* w1 v        {
+ k% c& U* j) f3 V' [! J                .active_low = 0,
" P5 e* {  t+ Q/ f                .gpio = DA850_USER_LED0,) q* O* `5 p/ W: |& T8 P) c
                .name = "user_led0",
' Y$ h$ t9 F. m                .default_trigger = "default-on",
" Y7 o/ j( ^9 Z        },  d7 f( e# T( j! L% n8 d
        {
6 l4 I  b( ^% V+ V1 T3 p$ @. A+ M                .active_low = 0,0 o7 d  ]" ^0 t2 ~' D, Q# Z: C
                .gpio = DA850_USER_LED1,
$ v" y* q6 b% Z$ i/ N                .name = "user_led1",
( F4 X, l. j5 d1 h2 Y                .default_trigger = "default-on",2 D3 F! ?1 [( p7 K( g  O' c; y9 E- A# w
        },
' X, [' J$ X! [6 V        {! y0 o) A# R6 a2 v+ v
                .active_low = 0,8 V  F6 D% K" w7 {3 D  x, L4 }
                .gpio = DA850_USER_LED2,
! W  R1 M9 S7 S8 E2 p- B+ v1 `$ P                .name = "user_led2",, M8 U4 a& c3 N% ~
                .default_trigger = "default-on",7 P8 c( G3 i* K' ^
        },. v' }1 c# x0 g7 U% |2 w
        {
/ M( q" {. n: K$ b9 L                .active_low = 0,$ V' w: a. n5 z/ T6 {
                .gpio = DA850_USER_LED3,
) w4 t# F1 w- n& B                .name = "user_led3",
1 o; `0 |: \7 Q+ k  u                .default_trigger = "default-on",
3 [9 X7 {1 e, r& |5 r+ k        },- y% Z9 G/ O7 O  p0 x4 a" t
};
- P1 P4 v% Q0 x. Y
( I' e5 L6 L1 o, sstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
0 A5 u! p0 S! C        .leds = da850_evm_tl_leds,7 o8 Z/ V3 ]7 D/ R( q
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),- k' ~) g0 Z, C2 c: G
};/ L4 t. P- q: }' y3 X
8 @5 `+ v9 N6 D1 ]3 ]% V) L5 W
static void led_dev_release(struct device *dev)
3 h3 j" D9 n& C( B% R{  H7 [; j+ I6 w0 h* x- ~( e
};
% |7 Z  t* c  b$ [1 Y) V8 J0 E  j; e( P- T1 A
static struct platform_device da850_evm_tl_leds_device = {6 `. r7 d  b2 C1 F5 ~
        .name                = "leds-gpio",
7 S' z3 o- E! P7 n2 b3 R        .id                = 1,
" s. D- S  K& M2 ?1 k: h        .dev = {
3 z; ]% |; c5 g: i9 x) u                .platform_data = &da850_evm_tl_leds_pdata,5 d8 ~, n6 j8 Y% U7 \2 Z, w* P; z
                .release = led_dev_release,
$ a; z0 g2 W3 Z  C        }* F/ q  r) b6 K* t% \7 ^$ L
};  _1 s* O5 X0 {6 _6 Q( s

4 O+ x# T& R$ y+ Cstatic int __init led_platform_init(void)6 j% Z3 u7 o6 k/ o
{6 _- T' k2 k+ w5 |
        int ret;
  P5 i1 w* T9 X, v5 U- {: l5 G" V#if 0# A* B. C: o1 J( z
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
6 y6 }, H: X' r9 d6 E3 z+ q        if (ret)
/ }: n: m( t* d                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"6 o! n- {; t' R
                                "%d\n", ret);
# j0 }, ?. N% V' }#endif
: t2 S& r4 S  @; e' y* ]( b8 O+ G        ret = platform_device_register(&da850_evm_tl_leds_device);0 ?  w. u3 K% U! q7 r3 o) V" X2 |/ x$ {
        if (ret). _, _0 ?1 z5 G% K& Y
                pr_warning("Could not register som GPIO expander LEDS");* t. G0 j7 o2 l% ?: M
        else
$ d& G0 f1 d( X  w, h7 ^6 U( C, B- U                printk(KERN_INFO "LED register sucessful!\n");% m& x% D6 T, e7 R$ n* Y! J
4 B" t# m/ k: u3 r
        return ret;! v3 t  B. E# b7 i* D# K1 v6 e9 J
}' @  G4 A. p$ M5 k- X0 x6 {3 I
0 `4 M% M' h5 |+ m  [  ?
static void __exit led_platform_exit(void)% ?$ I$ L+ e0 L% v4 Y
{" x5 P* Z* k. u0 y) q: F
        platform_device_unregister(&da850_evm_tl_leds_device);
* ^2 `; D1 \2 s. l2 f6 }" w8 `6 W4 u7 `! Z
        printk(KERN_INFO "LED unregister!\n");: |. M2 B: `# P  K, t  Q  O
}
) M% R5 G3 l) C( P  ]
, @4 L" L& P: m% S! O2 tmodule_init(led_platform_init);
& s: r: M& P* ^' Jmodule_exit(led_platform_exit);
* v) t: m1 n# q! o0 L* U" L9 o6 h! q: g+ t; {
MODULE_DESCRIPTION("Led platform driver");: v, i* r4 g" w; T5 _- V4 ?. s# _
MODULE_AUTHOR("Tronlong");
! V- W. z( g1 b7 d4 d5 b% GMODULE_LICENSE("GPL");
2 m# S, t( l1 L3 I* A+ u3 e1 d3 T* Q) E& S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-6 10:54 , Processed in 0.040535 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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