程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。4 I% D2 r8 O) J4 y
#include <linux/init.h>
: F& C; v- L5 w- V#include <linux/module.h>
+ t( f3 o0 }6 A( `/ M) S( S#include <linux/kernel.h>+ b- B+ e+ q3 l* V+ N/ O, m& v( `
#include <linux/types.h>; i. x. U+ ?1 W' D
#include <linux/gpio.h>
0 [* ?+ p2 H; s& s#include <linux/leds.h>
; Q, @9 C( P5 z) _1 L#include <linux/platform_device.h>6 i) R" @' _/ c6 e2 t

+ A. N/ ?3 M, F4 T  ^) S. k#include <asm/mach-types.h>
* {+ h5 R+ [4 b: C0 B( B#include <asm/mach/arch.h>% ?% }1 j6 [) }9 V# N9 _/ G
#include <mach/da8xx.h>0 X& \+ ?+ s+ B) D7 |  v2 q% \
#include <mach/mux.h>
) l1 D3 L) F& }# Q. T( h1 ~4 y* w+ d% }! s
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) R& O' J8 e1 Z6 X#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
5 |9 N  u% d3 X$ i6 m, U" i, M3 }0 @3 M#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)) `( e& Q& I! Q! T' K3 E; M5 p; d
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)1 J( L" v9 p& \% Z+ S/ b7 X

+ s; z0 @0 H3 F4 [# ^, W/* assign the tl som board LED-GPIOs*/$ J  A. p  ]! J
static const short da850_evm_tl_user_led_pins[] = {
3 n! h; G5 W2 j, J        /* These pins are definition at <mach/mux.h> file */3 m$ B6 ~, K. }3 {
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
0 }) n1 ~) M1 o0 r0 ?0 J, f        -1
6 I$ n9 {3 m9 s2 I4 I};
. @2 c, ?" n7 p$ Z% `4 H; G5 Y/ z! y8 }' L
static struct gpio_led da850_evm_tl_leds[] = {& H2 h4 y  @8 w  o# j  w$ \% x" z
        {
, M+ o! Q+ O' p) R                .active_low = 0,
' `) N7 x7 r. {5 Q. y# t$ R9 y                .gpio = DA850_USER_LED0,
9 n4 d) P- v+ b% `                .name = "user_led0",/ d7 Q) ^  g& h% e+ \9 ~" \
                .default_trigger = "default-on",
) S5 m3 x* F" V4 A        },' n6 C# S5 M1 w. C  Y
        {5 f: v: D! U; P# U
                .active_low = 0,
9 O0 |. B2 W: O! O& U1 B7 m& ~! q                .gpio = DA850_USER_LED1," I% ^1 _0 s$ C" y& c. P; c
                .name = "user_led1",) Q8 Y/ H/ v# p. x
                .default_trigger = "default-on",
& ?& o$ r/ ^$ ~- o, f  E3 s; u* H( o        },7 w! r  \$ h4 m, x; c
        {4 N, b' d1 L* W* A2 K$ V: z, n
                .active_low = 0,6 Y. n- d; v5 \
                .gpio = DA850_USER_LED2,
. v+ _; ?& w2 p& @" A5 A: q                .name = "user_led2",
/ S0 J* P$ n0 p1 P8 U" n( _                .default_trigger = "default-on",
0 v  ^4 o0 k8 c0 v4 d$ B0 d3 v        },
7 g+ w! G, P+ x" h2 j7 D) T  U, I        {4 f  ?  _9 _: ^8 Z! q
                .active_low = 0,
4 e% u' F6 K. M                .gpio = DA850_USER_LED3,
1 l+ Z) {  [, u" L& v( s                .name = "user_led3"," t9 |# n. W$ O8 u0 |. C
                .default_trigger = "default-on",$ H5 M  w6 j! E! j
        },
2 d  O5 V' C+ i$ j6 S2 a* y! g, q};! E: X0 x& _- q! }" ?! ?; Z5 @
. o4 q6 @6 m" H& s
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* n$ N7 ~- \" R% p1 a        .leds = da850_evm_tl_leds,7 r7 U: A2 a( `  a7 N' `( @, @. b
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),( t& `9 Y4 f8 Y$ L2 ^
};
, Z* c7 @- z* T- s2 G4 R
6 H6 k' _. l* ~4 H: p6 lstatic void led_dev_release(struct device *dev)9 ]% y& u) k# d& S0 ~, Q. X
{
/ p1 U; U# Y7 W; v};
. Z* i) w8 r% n" R. ^% f9 t! }. c" w
static struct platform_device da850_evm_tl_leds_device = {
: n2 b( C' w3 U' v/ B- N3 H0 i        .name                = "leds-gpio",, ~4 A! r, z' M/ K3 p; v
        .id                = 1,
6 F7 q& J1 O7 o$ |+ Q        .dev = {) ?5 o8 w! _( t% ?% t1 p
                .platform_data = &da850_evm_tl_leds_pdata,
6 I4 ~4 h" `5 I2 y% \! w0 m                .release = led_dev_release,
, u. B- o  d1 n: [        }3 [8 P; a4 N) v% }/ |3 K
};$ u$ Z2 C" i9 ~

