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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 ]- s% p, k1 O: U4 y8 a
#include <linux/init.h>
7 R. t% X  h) p3 V: C#include <linux/module.h>5 t. i9 a$ X: X; o, D9 R4 K. _. O
#include <linux/kernel.h>
# Z3 P2 B0 w% J2 L2 }#include <linux/types.h>9 Y: j+ H: }$ ^* w
#include <linux/gpio.h>
- r+ {0 n9 \- ]6 W9 W#include <linux/leds.h># i7 m7 D! R$ _& e. _
#include <linux/platform_device.h>
! T2 r' o5 V. ?& i$ N. V& {$ Q
, A+ c6 Q: w2 O5 [' K) j#include <asm/mach-types.h>
/ \) {/ k) r& @3 x7 E$ T#include <asm/mach/arch.h># b) D8 q$ o% w' A5 l- }, f* X8 s: o
#include <mach/da8xx.h>
& X! }9 I% u! D! ~% d#include <mach/mux.h>$ B! L) {6 ^6 m  k, D

) v. z5 Q! [5 U( u#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)# m& G/ o5 [- K
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ F. q  n" x$ v) k#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
: V# d+ }. A+ \) Z* o#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
8 z3 M' w4 z7 q( W: K& {1 J# }; W$ g; L2 a
/* assign the tl som board LED-GPIOs*/
8 g! ~# u! ?4 T. Sstatic const short da850_evm_tl_user_led_pins[] = {+ c3 m! ^7 r5 e7 |1 V! m' @1 L
        /* These pins are definition at <mach/mux.h> file */+ ]+ t9 }# U/ {  R( D' S
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
  f! R7 i* R2 E0 O0 j: u# s6 p        -11 B% F$ v- ?+ Y
};
( x- s3 ~, d$ K4 D
! ^; q, N4 p0 i( _, E) Sstatic struct gpio_led da850_evm_tl_leds[] = {# A4 z! ~% q& o) R, b
        {2 w' I7 V9 ?3 [0 `3 }3 x* C7 w0 r; [
                .active_low = 0,
, X2 p$ f" f. u# D; v                .gpio = DA850_USER_LED0,
9 v; x# z/ }; V/ ?- }                .name = "user_led0",; P1 M8 G  }" A! s. s6 i
                .default_trigger = "default-on",
' x2 Y: D2 R+ k8 M        },9 D" n; a; I3 B; J
        {
( r3 ^6 S! P) N' {0 {- k1 j                .active_low = 0,' B' I$ f* f+ h. _  I" n) A
                .gpio = DA850_USER_LED1,
; o' `! B- ]# ^' t. u! D7 U) n                .name = "user_led1",5 _' g, ]! o, f' @* V; a  b
                .default_trigger = "default-on",% M' q& o/ d+ G! U/ W* M
        },9 J4 V+ `+ S0 X
        {
( n' F( }. J# u4 R0 `                .active_low = 0,4 S/ v5 `3 W) B" l5 J/ J4 W% _
                .gpio = DA850_USER_LED2,
8 L& Y+ _' y9 N  J( l) T                .name = "user_led2",0 S. f8 X+ j# A8 W' h
                .default_trigger = "default-on",; W4 L2 ]+ B4 ?& e, v! T& F% l2 n$ m
        }," [. j& G- K9 u0 g1 c6 l3 w$ Z
        {
5 {2 e4 J$ }7 Y2 a% ~* H  z                .active_low = 0,
% y/ c6 D9 W5 D) S9 s                .gpio = DA850_USER_LED3,
% x( L/ L' x7 G& B                .name = "user_led3",3 y/ p/ Q- n% o6 K/ Z9 ]0 S
                .default_trigger = "default-on",
2 i; L# \2 c( `% l4 R& R6 O: Q) u        },
9 X$ F  X2 v' k0 W9 u' z8 G};
9 G- }+ p. V% r( c  t8 {, i% A5 l8 w3 }+ n5 }2 U( q+ G5 r
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {0 K) t+ `+ q# t; K8 `, H
        .leds = da850_evm_tl_leds,
+ }5 \% l; b4 O        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ j2 h! |7 s; o( U( }5 w
};: ^  l$ G& _2 O4 c: l, U
- ^# ^) F$ R& X
static void led_dev_release(struct device *dev)
, Y  ?6 J. ^  B* c- ?{5 @' _7 l0 Z- Y' r. M6 {3 q
};
$ t6 d" n! t# D6 J- c. V( P4 _6 r, u
static struct platform_device da850_evm_tl_leds_device = {) H- r9 j. N7 Y7 @  Y- s& s. K  G
        .name                = "leds-gpio",
* R% V! h  T/ y' d* U        .id                = 1,; t' H6 f$ V4 E' a# C
        .dev = {
8 z# C2 D, `) `/ i2 @2 x7 o                .platform_data = &da850_evm_tl_leds_pdata,
9 ?, g" D9 [4 m                .release = led_dev_release,
! U( b5 n( G2 s9 M; k$ _/ a        }
: L- q4 ]! ^- c& _};
( N8 I% N  F% d5 Z; D: P
% L  F% a0 L; g$ H$ gstatic int __init led_platform_init(void)3 z/ z) ^; \' ?/ B- F4 W1 ^
{
$ T# A2 l  r6 {+ e3 n+ }        int ret;
+ f+ N) _( w* E5 m) j) I0 L#if 0
* X2 O# Z3 m! J2 n7 z( }3 _6 i* x        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);0 W0 ~1 L# T$ L' H. \, q1 h* x
        if (ret)
