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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
& i. k" ]/ m* C/ _" a#include <linux/init.h>
, H9 _( V5 C' O  l#include <linux/module.h>
; F; v& R/ `/ R" y1 P2 T#include <linux/kernel.h>7 {! z# {/ w1 e9 q# ]- J/ j" o# G: X
#include <linux/types.h>
# N5 w* Z- t! }- g) P( d#include <linux/gpio.h>- P& _0 p' L1 n; p$ S
#include <linux/leds.h>( U, H& ?) T' C3 n4 D
#include <linux/platform_device.h>9 U4 s4 v: o- z2 T& s( Q+ o
8 \5 d1 `- w" R
#include <asm/mach-types.h>
6 j! ]1 w. W0 o. g) g#include <asm/mach/arch.h>3 C8 {) N9 d* Z& r9 x8 p
#include <mach/da8xx.h>
% V9 |0 t" |0 c+ Z- o#include <mach/mux.h>7 r! Z$ d: w* l6 U
8 E( y  v% K: d
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)2 Z5 H8 b! o: R4 V/ r# o8 h
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)& n1 _2 f2 L1 t+ w4 ?- P3 C/ M
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1): f* [, ~5 q. a# ]1 l
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)" u8 h4 [. n; f8 L" x( r4 J$ i
1 W! Q" o( a& e  a, K+ ?. W
/* assign the tl som board LED-GPIOs*/# U0 h5 H1 d' k! ?( o: _7 Z
static const short da850_evm_tl_user_led_pins[] = {
; ^0 a9 w2 Y' D1 j        /* These pins are definition at <mach/mux.h> file */- e9 r; O; S3 V
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) I' N1 Q4 q$ I" G        -1& D6 x  ]5 ^+ f: s" S: X
};
2 C8 {$ T0 n1 j9 Y4 v" G) y! L3 {6 K  e) N
static struct gpio_led da850_evm_tl_leds[] = {
, p3 [1 R" ^: M- B; @- T$ {        {
+ l1 I% m. S+ J' ~$ ~- ~                .active_low = 0,
4 X& r8 K! p# D5 p9 ]/ R: b                .gpio = DA850_USER_LED0,
- r6 A0 U( n, D- z$ a- Y5 [4 O                .name = "user_led0",
) S4 ^. n$ |* C0 |" @- _. u8 T$ {                .default_trigger = "default-on",
5 s7 q8 i5 t. l        },
  ]9 t- }6 w( B: x6 v6 ~        {
! Y/ T2 t7 o- g6 o/ I1 v                .active_low = 0,; C  e; r; O, m
                .gpio = DA850_USER_LED1,
! d9 r1 m/ ?+ e; z8 f) V# x                .name = "user_led1",& {) B5 M. `7 C% D
                .default_trigger = "default-on",
( e$ r- d0 o- C- x& x        },  y1 V' ]' |  W- J( q
        {
" l7 J1 m! x6 F9 ]( x- v/ e% P                .active_low = 0,4 S8 h( h6 l- `1 E" ?/ i
                .gpio = DA850_USER_LED2,. y& K3 ~6 w. |8 [& X, n
                .name = "user_led2",
& U" u" u+ H# g  U2 X                .default_trigger = "default-on",( B2 L7 j+ n, R! @
        },
7 F7 E7 K1 \% M        {# H; x7 M7 |3 Y/ Z3 B# P" \5 o
                .active_low = 0,& q6 s4 H8 L" L( K% D7 e. x( ]
                .gpio = DA850_USER_LED3,- Q) n  v- a" A. V
                .name = "user_led3",
: ]2 P  h7 a5 o' g" @2 R3 W                .default_trigger = "default-on",2 g! a/ Z' z* z# Y1 R$ C/ r
        },% u; Z% E! d  h- p
};$ H8 i, z6 a* N9 h4 v1 X; u
9 T/ \0 Z0 i( {/ z) D4 n2 |
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {1 j" q. E$ g3 z& o6 Y8 N. x2 A
        .leds = da850_evm_tl_leds,
" r1 b$ G/ S' i) D, P( ?! |$ a% r        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, R$ n" C+ M( P( }- a/ o
};9 {! b8 I' @; q! n, d
$ b  E6 H8 f) A6 W$ \5 W; D
static void led_dev_release(struct device *dev)% R$ V# N# b- d. ?
{% O: `7 Z- E7 t! Y' _6 P8 f0 K2 }
};1 y" N: Q4 q) }3 A7 O  n) H" A
, n, ^6 g* \/ I, M
static struct platform_device da850_evm_tl_leds_device = {
0 k- x9 I2 l& T, X, m( p        .name                = "leds-gpio",
; L1 p, _* P7 Q6 O( `3 ]$ c        .id                = 1,6 L& [! C% P6 O* A. }3 O' s
        .dev = {
, I( Q/ p6 a. ]                .platform_data = &da850_evm_tl_leds_pdata,# ?: {, z' `1 ^; W, z/ I
                .release = led_dev_release,6 J( L  u+ ?) w/ I+ o
        }
: ?' N' M5 y# n5 ?  R% M# w};- }1 {. J- ^- e. P! U

# `8 I# S2 r5 C4 r* tstatic int __init led_platform_init(void)0 o  K) y) o2 }, m0 k' K
{, O; j, i# n4 W% m+ N
        int ret;
  v$ E& t. y! F  p4 f: z4 d#if 0% n2 y3 T9 T3 }2 j
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
& y( k, a0 h, A        if (ret)
& b, W6 o/ R! N# Y                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 r$ u# y+ G* I3 u
                                "%d\n", ret);
$ T+ D0 T" W+ L# Y2 `9 M#endif7 v: t" f. I8 p8 ~3 C1 s
        ret = platform_device_register(&da850_evm_tl_leds_device);
1 A: ]6 f5 |6 Y3 s$ W: ~        if (ret)
/ f' O/ c: M% R7 m! t! U) k3 G                pr_warning("Could not register som GPIO expander LEDS");
7 @4 p/ A- _8 E2 O. N        else
9 o+ z4 _0 k7 _& ?, t* b/ t                printk(KERN_INFO "LED register sucessful!\n");
0 A# ~5 l: w' x6 g& x8 M9 R+ N4 J* P
        return ret;- l5 S2 v/ \( h+ S# P( e1 F$ P2 E
}
. S, T) X% a% _! L0 r* E, v9 S: k7 o. v8 z& t7 ]: K; d7 W
static void __exit led_platform_exit(void)! x0 d) z. E2 Q, v& ^
{
6 t/ ^5 d! C, h4 ?) D        platform_device_unregister(&da850_evm_tl_leds_device);2 T& ]! h0 [* {/ m+ g" w: i
5 S- o' C, k5 m. h: K" D3 D; `
        printk(KERN_INFO "LED unregister!\n");; S) k& k4 B5 U- J" @. m  |4 V0 c
}
) o! H* i  Q- p/ ~' e+ E9 x# f& K4 z" Y& \3 z/ p0 U
module_init(led_platform_init);
5 U! @! \7 n7 o3 U. Amodule_exit(led_platform_exit);
; A5 H! `: S5 ^; ]4 I: S' J! z' D# W  r& S6 o
MODULE_DESCRIPTION("Led platform driver");1 v: \3 o5 Z) W) n' @& w1 t
MODULE_AUTHOR("Tronlong");0 I6 Y5 j+ h& r5 q5 {4 A
MODULE_LICENSE("GPL");7 ]4 |# ~5 Q/ f" a
7 d' T; k  Y7 T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-9 14:48 , Processed in 0.040869 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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