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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
# _; G# s2 b+ g% r$ h#include <linux/init.h>; C. h* k' q5 s/ Y! l
#include <linux/module.h>: e5 {! w- m0 h+ v9 V* V6 N
#include <linux/kernel.h>' R( V. u; [5 P0 [
#include <linux/types.h>
* k8 r) O) S; B- X8 {#include <linux/gpio.h>
% @# {0 a& E5 @$ p$ E8 O#include <linux/leds.h>  W, O# l; ?6 w! u+ c" V
#include <linux/platform_device.h>- M  y) U( `: N. E: t2 `

" f1 f6 q( e; v#include <asm/mach-types.h>1 v3 {4 Q. p6 t' L+ q2 @, p
#include <asm/mach/arch.h>
' i0 N9 f. {* T+ [#include <mach/da8xx.h>! U9 L- w) S8 R- ?. G3 j
#include <mach/mux.h>$ k$ g) ]" `  X  R' F* ^
# m7 [6 ]% `+ H3 z4 d! n
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0). m( \: S6 Q2 t5 @# G
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
- W% g* {) L' i% a3 D9 G* l8 v5 w#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 v; S# N  J) Z5 g
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)% ~( r: L7 p! m) ?" N& n# W  x

& C9 _9 U# {) z6 c/* assign the tl som board LED-GPIOs*/
0 Y4 ]* C9 a9 }' j' C) ]static const short da850_evm_tl_user_led_pins[] = {5 S7 N3 F- Q5 |! |8 Q& |% ?
        /* These pins are definition at <mach/mux.h> file */2 {' R+ G) V" `2 }5 W- s
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,' |6 u: C( O* S2 B' x
        -1( }9 f5 f2 |1 u. D6 c, g
};% k* {+ w! I2 j' E" b
8 [6 O- ^, M  [/ E% J/ L8 v
static struct gpio_led da850_evm_tl_leds[] = {5 u. R$ r+ F% Z% n! O0 C
        {% X% M% }5 Z, M; F# y5 V
                .active_low = 0,
7 N. b. b  s) N) W% ^4 `0 p( A                .gpio = DA850_USER_LED0,1 d1 |1 b" \/ d% y) O7 [) H2 B* u; E3 O
                .name = "user_led0",/ T: Y6 }# @: m$ r) r' @7 T
                .default_trigger = "default-on",
2 i3 I# L) s  Y) A1 n        },. t/ q7 k$ e) S3 }; b$ {
        {
* ?6 R9 R9 R/ Z2 b                .active_low = 0,
7 x' E6 P# j% @3 F' T/ i                .gpio = DA850_USER_LED1,$ E  J; }2 a0 f$ a
                .name = "user_led1",# q' G0 {& [- q' o9 b( q
                .default_trigger = "default-on",
) v7 o% m  e1 u" X        }," B$ a# ~4 h( h. b
        {
7 r9 L! p5 R  ~, f% O9 g8 \  E! b                .active_low = 0,0 S) N. o+ |3 O! H$ g
                .gpio = DA850_USER_LED2,
2 h+ V8 x& L! S. A# h$ h, Q                .name = "user_led2",
4 D2 v* K0 l+ b& S" D) z, W0 c& p                .default_trigger = "default-on",7 l! C1 e3 S& ]# [$ [; ~) U
        },8 U+ d6 U) N7 t: w0 ?
        {
# L9 u* `0 d8 a8 V' B* q& Z9 _' Z8 F2 }                .active_low = 0,3 K( H$ v0 h% R
                .gpio = DA850_USER_LED3,2 q& _3 I1 [, y+ B$ t% h. o
                .name = "user_led3",
. C( v/ c  a5 X+ L                .default_trigger = "default-on",9 j& N9 P: D5 C. [5 w5 a" c8 E4 g
        },$ m2 O& `# w1 ?, a$ P- J9 v
};
( T# f+ E. n3 l+ b3 m- k% i. X: O) P0 R- K
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
0 j( \' v+ u% A4 \; v' E4 }, i4 v        .leds = da850_evm_tl_leds,. {9 t# R7 g6 P) y" P
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
- ^: Q  N2 C, r( J9 c5 A* l4 U' \; w5 M};
4 _" }, K2 h/ Z$ [2 ]- n( g7 F( I. h" I) k
static void led_dev_release(struct device *dev)
; Q8 g, A; `  A{/ P( P' \% n2 z! A! s' Y
};# }$ f* u# a( p$ F( o) X# @

! B% Z3 S2 b0 k, u% j# [& f- wstatic struct platform_device da850_evm_tl_leds_device = {* @  y& V; B! L( l- e
        .name                = "leds-gpio",: g0 D" r2 O" v7 q. p: k
        .id                = 1,
4 }% ~, ]  `" l" l        .dev = {  O, k8 |; O8 w
                .platform_data = &da850_evm_tl_leds_pdata,
; C+ Y! P% L/ a5 x8 i                .release = led_dev_release,
+ y' p7 M' ?/ K* @        }
2 y- Z. X$ l" f: n! R2 e+ M) W};! B6 H$ {, I% X9 p+ ^
" w, ~. X$ k% |, U" Q, x2 W1 r' t1 \
static int __init led_platform_init(void)' E+ x, B# O7 q- j" X! m
{
0 W- ^- B! }/ |' K" t, D2 T        int ret;: J$ ^( n' s, q. ]0 u
#if 0
& g. B+ S7 M" V9 V7 K7 B  Q        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
1 C8 e: y- b+ C7 H7 b        if (ret)
8 B! Z* M: q/ V7 Y- R                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"$ P9 ~# n# h# `1 P7 x$ {3 |
                                "%d\n", ret);
4 K+ ^( l; \  ^# O& O#endif, O, P; }) c% p! G/ e' S2 E
        ret = platform_device_register(&da850_evm_tl_leds_device);
4 u( v9 C6 n: H' {) q: J2 j        if (ret), r( Y( J, W& }" C# ^/ A
                pr_warning("Could not register som GPIO expander LEDS");
* d  ]$ x! c9 F4 f        else: j5 L& {6 p! D0 b2 }' @
                printk(KERN_INFO "LED register sucessful!\n");" p8 n3 O% P- g* Y+ a
! N1 q" H; D+ q. T! p2 w# e! k3 F
        return ret;
( L+ Z5 _& R. ?& \8 C) I% A}
$ Y3 x$ R) b9 V9 d
7 m6 u  j# {$ n* Y  w4 V+ fstatic void __exit led_platform_exit(void)
# r8 O: f4 V! u: ^) Y0 |{
' U6 I: g, N- D0 Q. C7 b! s        platform_device_unregister(&da850_evm_tl_leds_device);
6 L: j  d: M0 Z7 t5 C5 @- \1 o& u
        printk(KERN_INFO "LED unregister!\n");# {( Y2 ?& q& m7 @5 f# `  \% B
}: S3 v3 \) p9 F2 a% B8 O

& N, x& a4 x/ r* _) p$ N/ H" gmodule_init(led_platform_init);
; ~3 O) T: ^% B! p: [0 fmodule_exit(led_platform_exit);
6 d. h9 m/ w4 b) [, b) h
2 F% [* o& W9 D6 i$ z: v+ LMODULE_DESCRIPTION("Led platform driver");& y$ W6 n0 M& _2 @
MODULE_AUTHOR("Tronlong");
2 l! c  f' A* H' {MODULE_LICENSE("GPL");
+ T: L. i& z3 z0 p( g7 q( d: d3 j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-14 01:04 , Processed in 0.036838 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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