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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 p: l, f3 ~$ O0 k) \( u( Q4 ^' C#include <linux/init.h>: v7 k" G1 n6 C9 ~4 Z  l0 e+ B
#include <linux/module.h>: L7 O3 m: d2 ~% ~0 p
#include <linux/kernel.h>$ i, S# a: B1 [1 R0 G. F! B
#include <linux/types.h>
8 o' W  N. Z8 E2 f4 k* Z#include <linux/gpio.h>
9 M7 C+ a# b. }8 f" C: p: X#include <linux/leds.h>3 N3 ^! R! h) }8 Y; M! T( P
#include <linux/platform_device.h>0 S3 f; N4 D* J2 @1 ?* u5 H

, ]7 e1 Y7 [4 j  D0 ?#include <asm/mach-types.h>
+ \6 x4 M6 c2 G% h3 m# N( S5 T#include <asm/mach/arch.h>
5 ^6 X5 v! s1 o! C0 a: L4 k: |#include <mach/da8xx.h>
% {- I; |6 \. t( ~" u3 w$ ]: s#include <mach/mux.h>
, S$ G% w  }8 x% O% Y7 [
3 G3 K# q+ w+ d. S' {1 P#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)" l. C3 Y) M' A+ s
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)% t2 _4 c& n0 {" O( d
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)  @- w/ \1 p( r$ d6 j
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)! v# t; C- q# B/ g: r, k% k

  J. l9 d/ ~8 h% M8 U/* assign the tl som board LED-GPIOs*/( G. q8 p# h/ c6 h/ V
static const short da850_evm_tl_user_led_pins[] = {1 }3 A+ C  V0 j# {( H
        /* These pins are definition at <mach/mux.h> file */! {) K  n1 X: B# e/ _
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
  o7 f. b2 i# W( p/ g3 c- n        -1
$ v  U/ R4 _& D" j" e1 |5 m$ ^1 ~};
' |8 J4 p$ J  ~4 P
  g, m; z% P) y, f0 `static struct gpio_led da850_evm_tl_leds[] = {; P9 G. o7 J7 C& D% C
        {
5 E4 ]& U) n; q6 y                .active_low = 0,
1 F5 _% ^4 }! d2 B                .gpio = DA850_USER_LED0,3 y! c7 D- b$ d, }9 R5 N
                .name = "user_led0",4 k6 n' s, g1 ^8 i+ D
                .default_trigger = "default-on",& A( T% m: ]7 }- U+ a, I
        },
+ P3 U7 d* ]8 x0 j        {
) M, E6 t8 l. B2 P* O$ Y6 z* w                .active_low = 0,
( N+ y3 g! k$ K  `# o1 A2 o. V3 _  a                .gpio = DA850_USER_LED1," C( R' A8 o% _6 |7 [6 `& }
                .name = "user_led1",
( j2 y  w9 X2 Z2 `' f                .default_trigger = "default-on",% }9 d7 M* H5 ]# v& |
        },/ ?1 j. u/ N8 [" h$ S, c1 ^
        {6 Q7 [. G( Q5 O* Y! F4 u
                .active_low = 0,
3 e5 o6 b. r$ {; o# Q% X                .gpio = DA850_USER_LED2,
* l6 ?" a5 i' ]; q2 _1 V# N3 G; E                .name = "user_led2",9 a% W; h; ^* @6 @, F8 S0 V) _
                .default_trigger = "default-on",
, z7 m  J& p# A( s, `+ C% m3 ~( e        },
$ e% e! t/ R) u        {( G  o" B7 v+ d0 c
                .active_low = 0,
* R: s+ S+ g: C% o/ {                .gpio = DA850_USER_LED3,
7 N% O  R( G. \& s8 @* @- W                .name = "user_led3",
; Z3 ^1 ^& T, {+ `/ Y: z8 I, O% i1 @( R                .default_trigger = "default-on",
- F( f) G& G4 Z: k        },7 I- J4 {8 c$ \% V2 C( r
};% H2 Q! Y4 V- `; Y3 v. o% e

# H; C, C: r1 H8 z' z& t: Fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
" R2 X9 I! ]/ ~4 I" A% k: o4 Z        .leds = da850_evm_tl_leds,+ k- ^. m. v. q: w+ G
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
% c# S% r3 F& H# {$ p};. ~, M; f6 r& B9 s" D9 H1 \( g1 m# X" r
0 i- s1 Y: `" L
static void led_dev_release(struct device *dev)
, o' |4 Y0 W0 Y6 `{/ M. W* T3 N! A+ x+ f% ^5 f# a+ W) c
};
' e0 q4 \+ }8 n4 v0 O' p0 T- r
& _; d5 x0 ~3 U% R) sstatic struct platform_device da850_evm_tl_leds_device = {
- j% m) ?& y/ c* \6 V        .name                = "leds-gpio",
) ~+ T" V. E% v7 b% N6 n        .id                = 1,
- g0 p2 f  U0 C6 `+ _* i+ A        .dev = {" H# ?# M& |# v' n6 e1 p6 }, o: o6 s
                .platform_data = &da850_evm_tl_leds_pdata,
  w5 }5 R4 S; N                .release = led_dev_release,
8 L+ z7 j. |$ X6 ]        }% o" w9 M0 ]9 T0 E/ \
};
2 H' j" u8 m, r& ]
- I. D0 _, u$ T; e: p4 e$ ystatic int __init led_platform_init(void)
5 Q# s7 y; j/ z# L( q{
0 P. G* O0 L! V0 |5 e        int ret;: [4 K6 u; a. B+ Q- V) @
#if 0' `2 z3 Y' f" ~5 d! X. L. [
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
+ G) R% g# ?: w$ j7 N4 {" H        if (ret)3 n" S6 w6 r* A+ N5 C
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"" I8 x( Q# U2 z
                                "%d\n", ret);
- I  Q2 t; E' b- u( J#endif
2 e8 B7 C( R6 t4 N        ret = platform_device_register(&da850_evm_tl_leds_device);
) H+ \9 T4 x4 G% h. `$ j# x+ g2 S        if (ret)
. `' Z5 P5 `9 M, L& v, F- q                pr_warning("Could not register som GPIO expander LEDS");5 T, E& H7 I6 `  a
        else! X2 T5 O+ M/ Z5 |- O
                printk(KERN_INFO "LED register sucessful!\n");
9 o2 E; u. U9 a! ?- A3 C9 c2 a
: d5 D! H; I3 }2 @& V        return ret;3 X" C5 a1 B, M  Q: S' M- `& O
}% p0 t' w$ Z0 C6 F$ P

( P5 `6 W$ B- x; k# `) {* rstatic void __exit led_platform_exit(void)0 m1 B) C  Q8 w: C' u, U
{2 @9 u, [3 ]% J7 g# e
        platform_device_unregister(&da850_evm_tl_leds_device);6 K8 j8 P. |% I! l3 h" m8 N

( N0 t  p" }: E8 Z8 C( j- o& |        printk(KERN_INFO "LED unregister!\n");
6 c* u1 R% O; ~}6 T' N. u  d5 K$ O( I% i9 i. u+ ~
% ^6 s) Q6 ^) f& o0 `! S  ]( @
module_init(led_platform_init);
; v' t9 L1 `$ smodule_exit(led_platform_exit);  h3 S; _0 i- c& W8 t( ~

- G4 R! R- Q& r* SMODULE_DESCRIPTION("Led platform driver");
5 s3 I4 `! R' I' M) xMODULE_AUTHOR("Tronlong");7 O; _/ ^$ D+ Q9 L
MODULE_LICENSE("GPL");2 v+ z1 d. Y, i. p' Q: ?
. i5 Q& H( d; L+ P2 d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-24 00:30 , Processed in 0.038934 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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