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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
" m9 k; k5 t; e  g9 q/ z#include <linux/init.h>
/ N; f: n* u" J0 e1 L) g9 T/ |% W#include <linux/module.h>6 d3 m  c# m9 A% d
#include <linux/kernel.h>
/ X3 u7 h/ K9 ]. M) V8 }0 e9 A#include <linux/types.h>
4 |# g0 `& y& M- ^# k  d#include <linux/gpio.h>( t$ ?+ O* f9 T' H
#include <linux/leds.h>; Y, J4 [1 g7 w
#include <linux/platform_device.h>) `3 X# b  ^6 ]0 W/ p# H
+ m& a3 {4 ^5 m; G* _
#include <asm/mach-types.h>; r' b: }# k- C" n% x3 G
#include <asm/mach/arch.h>
# r8 l7 C+ j( H: }5 _* q#include <mach/da8xx.h>
3 W: S1 _( k/ `# ]#include <mach/mux.h>
0 n% J4 f& N3 i6 u) j( j3 S6 L% O
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)8 B# Z8 @1 f% a" W* ~) |3 q* E; z
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
. ^2 [" f: o) J3 s#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
6 R* Z: L0 L9 g( H2 ?* c0 w#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
) T' a/ C5 F. w) f+ z  F' z! I/ k' h7 P+ b4 g  D
/* assign the tl som board LED-GPIOs*/0 h5 O1 d/ a$ Q5 S" k+ o: U
static const short da850_evm_tl_user_led_pins[] = {" w+ P0 W7 Q( D9 N# ?2 q
        /* These pins are definition at <mach/mux.h> file */
! Z) W% ^; I. B) f% U        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,+ Q; l  D3 q5 C
        -1
# x6 Q; f0 }+ f2 o5 d5 _7 S( H};
1 Z3 M# T. b# l+ K. }* {# k# g% |' z" s3 d" N1 R) r4 I" w
static struct gpio_led da850_evm_tl_leds[] = {% M  n& _, x) K+ w
        {4 [% p# A7 k) W6 t, F' B0 S. t
                .active_low = 0,
4 a% G$ G! w% p% k( P* E                .gpio = DA850_USER_LED0,% p, B% f, m% d7 I0 B' h0 g) D9 M
                .name = "user_led0",. S0 L% W/ i5 B; h+ B0 a
                .default_trigger = "default-on",
+ X: i  q& [8 Q' t        },$ h# a/ d) `3 {' f- V
        {* ~0 X) `4 k/ j3 F2 |4 `
                .active_low = 0,
* Z% h& f. l, ?  c! N9 A' R                .gpio = DA850_USER_LED1,
; s8 \- C" \/ ?  L/ J; W# a+ m7 F- ~                .name = "user_led1",4 `7 w, ?  J, _& R3 t
                .default_trigger = "default-on",
; T- o7 z2 N; N$ M( e        },
% K; _7 i4 w; C- M, `3 l9 J( W: J        {
, u: o$ b! \2 G; Z                .active_low = 0,
0 z* K  X% t! l7 G. H5 p" A) ~                .gpio = DA850_USER_LED2,
$ N6 f* U; F4 [( c3 W$ F                .name = "user_led2",
' U0 b, A$ j* }/ w9 m                .default_trigger = "default-on",
& g) I$ T% K1 ?- r$ @- Z        },
5 B- L  l2 C" a; Q% f# k5 m        {& I/ {$ X: A7 B& A+ e
                .active_low = 0,
" V; T& Q3 l% Q4 C: n3 Q+ z/ P                .gpio = DA850_USER_LED3,
& \( L. @( g& s+ Z, H6 V4 Y/ r  o                .name = "user_led3",9 R+ h+ N& v+ V9 ^
                .default_trigger = "default-on",
- ^9 N, m  U* S2 `! B) ?# t: z; N        },1 v1 e* C9 q& a
};* |9 ^# p" r# G* j% B$ z0 V
' L; p2 S% N: @' L- G
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {- K( j; |/ H/ D4 X
        .leds = da850_evm_tl_leds,
) v; H7 k! c5 c1 Q! a        .num_leds = ARRAY_SIZE(da850_evm_tl_leds)," S) A+ z" [# _; q8 I8 Y- h
};$ P, [+ ~% ?! S" d" L( v+ I1 y$ g

6 g/ R- A- E6 j( L5 {5 E8 f3 Zstatic void led_dev_release(struct device *dev)$ F4 g, p& h% v/ X. m
{
3 S& z3 ]. N+ u' _) v" C};
2 h* P( M( V; {8 I& q1 [$ O8 R$ F. q; ^
static struct platform_device da850_evm_tl_leds_device = {% T! \* L" X) A
        .name                = "leds-gpio",
' V: d% w2 f$ t% Q  e/ X        .id                = 1,
1 V6 ?9 K' e  j        .dev = {
' z  Z# {' J0 k" S0 X" P+ y                .platform_data = &da850_evm_tl_leds_pdata,
! ^( c, ?( C! |% {& O* [                .release = led_dev_release,/ R  C' V0 z1 E$ y- E
        }( g, B! [7 `/ o
};6 E5 N9 W1 j; P" ^. V  N: L

6 z: J4 x% L2 t1 qstatic int __init led_platform_init(void)8 h: _5 o3 g5 h1 Z5 i8 v7 j, ]$ ^
{6 ^+ G9 C" @% `2 j6 B
        int ret;
' v0 d  Q, P" r9 w4 K0 N#if 0
; f5 m- U/ Z9 V. y        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- `. L1 F8 F4 z0 Q$ U6 a        if (ret)& U6 D  C- I$ B* M, R. V2 X
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"5 S# X4 G/ H% D4 U+ J& L4 M: R
                                "%d\n", ret);
3 z4 `. c2 K* @+ c! G& K. M% R7 C#endif
! j& Y7 J2 n# k* R        ret = platform_device_register(&da850_evm_tl_leds_device);1 L# l2 y- U! R5 V7 ?" S, h7 P
        if (ret)7 K( s" I7 o& o, J  l- Y4 G
                pr_warning("Could not register som GPIO expander LEDS");
) S. ]) n/ l, R! ?/ C, v2 V        else) x" w* Q% r4 X- v4 f4 l
                printk(KERN_INFO "LED register sucessful!\n");  _* z* \8 ~# E1 c- S
& ]9 |$ X8 l8 A" Y
        return ret;1 p  u6 a0 G/ \& ]5 J% K
}) k: I5 a! W9 U4 a. A

. ~" {2 L1 \; J( n' v& Dstatic void __exit led_platform_exit(void)
0 R8 w& H, U: I  N% X- Y# U{
8 p# f. p) _3 X        platform_device_unregister(&da850_evm_tl_leds_device);
6 D% @3 O4 L% C; ?1 F1 `: ?
' Z- L( b% y% f: ^. N! Z; v6 e        printk(KERN_INFO "LED unregister!\n");
; h) Y7 Y2 D9 X; k+ U}
% z! a2 n, M' m1 X2 d* ]$ [( g" A" G
' \6 ~/ \  u& d& mmodule_init(led_platform_init);* y" f+ i  h; D& d* y7 H
module_exit(led_platform_exit);
8 k/ u7 n1 E* I0 F- G
* S; ~! g. z2 n+ z- L, Z! d0 JMODULE_DESCRIPTION("Led platform driver");. L& G- Y7 G8 ]
MODULE_AUTHOR("Tronlong");0 ^$ [1 P8 n* ~  X5 f4 C4 Z
MODULE_LICENSE("GPL");6 d: s5 m0 ^; Z" A

. d4 h% f+ ~+ }7 r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-4 02:02 , Processed in 0.072872 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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