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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。3 F# z* B" U% X
#include <linux/init.h>0 j7 P6 K- @6 {' f$ s
#include <linux/module.h>) k$ a9 }, K1 d% {+ h7 W
#include <linux/kernel.h>
. o& D2 z8 A' V" J#include <linux/types.h>
& }4 F4 H& E( H0 K1 V  L# l#include <linux/gpio.h>" o( t! G+ M5 d+ z
#include <linux/leds.h>9 l3 p) k" n% w" j
#include <linux/platform_device.h>
$ s& z) s+ k' M+ x, N) _# i
( s0 N# F) W4 s+ B- {7 K  W, X#include <asm/mach-types.h>5 N( b" c6 g+ ~
#include <asm/mach/arch.h>4 [6 I! v- M, s6 r( E
#include <mach/da8xx.h>
, R# `" h. \" }+ B#include <mach/mux.h>
" n0 K( W$ @5 f* I5 f1 ?0 t% V  b. K' g( T
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
4 N* Y0 v, }: v+ V& r$ j0 v#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: y$ G- e2 p. X& p#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 ]& d) ]# ?* x: ]( q0 Z: @. v
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
9 \8 y# g8 F  @' T( \
( J. j) T" E* A6 I/ \' F+ U/* assign the tl som board LED-GPIOs*/
$ N+ U& l; D1 s- T1 K  `! jstatic const short da850_evm_tl_user_led_pins[] = {
/ ]0 U! `. L. Q% t8 g% X0 w        /* These pins are definition at <mach/mux.h> file */: S) A# `! w" h+ N0 K3 P
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' d  I. D4 N( y: n' v        -1% |& s, L6 d) H0 }
};# k3 m9 [) w+ ]: K$ B  L$ G) g

