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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 T' R- x- x: ?#include <linux/init.h>" E# q0 Q; }" G* k
#include <linux/module.h>
9 e4 t( T8 i' J# |  O6 z5 x#include <linux/kernel.h>1 y& F3 E) c5 m- W5 {
#include <linux/types.h>
, H$ y- u7 M% n7 U4 ]- [#include <linux/gpio.h>
3 Y; y$ s* D- |# V& E#include <linux/leds.h>
+ y1 {* K; O/ j9 T: Y3 s1 \! L! ~#include <linux/platform_device.h>2 E$ t+ n& e# @, ^* }0 K+ x" B1 o) E
7 ^7 {- p4 B& ?) M! O2 i& k
#include <asm/mach-types.h>
5 }5 z+ x& c0 E3 ~/ r9 Z7 q- X#include <asm/mach/arch.h>) u. X6 u9 @3 ]7 }
#include <mach/da8xx.h>4 H4 z& H- T; Q! H6 m
#include <mach/mux.h>
! J; E; R3 M( g, Y3 Y3 n' D3 [2 ^6 U9 c0 H! Y2 L  B( ]
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0); W3 k( T6 i2 R+ H* ?
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
7 D( d1 t0 l1 \# U* T) x#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
* w  h) K& f" m% ]. M: @#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)* {- ?$ v# J% s9 Q7 r7 y

1 a. x: h9 d% o' F2 H7 R5 q/* assign the tl som board LED-GPIOs*/
! I4 l/ N, |+ f3 Vstatic const short da850_evm_tl_user_led_pins[] = {5 @" u& ?7 q6 w! x- v3 m
        /* These pins are definition at <mach/mux.h> file */- B: M7 t  L: G' k0 R
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 t- n. l' G& L3 \, E        -17 N0 Q$ q. o6 j8 T. Z) j
};
4 {0 k- F4 C7 X0 S8 p, ]' p8 }
. v3 q6 z3 ]& h; M9 Pstatic struct gpio_led da850_evm_tl_leds[] = {
# {3 h1 h/ C: T$ V, y# k' O        {. Y& ?5 y# o* v; |- q* B: U) L. ^
                .active_low = 0,/ W; T" H; ^* J) M- h# a
                .gpio = DA850_USER_LED0,
+ I  c5 ?- W1 `                .name = "user_led0",; {0 v- ?* F  r6 Z$ o
                .default_trigger = "default-on",, Q7 v+ j' X- N
        },
1 h+ Z6 `4 M7 u1 V& r( ?        {' E4 A1 M3 L+ C3 x- d/ l0 P
                .active_low = 0,! y9 B* `5 l1 a+ j
                .gpio = DA850_USER_LED1,
* w( |- |, |' P- x) \- M! ?                .name = "user_led1",
7 S$ ?9 S. F/ W* W                .default_trigger = "default-on",
1 |4 P- t  Q  \# H: ?, C+ m        },
3 G& v0 g2 i! b" N3 \" |" R        {
2 j/ T! s+ u0 R( k* \6 V                .active_low = 0,) R6 T1 V- q% T1 W, n4 _8 q
                .gpio = DA850_USER_LED2,# _; c: i7 w: z- d  h- n
                .name = "user_led2",& d" w& c% _3 o9 \2 B
                .default_trigger = "default-on",+ ?, I" E1 w' F& Z! ]
        },: v2 G- C3 D' R' U" u1 f
        {. X/ j2 U& y1 _& G" y. g3 m
                .active_low = 0,
& J3 L# K- b- J, y# \0 I- l' t* u6 `                .gpio = DA850_USER_LED3,
5 k6 R# v+ m: [: f# V9 R7 Z$ h                .name = "user_led3",! h( n; g, s$ r  x3 I3 V8 C" N% P
                .default_trigger = "default-on",6 z9 Z3 N4 ?; K: q
        },4 K0 e3 [! r4 p, U
};
! G4 U& Q6 a. F) V9 Y" C  C4 s7 \2 m# L2 Q9 N
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' k' H% n2 c1 p8 Q
        .leds = da850_evm_tl_leds,4 q: l4 s0 f. ^6 |" V# d
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) i( N: O5 [8 Y) G) @5 e6 @: @4 E};/ s6 M& ?# d( m/ M1 ?6 U

