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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
& `2 n6 M' e3 A8 D$ t( S#include <linux/init.h>1 ?: E% J; Y3 ^4 C
#include <linux/module.h>) G! X' s8 M( R" s4 j; w& {8 O
#include <linux/kernel.h>
  S' Z9 P# s3 M3 Y0 K/ \/ o#include <linux/types.h>
0 K- {8 {3 C9 c+ o, ?* F# d% t& e#include <linux/gpio.h>& }. k  T9 k% s4 m: d) G
#include <linux/leds.h>2 W: T7 i/ K9 s- u
#include <linux/platform_device.h>8 G1 L$ g+ ~5 m7 e( V
3 W7 s& h! \2 Y: H' |' h. ~
#include <asm/mach-types.h>
( L9 z' y  h3 x, M; _8 n5 C#include <asm/mach/arch.h>9 m' z* r' |$ g2 d6 I1 h
#include <mach/da8xx.h>; S6 F& [/ V) c% Q$ X4 A
#include <mach/mux.h>
! R2 h! ]0 W- J, l
" ~" c/ P2 h7 h1 D4 o  g$ a#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
/ K+ @5 M3 t% B#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)' K' d$ n+ i" X$ z- `# A
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)7 u" h+ X- w1 [) ~' y2 [
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
8 A% B+ d. Y5 Z" h9 A: }5 U8 T) D2 d( N: C. y2 j3 j1 H$ T: H) a
/* assign the tl som board LED-GPIOs*/
- M% H6 G  B, C5 u4 [, ?: Rstatic const short da850_evm_tl_user_led_pins[] = {
% m+ o. w$ r, u' {$ c  }+ z( m        /* These pins are definition at <mach/mux.h> file */
3 R6 g2 ]8 y' k& H, {/ e: O8 h5 f        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
# N" Q' N) ~0 N2 c% T% @- x        -1
' q3 O3 z. Q3 [( S- Q% T6 K4 a# ]};
5 w: N4 x5 k. @" ^1 z! ], F
/ N4 {7 z# N0 z' e' M+ S9 ?, ^static struct gpio_led da850_evm_tl_leds[] = {/ l4 D" L; c. P; `
        {
$ C5 _) x+ m( L7 B1 i% m                .active_low = 0,) K# x/ n# D% U0 c3 N% d
                .gpio = DA850_USER_LED0,
8 T( L8 f, d0 \' B9 ~( N4 Z                .name = "user_led0",
. \  a4 a; G/ @( \" p/ i5 G- n  |! `                .default_trigger = "default-on",
6 i$ Y/ T/ U  o3 q% a4 }* Q        },. U: W# v6 u  F4 V
        {; `1 {$ I9 }) g
                .active_low = 0,
& O1 R1 f3 G9 o! B4 v/ v                .gpio = DA850_USER_LED1,; J0 }- w) D' s6 k. b/ \
                .name = "user_led1",6 ^0 I: z' C$ k
                .default_trigger = "default-on",
% \# K! a1 A- z; i        },- W5 B! v: f7 _' V  t
        {
( t  S. m% k  r/ S7 t/ w! W4 d                .active_low = 0,
) }6 h4 v9 y5 ~: l- h5 O" `8 u                .gpio = DA850_USER_LED2,
) p8 z3 p' x8 a! i! ]                .name = "user_led2",
( ]0 y( i7 t# v: U$ u0 l( V                .default_trigger = "default-on",
$ R# S' E' n6 R! u5 E        },0 N3 E( T4 c2 Q1 u; n
        {
  k$ m% t" K+ Y1 X( G& {% c) I0 @" g                .active_low = 0,- G! n$ `5 Y* {. `1 Q$ J9 _) ^
                .gpio = DA850_USER_LED3,! Z& f) O8 V2 ]5 {
                .name = "user_led3",
  F& k% d  }( c. a) O                .default_trigger = "default-on",
4 }/ {' R7 I2 W" y# ]        },8 {4 B5 S# g8 Q4 L! q
};% t. j9 ?( t; z  ?9 \+ W

9 e/ m8 ~+ N% o7 p- Pstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
8 c2 Z2 w2 K# h; f; m        .leds = da850_evm_tl_leds,6 n" r$ f, w+ n# I* i. L
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),. |. v$ f7 `/ x' e( T+ ^
};1 c7 A1 ?: Y! I3 U2 ^; w
2 a7 U0 Q1 |/ U+ }
static void led_dev_release(struct device *dev)( u0 ~& X9 J5 c2 J% W
{8 f* ^5 `2 ~% [) U$ a! l
};
8 P( o1 T3 f; g0 v$ C5 @5 N. K7 }( w' d" }9 E' C. w) t
static struct platform_device da850_evm_tl_leds_device = {
2 z% t. n) p/ x  ^/ |0 c, W        .name                = "leds-gpio",0 K' D& d/ ~9 Y8 J: S
        .id                = 1,! f2 d3 d" C6 v+ j8 l8 K
        .dev = {8 s$ k2 ~& K8 d8 S$ ^( O( v( u
                .platform_data = &da850_evm_tl_leds_pdata,; @' h9 a9 T$ }7 T4 d
                .release = led_dev_release,
: L8 i7 S& `9 J2 L  @* }1 u2 T        }
5 H' ~) v# S0 n; o/ x; b};; |" Y2 c6 `/ ^+ S; s; R6 S
8 F3 ^/ [, Q+ E0 t& U3 f
static int __init led_platform_init(void)
$ d( Z$ T" m% n6 s0 i5 M+ a6 f2 B( C{
3 L& E8 ^. q  p0 X& y* Y* h        int ret;
/ C: w2 o- w- y" \% [: A3 s# i) [#if 0
. P% y4 N0 L" Z  h5 G& Y        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
% B: [5 F! U( m- X        if (ret); c+ b8 w" o2 u$ r* S
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"2 y0 C2 d8 ~0 Q: ^
                                "%d\n", ret);
: F" T  O( T3 |( q9 [& W. w, V7 c#endif
( K5 w( P# K7 P5 b- n- _- P/ z* W. Q        ret = platform_device_register(&da850_evm_tl_leds_device);
' `  F' G2 Q4 O  u        if (ret)- }& n5 m- e* ]+ y7 B6 ]- z
                pr_warning("Could not register som GPIO expander LEDS");
( O7 X) p4 N5 U: W3 M) p        else
5 U' g3 E1 C# ?  n  F/ v& q                printk(KERN_INFO "LED register sucessful!\n");; r% h! f; f9 f

, `& L+ I; u4 Z$ s        return ret;9 H9 ^) B/ Z" F2 C5 j
}' l" m% @$ Y' k0 H/ p" [  \' ~
: y' `0 [2 H2 R" k- _: ~, I8 p
static void __exit led_platform_exit(void)
6 G6 g& {3 u1 q{
5 J* G! W. M$ w9 j  R6 z! g: R        platform_device_unregister(&da850_evm_tl_leds_device);4 W) O- f: L% x) d. s! a3 @
1 B% Q8 G4 u  T, x# m# Z. c. H1 N
        printk(KERN_INFO "LED unregister!\n");9 E* m3 @/ A1 v( y3 c6 @; ^
}
+ l: U% `4 z& I4 ^2 r& F& K) C6 _7 q: F% ]' j
module_init(led_platform_init);
) ]5 H' o, |% \% ~; b7 o6 wmodule_exit(led_platform_exit);9 C. |" q; E# Q; n$ {

% @, q4 _$ h( J$ J# Y, WMODULE_DESCRIPTION("Led platform driver");
1 n& [) e' z0 ]+ {$ mMODULE_AUTHOR("Tronlong");
( G- s9 ~; ?- B5 {! Q, x& p/ a* N/ e  LMODULE_LICENSE("GPL");/ P. A. B' p! S. X

" }% X. ?1 T& X5 ^+ }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-16 23:11 , Processed in 0.054994 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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