2 H6 Z+ G, u( ?4 Fstatic struct gpio_led da850_evm_tl_leds[] = {
: [  z6 w2 d! w9 x        {
; Y9 _2 F. X. x: C0 b8 f2 K: F                .active_low = 0,
% @8 [. N0 L& _, S( V                .gpio = DA850_USER_LED0,$ Z9 S2 f2 L7 X( Q6 D' T/ K" \
                .name = "user_led0",
$ `( n2 a' m  P* p$ X* ]                .default_trigger = "default-on",
. F$ O1 S3 L; W) X& Q        },
/ M. \' z* g8 X, b) x! Q' t        {
- ?# h2 ~+ o8 Y                .active_low = 0,
! \, B0 g8 _( H3 @+ z' A0 b6 q                .gpio = DA850_USER_LED1,
+ B" V# ~, a! C  R                .name = "user_led1",6 R+ D: Z5 y7 b3 `% V' h$ h
                .default_trigger = "default-on",! V4 K% X! n! i3 n  N* @
        }," b! x& @; y1 z3 C7 H! m
        {$ p0 s! A, `+ @, ]8 ^% W5 G
                .active_low = 0,
0 O2 H& n( m. G1 c0 B3 k                .gpio = DA850_USER_LED2,
4 w7 a- N- C9 ^8 d                .name = "user_led2",% Y% t! R6 ^- Z0 E. }! L
                .default_trigger = "default-on",$ z+ z1 L0 P7 [/ B# _
        },
* Z* v% H& H4 p- S+ a: S        {
7 r3 T* i* M% W4 s0 P, X                .active_low = 0,' w0 C  K, _: p7 ^, Q2 j
                .gpio = DA850_USER_LED3,
" x9 l# k: L# X: B- z5 B                .name = "user_led3",$ v- u" j# }( w9 X5 [
                .default_trigger = "default-on",
/ l" j% Y% j: P7 q$ ^, u        },
0 r6 M  V1 _) c5 h7 V};+ F* G5 C+ s$ }5 H3 ?$ k7 ~

) G5 [0 d9 c' G$ K6 W% ?static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
0 Q: X$ Q; B  [        .leds = da850_evm_tl_leds,5 j3 D. C! ^- B1 f  Z3 O7 c! G' u
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
3 y0 S5 P8 m! V/ P% F# f};& {6 x/ n9 e3 \8 F$ Z

* F6 |1 m7 C# A" ^. bstatic void led_dev_release(struct device *dev)7 I3 u- x6 v8 F! ?9 q0 J( h* Z
{. l( S2 ]  @& |) Z; d- V& o2 c
};- }6 |- {- ]$ v7 v, m1 Y
; r: Q& c7 |. h# w/ p
static struct platform_device da850_evm_tl_leds_device = {
9 q5 _4 _7 M* q( f5 ]        .name                = "leds-gpio",
, {/ _2 ]- ]% y        .id                = 1,
: H% Y* [' P7 E0 s6 R# w        .dev = {
7 t+ r6 [% T9 B                .platform_data = &da850_evm_tl_leds_pdata,
$ f+ w) J5 b, \* n/ B8 u, ]' I                .release = led_dev_release,
) K% E. V! r! c, {8 H% m9 d& S        }
% F3 A/ a- J) f) g# U, l8 M3 o( H};- t" M3 P4 s$ k9 V3 u, r! v

" i$ F1 y$ S1 _static int __init led_platform_init(void)
7 [- K" L( ?  f. p{+ ?; a: Y- y  K. x9 K" Z; c
        int ret;  @5 ]4 N* R3 {; ^$ D/ k: q
#if 0( ]& q& d' Q; ~9 D& G
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
2 ^8 n. L$ H3 F5 i+ Y5 A3 I- N; P        if (ret)
" B$ m# B5 T2 w6 Y4 \+ S0 |                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"; _( d9 x) }$ G) \5 N1 l  ^" |
                                "%d\n", ret);/ a  q4 y8 ?; f) o! H1 ?8 f8 A# w
#endif3 |/ o4 U/ r2 z6 e8 ^
        ret = platform_device_register(&da850_evm_tl_leds_device);! l3 I4 m0 f+ V8 a) o$ s
        if (ret)
! s9 `9 t. {3 z6 `5 M7 V2 v                pr_warning("Could not register som GPIO expander LEDS");
$ G$ Z& g. W8 x        else
( V& u5 j( f, t, _; W+ q1 i                printk(KERN_INFO "LED register sucessful!\n");8 V7 ^/ v/ C4 l7 h$ S, w! ~6 Q

7 `8 K5 Q$ D+ _5 J/ u! _        return ret;/ {0 k) n1 c, c% y5 Y& v! R
}( Z; U( R" O) j9 n; a+ Z! |8 E

5 ]) L0 z8 w3 w3 f# {static void __exit led_platform_exit(void)0 M+ k: d# ]9 [* f7 j
{6 @6 w2 Q: {. c$ c* g
        platform_device_unregister(&da850_evm_tl_leds_device);# ^* D6 g" E% }: g( t
% f1 q' D. I. h0 T
        printk(KERN_INFO "LED unregister!\n");
; F* q1 F/ R4 w: Q4 W}  h8 Q, r5 t8 r) J) A. u6 p# w

1 D7 ]/ _) A9 z- C  t) S- Bmodule_init(led_platform_init);
% |* P; ?8 o' z6 o) n+ }. c! Qmodule_exit(led_platform_exit);
1 I  \7 M4 G) f) |' B+ f- i
+ G% l7 p1 J; Z0 |5 V1 NMODULE_DESCRIPTION("Led platform driver");. M) A  _6 P. O, Z1 U
MODULE_AUTHOR("Tronlong");
, X% P8 J5 E6 Z' MMODULE_LICENSE("GPL");+ v' G6 ]6 Y" x# {! {+ Y
' z7 n4 O7 P' g# M9 p5 ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-28 22:17 , Processed in 0.046392 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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