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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。' _1 _" p' p+ k+ i
#include <linux/init.h>
7 ?0 U9 Z" |; n% ~  e#include <linux/module.h>9 d. t+ `3 D+ w* {* j
#include <linux/kernel.h>
% n: t1 c% z8 N- e- |0 A#include <linux/types.h>
* W1 C1 [: L6 l7 n& J#include <linux/gpio.h>
/ N* N. W, L; ?#include <linux/leds.h>: U- W, F: W; w/ l& v8 C
#include <linux/platform_device.h>0 K8 M: p! i! i

9 g4 q- O7 n  R% {: S+ D#include <asm/mach-types.h>
5 B; x$ T0 z* w, X3 X#include <asm/mach/arch.h>
* V  b0 W7 P' t0 S: }#include <mach/da8xx.h>
, D  E! V7 Z/ c& D2 |#include <mach/mux.h>; P" Z' _$ Z8 ?9 X! d4 t+ {# y
6 k5 ^. k6 [' u- X: X% p6 Y6 V, S
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
. j' F& f6 E) _( `0 W& Z#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: ?$ E; d: l3 a8 D3 I#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
2 ^2 P2 _% f" b4 L. ^$ H#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
+ N$ d6 H  h4 F* y* h- ?1 S1 l4 z/ X! c  N
/* assign the tl som board LED-GPIOs*/. V( E8 W6 A; `' u3 _
static const short da850_evm_tl_user_led_pins[] = {
8 ?6 m1 F# n' b' z7 a, U1 ?        /* These pins are definition at <mach/mux.h> file */
: ]$ X& S  L9 v( R3 ~, b        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,3 }7 Q+ i  y, t  [7 D6 M. l+ X
        -1# G/ O! R, A  M
};5 p' N: \9 u5 k" }: h3 v; Z) X
: U6 ~* ~) j+ o
static struct gpio_led da850_evm_tl_leds[] = {
; r0 V6 z* i. o; x        {
# y' v' i# d7 x3 h3 c  H, y$ f' L                .active_low = 0,
) U: p' t3 w5 Y+ i6 p7 e4 N                .gpio = DA850_USER_LED0,9 B+ H% a3 S" k2 \0 m
                .name = "user_led0",# {" C' V% H* i+ d% j
                .default_trigger = "default-on",( U. m% K: |* {* a8 a/ g
        },
0 j) B  r  S, ~$ P7 H2 K6 z        {
* l2 k" Q: U' L2 w                .active_low = 0,
; G2 G! m; n0 X( v" f5 d                .gpio = DA850_USER_LED1,
% [: u, A, g+ E- L+ g+ D# K                .name = "user_led1",4 h+ ~( J" Q# W! D; F$ U
                .default_trigger = "default-on",
) ^6 n) U9 ]- j        },
) T3 h+ h/ @% Z" \0 g        {' m& [2 W% D  }% F7 y7 e( v& M
                .active_low = 0,( g! ]9 c( ?$ k9 j: x; Q9 \% J
                .gpio = DA850_USER_LED2,
- B1 A1 S$ h& q/ `5 f8 n                .name = "user_led2",9 B3 p: x1 ~" w+ g
                .default_trigger = "default-on",5 r! ?; M; K" @/ ~
        },
6 E8 p4 C0 Q$ K1 c6 e' ]        {
( Y, C  o# C* X5 i- C                .active_low = 0,; `1 s2 v- G% `5 R. l
                .gpio = DA850_USER_LED3,* e+ _& g: s2 |" ?- n8 P7 r7 N
                .name = "user_led3",  b" X7 W2 i, d8 E! W
                .default_trigger = "default-on",
+ m" V8 W( U5 h! C8 }5 {        },% _' w2 o8 _3 k' J: M( S5 `
};
% o! U2 ^2 Z# x! O
! m3 D* ~1 _+ C, O. O" `8 U. nstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {5 k: D2 X" t. W. V4 `, k
        .leds = da850_evm_tl_leds,
5 |6 Y" ?& [3 P. ]        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),9 q- u% k+ {+ i" }5 J1 i5 j3 t
};
: e, y) C/ e! j4 D
. o3 `, z& U, g. r' i$ E" O& Dstatic void led_dev_release(struct device *dev)
; D; K4 a7 G3 v1 _# i' A9 W{
3 ^* U" Q/ v% t: e* q' c+ I};
  m+ d) e: c6 o( ^! j, J
- w* e5 h$ K( E3 D9 g! I8 ?static struct platform_device da850_evm_tl_leds_device = {
& K/ O6 C$ X4 }  ^        .name                = "leds-gpio",1 E. z" P+ K$ t* f8 }: ], ^1 V
        .id                = 1,& ]% ?& T8 f$ E3 r
        .dev = {
; c0 e4 M6 I" b                .platform_data = &da850_evm_tl_leds_pdata,
5 `$ q$ P, r2 c2 a# i$ o0 p2 P1 |                .release = led_dev_release,
# `% V3 o( A  d* h& |- e1 n        }
/ G5 w$ U9 {; j; d8 |7 y9 r7 ^, l};6 {$ Z/ L. W, t+ N% M2 Y% b

* J$ @0 y* R- l' M& Q  mstatic int __init led_platform_init(void)
# l; {  a5 _. J& G8 n! m% F# S, }{6 A! @3 L+ s' v3 B
        int ret;' e- p+ Q4 I* b0 r- Y" v7 @/ p
#if 0# z; Q, E7 w0 r- M& P( M" S
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);- p3 ~- M  ~- C3 C- C, N
        if (ret)
0 \0 E" S+ p' X1 N8 s3 u                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
" |; k( L! k# B; l2 I# c& s                                "%d\n", ret);
/ v4 ?$ o( S/ F% ?* P/ x  o5 f#endif
( s" ?3 l- c/ C! P$ `        ret = platform_device_register(&da850_evm_tl_leds_device);
7 }# w- g( Q  C* m$ e1 i0 c4 S% p        if (ret)
4 x9 V% _3 [1 G' d- x7 i                pr_warning("Could not register som GPIO expander LEDS");3 W) Y4 b4 r8 C0 X' B( O& V
        else& O' b6 J5 |9 ~% a; x- g3 U9 R$ P" j
                printk(KERN_INFO "LED register sucessful!\n");
" s7 u4 ?0 }# I& s; t. ~8 y* i" e/ e
5 C8 Q  b. |# o/ z4 `% B5 x        return ret;
/ D( e2 |, d( Z; W; F  _& m  \}
% d: i, `+ k+ e! J+ Y; f$ K* t2 N3 r2 l, ^- w
static void __exit led_platform_exit(void)
( k$ M6 K; |  j; H4 H) {4 O{
5 o; k& L$ \" j9 v6 D  j! _  y9 D        platform_device_unregister(&da850_evm_tl_leds_device);5 M- G7 Q. C2 P  o0 g( M, Y: y
* q$ o1 e8 W+ D/ T4 E1 \
        printk(KERN_INFO "LED unregister!\n");+ z1 }5 f" {% V! i3 y. C. c& D0 [$ S
}
9 y3 N9 j, x" l
) d7 d# B5 O8 `module_init(led_platform_init);
5 m( I6 i6 U7 g: Mmodule_exit(led_platform_exit);
8 [1 V. l5 X5 R: E( f  \% g
! t7 M# R( ^. y, cMODULE_DESCRIPTION("Led platform driver");% p& _, G1 E$ R* X% M
MODULE_AUTHOR("Tronlong");5 q9 Y/ p7 C+ B( i
MODULE_LICENSE("GPL");& m, _2 B  `7 f, ^/ \

- U7 D+ w0 ~1 G1 A$ H5 E
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-26 06:29 , Processed in 0.036682 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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