0 w) e6 r0 X9 i4 g* K5 Fstatic void led_dev_release(struct device *dev): J: ^/ z2 D! q0 q
{  o& W4 U1 x& q& X8 X  x9 h0 f
};
' Y5 M+ I3 K  Z1 p0 r7 Y7 K
5 ^( L# K! H  P2 b. p+ K! l& Istatic struct platform_device da850_evm_tl_leds_device = {* ~# Y! k. v2 R1 V
        .name                = "leds-gpio",
6 X  G5 l5 W4 M6 j0 n        .id                = 1,3 ^( R# }# q. z  h
        .dev = {
. a; E- H( ~" O4 o7 e- q                .platform_data = &da850_evm_tl_leds_pdata,
0 i* y4 G8 _- d  W* y                .release = led_dev_release,7 W' M, @6 H. e% i
        }9 e4 h. h9 U5 G1 L2 J: P. E5 W6 }
};
  b' \" {3 Z* Y4 m! u% H
: [8 L6 c" v; h% y7 k8 Bstatic int __init led_platform_init(void)" S, ~+ K5 e+ ^6 V" H, q* ^
{; v9 Z/ |8 f1 Y! U# Z" I( {
        int ret;# G% C% Y$ a" S  R- g1 g3 |) v
#if 04 I+ I# z. ^2 n* p3 G; S
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);. P, u! n7 [/ N1 w5 K5 K
        if (ret)) }5 u) f: T1 J$ d, v
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"! S) ~9 w5 h! E$ d# @/ h
                                "%d\n", ret);  C; x) p+ X9 p1 h; D
#endif
! ?( w* l% m6 @. ]7 T        ret = platform_device_register(&da850_evm_tl_leds_device);
& s& U$ v) {1 [. p; S        if (ret)
2 [, x3 \2 a7 |" O                pr_warning("Could not register som GPIO expander LEDS");
2 V/ R1 X& F* p' L' R. n$ r. m        else
. P  V& B4 L! E- P) b                printk(KERN_INFO "LED register sucessful!\n");
5 \; [/ j& y( B+ T# e7 i- n
4 n, R  {3 C4 A- y/ R( x        return ret;
( r6 x, P" f3 S; z1 J; r}
* C! W+ N7 t, |0 O- W/ C- \
, T7 k' K9 U; s5 h: u& z) R/ Pstatic void __exit led_platform_exit(void)  i3 m3 {  L* ?. X- p* Y+ {" V" K* D
{
- ~8 L7 v4 `; e- x# G; z+ J" }        platform_device_unregister(&da850_evm_tl_leds_device);
' a/ j3 k+ P0 |6 `# K  B) C5 F7 N; k
        printk(KERN_INFO "LED unregister!\n");8 |1 ]0 `3 @# P! @! c
}, v% B9 a& T* @) n8 f

- D7 k8 j4 x9 G2 z! V' Mmodule_init(led_platform_init);
. p" h( H% D2 ^6 {, @module_exit(led_platform_exit);! B9 Z. d7 d- _
  c& f2 P& W( O1 ?+ E
MODULE_DESCRIPTION("Led platform driver");
7 j; W- v3 L1 FMODULE_AUTHOR("Tronlong");% B) N; J  T* q9 R. D. N- C3 A
MODULE_LICENSE("GPL");
( @7 l) H  o# q9 E. k' {" \6 E" V" [! J0 v6 a' F! z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-18 19:30 , Processed in 0.039065 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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