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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。0 X0 o/ p( r4 A" `6 O
#include <linux/init.h>9 S& ]4 D  \, n! T" O
#include <linux/module.h>- o; n" R+ ~9 f- b
#include <linux/kernel.h>
6 X; ?/ r1 p" v; G8 x#include <linux/types.h>
: V+ N3 d# Z. m" _2 v7 f#include <linux/gpio.h>1 j* S  K( ^6 C# ^
#include <linux/leds.h>
4 Y2 B8 r! d- _: y#include <linux/platform_device.h>/ t; h3 _- ^6 B: ]
8 e0 x, n- k2 \1 r( S9 v, ~
#include <asm/mach-types.h>: N, Z1 C0 C/ Q6 R
#include <asm/mach/arch.h>) _, S5 K& F* {9 N. H& q" Y2 D
#include <mach/da8xx.h>' [4 Y: N. Y' C8 G# |8 h( O
#include <mach/mux.h>- x& v( V+ N) l9 `5 I6 z
6 ^/ t. e' a3 O) s% D0 i/ M5 A" y
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)3 W3 f* s/ c/ z
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ E/ d' G4 Z+ V; _2 Y- d#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)7 ]/ Y& d/ k: y2 u6 E
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( G$ g% e8 g/ O9 ?) \# Y+ j" C& A6 q6 V
/* assign the tl som board LED-GPIOs*/: _( K1 o. Q$ a( }
static const short da850_evm_tl_user_led_pins[] = {& v8 l$ d1 v+ R5 p; b) f
        /* These pins are definition at <mach/mux.h> file */
0 D% I& J9 g* I% l4 |$ ^8 |9 c6 U        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
5 y: T. |: L- w) L0 Y        -1
3 J) D; w0 |4 {$ K& r};/ Q; W( h: `" s8 g+ F

# }2 c. d$ e1 F( A7 ?( ]static struct gpio_led da850_evm_tl_leds[] = {+ P$ _" T/ k* G! `
        {8 c0 N+ a7 F- c0 x
                .active_low = 0,
. r5 Z, V3 P' z1 C9 j, k                .gpio = DA850_USER_LED0,
3 L  |, d2 n& m                .name = "user_led0",5 D/ b* E9 [8 K9 _: b5 B! T
                .default_trigger = "default-on",
! X: e3 o) p# C        },
% D% y8 H6 V+ M/ b& N# \4 ?        {
  n6 N) q3 Q% A& i* S  i: z, [( t( B                .active_low = 0,3 i; t& b# u5 U
                .gpio = DA850_USER_LED1,
6 G) }# b9 F6 \                .name = "user_led1",* w( a- s( g* ]' m+ H
                .default_trigger = "default-on",
* D% a/ D  Y7 p. e& C6 f        },+ l4 q# Y/ }) ?2 o7 ?7 l3 j( I/ ?
        {) H- g; ?/ H5 I6 V! d4 p
                .active_low = 0,5 ?- {6 C- X4 V) ]' O
                .gpio = DA850_USER_LED2," B; j! C3 m, F+ ]9 C7 i
                .name = "user_led2",0 x' v' x/ f+ E7 {
                .default_trigger = "default-on",% C  g8 L0 }7 g8 t/ s/ [' T
        },
5 z6 P# Y7 V' D        {
' L% ^- D3 z5 c% G8 @' p; u$ A                .active_low = 0,
% r; C- T7 O/ w7 u9 t" i                .gpio = DA850_USER_LED3,  [, u4 `# [3 o3 C6 j! V. F
                .name = "user_led3",' T* Y/ q! S0 y% [8 H/ Y
                .default_trigger = "default-on",
- V. _& B7 o0 O3 l% b, @& M        },/ D  S3 G/ }* x( Z  ~3 I/ _
};/ @# g, F* i7 p# K; W3 K# Y3 W# v( y

9 A% L: D5 t* g; Hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' b( \2 W2 A8 |8 D3 ~
        .leds = da850_evm_tl_leds,0 W7 L, g& I: u4 h- e5 V* ]
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
& g5 k2 g2 Y+ I5 ~1 u};9 y9 D5 |6 n3 l+ q/ O! V

$ Y( ?) U; Q3 kstatic void led_dev_release(struct device *dev)8 _# |. a1 V  O/ m
{
! y9 J# [& U$ n: ?8 I7 W/ }1 b};* }$ O! [. O% T' L; a

1 P; M9 K( ^$ A! h' q2 x3 T) G$ estatic struct platform_device da850_evm_tl_leds_device = {
/ C6 k( `3 D* h) j5 N        .name                = "leds-gpio",6 `; w7 }8 _, ]2 b
        .id                = 1,
; Q" _1 [, G- u, p+ d, n0 D0 ?% ^        .dev = {
4 ^) h) U. l+ |% }+ T- Z% C                .platform_data = &da850_evm_tl_leds_pdata,
2 }: |  v: @7 y% g                .release = led_dev_release,& z( F" T% c' t
        }
1 l* K- d" {, i! v- o+ Y" ~};
' d  D1 |1 b: C9 M, |& }0 k- C2 Z
3 D: J* }8 d; M2 J' [) Cstatic int __init led_platform_init(void)
/ b% k, O0 V! Q/ {2 e  t{) e- @: c6 _+ j  |" |2 c, W- X; ]+ Z
        int ret;7 R# }1 T2 K1 X8 f) H
#if 0
5 W' r5 d* P7 Q2 P  u        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- j0 G# D/ q& {1 P) z7 E% X        if (ret)
$ X) t- H0 h! U/ l. o0 y                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
, G/ X! @7 N7 c9 ^                                "%d\n", ret);
1 y9 s6 J5 @1 |#endif' |# R  Q+ c  ^; \+ ^- k6 q
        ret = platform_device_register(&da850_evm_tl_leds_device);
3 R, W! n/ z1 V5 j        if (ret)
8 ~- S/ l- D7 K) z                pr_warning("Could not register som GPIO expander LEDS");4 y) |" ~5 S1 e5 b* }9 g0 _9 ?
        else8 t- \8 x: q1 U7 q. g& v5 n1 O
                printk(KERN_INFO "LED register sucessful!\n");
) I9 e% B& z; F( i6 R/ \  f: J3 }" D: ^+ m/ u: [/ S
        return ret;# o5 e: h, z- x% C
}
8 p5 g' z9 |( A1 ^% b5 e* t3 D1 q2 `# m) @0 f
static void __exit led_platform_exit(void)
! S1 X; R4 \- u{
$ w- y0 n) v+ e/ p$ j- L  J        platform_device_unregister(&da850_evm_tl_leds_device);+ T6 u% P' w( v( K* L
( p7 R( L' i; E5 [4 h% k, e2 C8 G1 a
        printk(KERN_INFO "LED unregister!\n");( l' F( d3 S# N: a+ |
}! f* G9 B* g4 v, Q$ d8 G$ G* Q7 ]
: }9 i& y" _' y4 O
module_init(led_platform_init);
/ Z/ K0 K. b9 J* h# imodule_exit(led_platform_exit);, W1 P6 W% s6 S) c  G( i) y
& }9 w9 {5 ?0 [: I; m1 y
MODULE_DESCRIPTION("Led platform driver");& d# Q7 S, ~, w* L
MODULE_AUTHOR("Tronlong");
, R6 A8 m* I# ]7 R# H) l$ h' `MODULE_LICENSE("GPL");
8 G8 g1 S* p' H' x8 {% t/ n6 M3 i! c6 x9 @) S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-9 09:21 , Processed in 0.039375 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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