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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
1 N3 l, g( y# |0 G#include <linux/init.h>
7 r4 T$ q0 {8 L$ z# _6 M#include <linux/module.h>* ^! C% t* W7 a# [" P' H
#include <linux/kernel.h>: X( k* X+ B" L0 z
#include <linux/types.h>
- {% Y/ b. K$ g2 H/ f1 C  G#include <linux/gpio.h>
0 R6 b. K  c3 [, J- a/ w7 R; O+ m& R#include <linux/leds.h>. b4 y2 ]/ p7 U" S) _5 g2 r: v" Y
#include <linux/platform_device.h>3 x" }% \' Q- C5 m

8 d2 i' B. l& R; B2 Q" v3 Z#include <asm/mach-types.h>
# }# P) F  j2 h6 {( J5 a' Z#include <asm/mach/arch.h>( m" E/ X* L$ I' [" P
#include <mach/da8xx.h>
6 Z3 G8 o" _* @& B, V1 I1 d#include <mach/mux.h>8 z' H. O: N" H9 k9 r  C3 ?
& ?1 W5 {" O  `% P& N  r
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 b9 }$ F+ j  R3 u3 i
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
4 [  s+ J6 Y7 L" `1 l" n+ X; p#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)) r6 a" K8 @9 h( H) W
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2); `8 u2 \1 C( ~# C9 N

" J" \+ Z: z; r+ E/* assign the tl som board LED-GPIOs*/
6 t. ?8 F" v' q) C# N. B; g2 bstatic const short da850_evm_tl_user_led_pins[] = {
8 F" N4 R8 s0 [$ C0 f) d3 r+ k        /* These pins are definition at <mach/mux.h> file */9 s' G9 G) ~( a; q& N
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ Q6 B) ^  h* v( o' s
        -17 C0 d* @& \: ~* E7 Q9 J+ D: U
};+ ]: A% D3 t0 e3 m
$ W) }2 B* u7 g5 Q; |$ V4 e, o- a
static struct gpio_led da850_evm_tl_leds[] = {! j8 D$ j2 u0 W' ?) {0 J; b2 S* i  g
        {
' {. Y2 l0 r* `# W  ~, O                .active_low = 0,
+ }/ P* J1 @* v& A4 Q. h                .gpio = DA850_USER_LED0,$ e5 ]- Q& L, r# d+ j
                .name = "user_led0",
+ g( F. s8 g' F# a                .default_trigger = "default-on",
1 l7 R  p- K* N        },/ R, C! K" e6 @8 O
        {4 v6 c* X. f6 q0 C( n# B* z
                .active_low = 0,( B2 |- W/ \- w$ a7 M
                .gpio = DA850_USER_LED1,( d1 M1 `, |1 Q& n- D' y
                .name = "user_led1",4 o$ [1 H9 i* i% s3 [
                .default_trigger = "default-on",
" }( B+ Q  H2 _1 J; C+ Y        },
$ {1 o% \9 h- G+ G8 j2 m$ X        {. p0 y6 C1 t: E: w  C" i5 h- _
                .active_low = 0,2 {) r0 ]+ p- I# M+ `7 ^
                .gpio = DA850_USER_LED2,) B5 z; ]0 r/ R% E# B
                .name = "user_led2",
. q1 ~8 f, r- N3 n. t! K3 Y; {                .default_trigger = "default-on",
7 |8 Y0 X: u' ~% }0 z! R        },' `& r. J0 \/ ]- ^2 @& l8 L
        {9 U7 A1 x+ O4 S; \
                .active_low = 0,9 q# q& ^$ u' m9 s, J
                .gpio = DA850_USER_LED3,
5 t% [0 `( E# m8 C) s5 s                .name = "user_led3",
2 j# |2 x4 Y) R+ u# f. D$ [& [                .default_trigger = "default-on",
! ~& _2 s% c2 E3 d: J( C        },
# j  Y5 \; b0 U) G};2 g2 ~8 X  i8 Z3 f# N

" }& a2 E0 a* G# P" |* ~1 Zstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
9 L4 n4 P% L" e; j        .leds = da850_evm_tl_leds,- T' i3 U* \' p3 W: t' D0 p
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),  r. C6 _) p; Q+ L$ j) N* `2 D! Y9 E
};
9 H- m3 ~6 d. I5 _3 X. O
4 n- f7 g9 g' O! [, C. p5 N4 {static void led_dev_release(struct device *dev)
3 g' z& W$ j1 K2 \# ~{
' J3 j. X/ b) u4 }};
! @- B6 i6 d7 U: T/ _0 ?7 h5 g& j) R3 }8 Q* {: n
static struct platform_device da850_evm_tl_leds_device = {- |, N! p; X( E$ i8 n$ J
        .name                = "leds-gpio",
  D. T, x0 r( ~2 q: G$ K9 F        .id                = 1,
0 e. t2 K, R/ l6 f        .dev = {( c) u, y0 o& G/ k+ C; X
                .platform_data = &da850_evm_tl_leds_pdata,7 B7 N" A  r* p+ W' n* g; ?
                .release = led_dev_release,
$ j8 n( i9 W$ D% m, s# F4 }        }- c2 x7 Q1 z" f, o% C$ ?1 \9 N! T
};
4 W! P% c$ F- \/ v7 q7 L! B
! \3 [, q3 |3 f' C. s/ |5 C1 Q/ u* S4 pstatic int __init led_platform_init(void)
' r6 H* ~8 y3 Y  u{
8 j. K  q5 x  d9 w, ]3 T        int ret;" y' P2 c4 B. Y! |
#if 0
7 a. I  S- ~% s5 u        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
" k6 q$ [) c) g& U5 m        if (ret)# A* ]3 l; L& }0 E
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
- m& A7 {3 T2 }0 }; e: F* H+ K                                "%d\n", ret);  c5 {2 F! g/ v
#endif
2 p7 l; G: y( |% p* N; _7 y        ret = platform_device_register(&da850_evm_tl_leds_device);
- w+ z; A) M# I8 {! ], `        if (ret)
" b+ G! V. O% L( o9 R) H1 `% u3 g                pr_warning("Could not register som GPIO expander LEDS");
  c1 S* a, A6 V+ v% i2 [, n        else& f4 x( q- g" |
                printk(KERN_INFO "LED register sucessful!\n");" o( Y- G+ D/ L
* L" Q' ~' p- c0 j+ k) B' H
        return ret;
6 _3 r1 ?5 @" a. w# p0 o/ |7 I}
# C0 z% n- A" d9 k, i4 N  Z, w( y' m; \7 ~% q" I  p2 ]- b
static void __exit led_platform_exit(void)
1 Q" R1 s4 T8 i/ I5 e{* a: P# a4 Y" f- K) t( s  D$ Z( r: g
        platform_device_unregister(&da850_evm_tl_leds_device);. C. ~: X0 I$ J

( A7 x5 y3 N- O' d/ ^$ ^1 j        printk(KERN_INFO "LED unregister!\n");
: ~' ^6 \3 }& a2 L& a; R}/ r3 m# V, d" |: A' I
, Q  ]6 M) E& ?8 {' @. U! k, V
module_init(led_platform_init);
( i& D# u+ z, X; V% Q1 e/ P6 Imodule_exit(led_platform_exit);9 c( Z# w5 h3 ~7 p  H  f. Z

" G+ ^: G7 R, q) @MODULE_DESCRIPTION("Led platform driver");
4 O3 J, ]8 v* x, E2 @  CMODULE_AUTHOR("Tronlong");9 m* c6 U- A% m- n# m9 \1 ~$ w( r1 Q
MODULE_LICENSE("GPL");
& R0 t0 b/ k9 C5 ?" K& @4 z( Q1 X- N( y2 C% N( d& _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-25 06:03 , Processed in 0.041388 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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