7 A+ y9 G/ z) a6 s/ mstatic int __init led_platform_init(void)
; c5 M  g* G/ E$ k+ H: B{- b/ y4 `& z* ~/ s+ Y
        int ret;
( N: }% A+ C  F& o#if 0
* X" r' d6 p: D4 M# W        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
6 G% |7 U# Z) o& k        if (ret). t3 f9 y0 d  Q, y% d2 a" Y, w
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 d" d5 [+ p  D5 z1 u
                                "%d\n", ret);7 q$ J) c0 h( ~4 k' o5 k
#endif
. w0 H- `9 C% O# n0 l        ret = platform_device_register(&da850_evm_tl_leds_device);
- \- k) a3 F( F! W6 l; c        if (ret)' H8 L! b) |! L1 v* |. A6 O
                pr_warning("Could not register som GPIO expander LEDS");9 j$ i( d) |. r+ a2 s1 x  R
        else+ C/ A* G5 Y$ }/ j0 [: H
                printk(KERN_INFO "LED register sucessful!\n");
1 {8 }* I6 L! {$ q, A3 K4 q9 E$ e, m2 d4 |/ |
        return ret;
: G& M" ^# _4 z0 N8 H: l# ]7 d4 |5 N# D}. _7 P% l2 P, t) ^. @8 m9 X$ I3 J
8 W& K! l' \2 M8 k- @
static void __exit led_platform_exit(void)
  Q7 y1 [0 q+ J' g1 {8 F' }3 y{0 E0 _5 _& O- v$ `2 P' m4 o
        platform_device_unregister(&da850_evm_tl_leds_device);
! P  D7 N- Z% w9 k4 o; O# V& X$ ~
        printk(KERN_INFO "LED unregister!\n");1 p. E8 {- _7 |/ A6 ]: T
}$ i& e, V4 u- W3 ^. ^7 M4 O* d" n
  U6 m' A* h5 Z4 j/ j( O; y- {
module_init(led_platform_init);
3 G' d8 w: C; |, L4 `module_exit(led_platform_exit);
# j  O: z- ^6 }2 o+ G9 M8 _4 Y% ?
4 g  [* n3 B: c1 e0 V% ZMODULE_DESCRIPTION("Led platform driver");" d# z* w9 Q/ [8 o
MODULE_AUTHOR("Tronlong");
' g+ Q8 U3 @' f' m# cMODULE_LICENSE("GPL");% J* k  B  k) h
  ]; Y4 U7 g9 h5 e6 d1 S7 ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-3 18:50 , Processed in 0.046109 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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