% f+ c7 V) N+ Z! d" ^6 I                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ p8 @3 Q( w; u# r7 R
                                "%d\n", ret);3 j5 Y1 {/ `2 T6 X8 L
#endif
; o- i4 z9 A- k$ l4 n& W) _; l        ret = platform_device_register(&da850_evm_tl_leds_device);
6 }( h3 O$ e5 ~6 g' a- R8 B. ]+ o( r        if (ret). F, w. X' F( V, S; b
                pr_warning("Could not register som GPIO expander LEDS");4 @4 {# v, W3 @3 v6 y6 \5 |, m& e
        else4 s/ L) y! t3 l" `6 P6 K
                printk(KERN_INFO "LED register sucessful!\n");! L- u7 H# h' W% ~* _- H8 n8 x
* ]! T' |1 s  E! O( o/ c+ j
        return ret;
$ _0 U( y% a/ l( m}7 q3 V+ D8 T$ a, p* r& I5 [

9 n( U7 R" `# s  [8 p' b* m8 I1 P7 K( Bstatic void __exit led_platform_exit(void)8 m2 D8 i/ r% X. [7 `
{
# O* J: ~$ v7 ?* B" z9 C' ~& O% T        platform_device_unregister(&da850_evm_tl_leds_device);
2 _0 z0 [- Y$ I, K- Z) V
9 \1 P5 R) @: Q$ H" Q! v9 {        printk(KERN_INFO "LED unregister!\n");7 u3 ]( X3 _- E7 `, X' ]: r, x
}
% b: f6 e/ [* x2 Y+ g" ?; |( S6 `! T) n; U2 \
module_init(led_platform_init);
/ u4 o" P4 i9 w) L- y; l2 s! W( Hmodule_exit(led_platform_exit);
& y7 {  b7 m4 y" _, S/ x0 N: O6 J# Q& @2 z8 W1 S
MODULE_DESCRIPTION("Led platform driver");
) Q2 ~# X0 b- {( _MODULE_AUTHOR("Tronlong");
. Z9 K) m& o3 [1 D+ ZMODULE_LICENSE("GPL");  I( L! o& H0 M$ I! v

% t- a& A- D$ g$ X; J7 |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-6 01:43 , Processed in 0.039256 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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