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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。' }/ p$ g8 N! ]( ]  U& I7 B$ ]
#include <linux/init.h>" j$ b4 X  U7 D
#include <linux/module.h>
& \5 [# o# D- O# O2 ^#include <linux/kernel.h>- c5 n( Y4 ?% e
#include <linux/types.h>, ]: N3 Z" ~! V0 O4 o3 q  U0 `2 Y
#include <linux/gpio.h>  h# c9 }. N# u% s3 G( e( M
#include <linux/leds.h>
. J; z  t1 S* S; y4 b& |8 l$ D#include <linux/platform_device.h>
3 c( A/ m" A: E" [& ]* {0 I  t: }" |* t
  }5 @6 }  B) c- e- q% J6 R! z#include <asm/mach-types.h>
9 \3 ]( i5 l  t$ E1 w#include <asm/mach/arch.h>
' D0 Y! _- `8 V* v$ g3 f#include <mach/da8xx.h>) n. {0 u$ B: T+ J% t- J- P5 b# J
#include <mach/mux.h>5 v& s* l2 |$ L; D& t
6 \5 x5 r* B9 b$ H+ d
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
% L5 K% ^+ K. a# U9 T7 ^#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)1 b2 H9 ^: ^  E% K' p4 T) u+ f
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
1 w9 D$ A5 M9 ~* o#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)3 P7 F+ k' _/ e. ^8 u3 _: T

. g, j5 J+ |4 D5 R, S1 d/* assign the tl som board LED-GPIOs*/
6 |2 O+ ~  x% Dstatic const short da850_evm_tl_user_led_pins[] = {
  j$ ~8 \9 a  F- f4 {1 {" `; N        /* These pins are definition at <mach/mux.h> file */5 M- a6 M: G2 `7 _
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
% j1 {: I- X$ q        -1
: N) O! y" G9 t" @/ \# u};
. V2 W) c  o" J3 ^6 k6 U
  l- n0 S: z7 J" ?# C+ F: b/ w( _3 Vstatic struct gpio_led da850_evm_tl_leds[] = {
! X* L5 K4 U& ~0 Z) U        {; b% `) {5 e! x8 J  C
                .active_low = 0,
& s+ @+ Q: i2 }0 q+ q* |                .gpio = DA850_USER_LED0,
+ V: V9 x3 d, F7 Z# e                .name = "user_led0",
5 `8 K3 P+ u9 x3 q" F                .default_trigger = "default-on",
! c5 u" G6 n) c; e8 N: P, C        },
' J. _/ c/ T+ L$ @! v        {
, u/ t: h* e9 ?  i3 t6 r                .active_low = 0,
7 p2 D* Y) D% Z$ Z/ [                .gpio = DA850_USER_LED1,9 O& X4 o) h! w. B- ]
                .name = "user_led1",
0 i7 i/ x. _& e$ E0 \/ F                .default_trigger = "default-on",# \" ]( d# F$ ]1 t
        },
