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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 x0 `$ [: L/ n1 B' q% N#include <linux/init.h>
- \( b* E$ t& a#include <linux/module.h>+ @8 F& X" Q4 l0 x/ S/ q
#include <linux/kernel.h>& a. T' M0 c& H* B% n% S; \
#include <linux/types.h>1 Z5 M: W8 h' M' t/ P$ G4 Z8 P
#include <linux/gpio.h>1 P: E  f* z- M' H6 Z! v! S
#include <linux/leds.h>
5 s+ n; B8 z4 N#include <linux/platform_device.h>
4 v2 b2 L: \  x( n
- j" [& `) N: j  b- ?+ W#include <asm/mach-types.h>& `/ k: P4 N# l8 ?7 W, c
#include <asm/mach/arch.h>
1 d5 ~+ \7 {, x#include <mach/da8xx.h>3 J7 z# I" E0 J9 O$ v3 S" P
#include <mach/mux.h>. A: ^6 F! q& ?4 j" w
& T! [6 q+ U% K; f3 X5 d
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- G. z  f( T7 @$ d#define DA850_USER_LED1        GPIO_TO_PIN(0, 5), [. F! y3 E6 A& ]
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 o! q8 {9 W9 C4 X% X- B5 y7 f: V#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)1 l6 l% ~6 `/ _4 R  B$ J' l, _( G
& a1 V6 X# H* r0 h) O  \& Z  F
/* assign the tl som board LED-GPIOs*/
2 ]: p0 h) C8 H% X4 astatic const short da850_evm_tl_user_led_pins[] = {
! [# ?8 P* g% s1 \2 M        /* These pins are definition at <mach/mux.h> file */  p4 i. S) W/ l1 v+ ?! x- |
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
6 J2 m$ `- X- ]        -1
9 O# v2 s) ~/ }0 Z8 n};- `/ k4 ~+ y" _

. K* _1 E% F! W2 f' |static struct gpio_led da850_evm_tl_leds[] = {$ N! ]- f  W5 Q+ `* v
        {
6 B. S' e+ A5 s# E/ a                .active_low = 0,
- n& H9 ~+ K& b. _( I, e8 e$ m  N                .gpio = DA850_USER_LED0," z7 Q0 z  ^& v3 e
                .name = "user_led0"," w* i; y; o5 f9 R0 z. @
                .default_trigger = "default-on",
! [! p; r& @3 A5 o, v        },+ n; f+ H3 o+ w/ r* t
        {
4 n+ f1 l( S8 o7 i- L                .active_low = 0,: E' f6 F% @; C: E
                .gpio = DA850_USER_LED1,
& q( V8 h' t) h; {* V6 I3 H' u                .name = "user_led1",# w+ m3 c2 O/ _* N' l9 v
                .default_trigger = "default-on",+ `# V' P1 H+ X8 l
        },
) S+ ?2 _; c& B- I        {. {" i' D8 A1 a9 n
                .active_low = 0,5 I, H0 m* \- Y4 O
                .gpio = DA850_USER_LED2,
! r6 o5 Z  o7 O! {8 C                .name = "user_led2",! U, \  G  a6 Y& q
                .default_trigger = "default-on",( m, t  u0 ]: N( ]! D$ o0 c3 K5 l
        },# E9 q# I: Y6 ^  |
        {
6 S$ y8 y# q0 x6 a! o: F) V                .active_low = 0,
# `! L0 o4 D9 U. w8 R                .gpio = DA850_USER_LED3,3 G" |  m; H. d9 U/ c8 ?4 g$ L
                .name = "user_led3",
$ Q8 N( V! p3 W7 S6 R                .default_trigger = "default-on",. p3 W; r% O3 T
        },4 T* H# z# H; e& R$ O5 f# v; f2 S
};
; y7 I8 E5 {  m- L; k2 J# `1 c- m
; {, F$ r9 M9 d) y9 Rstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {( `/ F/ _% t% G8 E
        .leds = da850_evm_tl_leds,) ?! e. J( z7 y) E  w
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),) c6 b; T: F- q# {6 }$ \. K
};
: F; f1 g( M  H: }, P
- s9 Y+ C7 j2 I6 d% w9 z% |static void led_dev_release(struct device *dev)
" I# i+ \# E3 R+ w3 ]. ?{; b! ], T& Z+ U4 g" F/ C; G
};8 @9 s, G; p% U7 H4 L- e. V/ S
, s& T  S% K, w7 o
static struct platform_device da850_evm_tl_leds_device = {- {" E6 n9 V% X2 }/ `( o
        .name                = "leds-gpio",
# k5 |" t% R; |1 {5 J1 |' N4 {        .id                = 1,+ i  w# J. p4 K4 j. I4 z! H
        .dev = {; z! K$ D6 A4 x, l
                .platform_data = &da850_evm_tl_leds_pdata,+ Q3 D) p6 t) b, j1 B2 B
                .release = led_dev_release,8 c" r; U% A4 t5 Y
        }
3 y* p+ n, V. B4 R- E};
6 k) \9 p7 h$ B7 d% e3 R7 m. Q. i# o# |: w5 n2 D
static int __init led_platform_init(void)3 Y7 C1 u: u/ j/ {
{
8 s$ Z  \7 c1 I" v! G        int ret;& K6 a% l/ y4 Q9 B, r& t. X
#if 07 q! C# a( Z$ S" F0 k5 q. K8 d  T
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
" f3 o* |/ k6 t" A1 N        if (ret)+ c. h2 v; h0 u$ K7 v6 _0 b5 H
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"# B; u, I! M& m: n/ D* `' Y6 M
                                "%d\n", ret);, V5 j/ R& H5 a
#endif
/ B5 ~  s4 b& t& k5 \6 V1 ~        ret = platform_device_register(&da850_evm_tl_leds_device);
. J. V8 P. W: `4 b% A, T( W        if (ret)
: t- p' h8 z3 a$ A3 S+ u7 q: V                pr_warning("Could not register som GPIO expander LEDS");
7 w+ \6 h& R0 ~0 R3 u+ i        else+ m/ c6 t. W) j  f+ N
                printk(KERN_INFO "LED register sucessful!\n");5 q1 H, K7 |8 s7 P  g

' s  \% ~3 g! a" a        return ret;( ~5 y  J" p8 r' h& G) [. {$ r
}
8 A, g/ L% m$ O2 w7 u1 |
/ Y8 k9 e9 B; Fstatic void __exit led_platform_exit(void)7 X$ G& P/ d) \" F, r' S" J
{- q, O" ^! i. U: Z
        platform_device_unregister(&da850_evm_tl_leds_device);* B, i8 _3 x, k6 j

1 k8 M2 T: s( Z& c* }1 A        printk(KERN_INFO "LED unregister!\n");- U' P' z+ r) s/ u  d5 {
}' h% @! f/ c/ c( }6 F4 J4 t. a1 R
0 E; v  J9 Z1 i  E1 |( e# E  X
module_init(led_platform_init);
3 n/ a# {8 B- T* lmodule_exit(led_platform_exit);; Y3 \3 l" i3 r+ `% ~9 c: O6 ^: r( R3 E
! n& ~$ Y% \0 J% R" X" |
MODULE_DESCRIPTION("Led platform driver");
8 ^9 v1 C4 `; `" R2 WMODULE_AUTHOR("Tronlong");$ f# `# j. p$ |/ N! v
MODULE_LICENSE("GPL");9 B5 j3 C/ U1 z% b( o+ X

. H, \7 o0 M& d6 G" f9 c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-17 22:19 , Processed in 0.040090 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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