/ t/ v: g* e( ^7 Q0 k        {
  W. }6 U8 C+ u5 C' J% ^4 F                .active_low = 0,
& s+ M. x% M' x& e2 j7 R3 Z                .gpio = DA850_USER_LED2,4 Y0 T( Y" O7 P6 P
                .name = "user_led2",
; l: Y: d- d5 r, o  Z& e$ R                .default_trigger = "default-on",  {1 l1 u6 x/ e$ {$ \" ^
        },
$ w7 Q6 A6 A7 N- Y/ s        {/ X" R; t, k* U3 `4 y$ I( m
                .active_low = 0,
* w/ J( ?5 k8 w( F( ^9 t+ G                .gpio = DA850_USER_LED3,6 P5 ]2 C0 u' R9 n
                .name = "user_led3",0 b$ x' @6 A- o% J0 B
                .default_trigger = "default-on",0 L# h; ?! o3 |' L' @) P
        },
. s) w& h( W$ s; m; r};9 [* _# w# ?3 x' L! K: \. [

$ s) l9 O+ H0 {5 g7 v9 astatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
0 K3 ]4 Y' m; z        .leds = da850_evm_tl_leds,: ~* A9 r5 M! {0 T
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 A% F/ C) L5 b3 H, _; i
};; x8 s8 K, U' O5 k& A. F

& m' P$ T  M. lstatic void led_dev_release(struct device *dev)
1 C0 D4 h0 V3 A) B8 s{# w7 i- R% \0 T# X8 |
};
( d1 Q% @5 W) i' T" h. n9 ~/ j- G/ J2 I- F  A
static struct platform_device da850_evm_tl_leds_device = {
- c  D+ S  R) [$ t2 V; q        .name                = "leds-gpio",
" ~: S0 j" k0 x' @0 b2 _$ Z1 A" m. I        .id                = 1,- v( j/ i8 _* u; X" u9 r4 G
        .dev = {
% B1 d& q- b/ G$ \5 }! O" ~                .platform_data = &da850_evm_tl_leds_pdata,
# k9 z6 {* X+ \                .release = led_dev_release,
% U* H" z0 C* J# h$ H6 \( s1 ]        }2 ^( D4 p) ~( `5 k
};4 r  O0 ^5 Z  }" J

/ R; Q' r2 ?; g+ Mstatic int __init led_platform_init(void)
+ k; V8 I% A7 G0 w" B& I{
% @+ s6 ?. n3 R. Q9 S; B        int ret;! o! o6 z; ?7 v( U. V5 E4 c
#if 0$ [( a' L7 [7 ?. B% h# U4 @
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' ~$ N1 h" j1 h( K+ @9 _) @/ {        if (ret)
; o) L( ?1 W1 z. c) j- A                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
! {/ K7 g# x9 W' O6 G                                "%d\n", ret);
' s* ?6 e3 `7 ?" k; V3 M#endif  }2 Y3 o- c' E7 U: l- y7 Z
        ret = platform_device_register(&da850_evm_tl_leds_device);
( o* q2 Y9 S9 P0 O        if (ret)
# Z6 j' [: }3 F& G' Y                pr_warning("Could not register som GPIO expander LEDS");% G+ T  L1 [# P! {
        else3 o' `5 W8 B& n* [$ a* L
                printk(KERN_INFO "LED register sucessful!\n");
' H: U8 |. z3 o$ p4 O- D2 z9 d4 C( f/ N9 U2 x0 U& q; G2 e/ Z
        return ret;) k8 g, k" M+ G% }4 d8 v) `- c. S
}% F5 t' Z6 c) J. l

0 A* u* E9 h  b9 Z& F9 Pstatic void __exit led_platform_exit(void)9 c- u4 R8 ]9 R# y
{
( V; T/ Y* a: q# W: J1 K, }- E6 g4 K        platform_device_unregister(&da850_evm_tl_leds_device);
, T( v- B. t5 A/ E/ B. A5 H* C
9 {+ C$ g& f! X6 i% y% u        printk(KERN_INFO "LED unregister!\n");/ D, t  B" }; l- _4 F1 Q. e
}
. m! v7 u7 n& l; T0 _. {3 {$ ?% @* O1 m# H* K' |: w. f
module_init(led_platform_init);' q2 G8 G5 k2 _9 g
module_exit(led_platform_exit);
, n* s- n2 W0 r" z" r. N4 v: l. q1 b0 Q8 Y: n$ H
MODULE_DESCRIPTION("Led platform driver");  E9 }+ c; R; w' e
MODULE_AUTHOR("Tronlong");
$ v8 I# X7 {! X0 V$ v$ y+ j! ^MODULE_LICENSE("GPL");: ]- W% a' p/ y0 A$ ]
5 _) `" T& T( y/ P4 a( `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-2 07:02 , Processed in 0.041994 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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