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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
) I2 ]! e5 o+ l+ A0 }9 ^& _; P" x#include <linux/init.h>8 C7 J0 r4 @6 }. l5 q) r* f8 s/ \) e
#include <linux/module.h>
) e5 X; k5 g' X3 ^& P#include <linux/kernel.h>
0 m6 b: h) O9 r6 b#include <linux/types.h>
1 x. Z3 F2 R* L& N3 Q* g' W#include <linux/gpio.h>; }2 n% {1 o6 y2 X) n: \
#include <linux/leds.h>7 i; Z5 ]( x, q' e- e% F, n0 Y
#include <linux/platform_device.h>; o& e8 c% e1 O# c3 s5 j7 s

- Z; V0 a3 R2 p: {( \; c2 _#include <asm/mach-types.h>( ~" a* |! D. s" l# E( y) Z  f
#include <asm/mach/arch.h>
+ @8 W5 ~# o7 o, D, b#include <mach/da8xx.h>0 F/ `: ]; t+ U: d# p& n
#include <mach/mux.h>4 m. f7 a/ Y  D( E9 ~

6 c) E& t, z2 t( P#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* V6 o6 [% _- [9 d* w
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ |0 |. _6 F4 f9 ]. K7 s/ p#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
; ?$ t0 `" J4 w( }1 {, D/ v9 J#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)7 l2 P# |- b# q0 x9 ]( R6 O- v
6 M$ ]4 g/ Y3 f( `
/* assign the tl som board LED-GPIOs*/
0 b* t/ V) E! J1 X+ Fstatic const short da850_evm_tl_user_led_pins[] = {  H- R2 `6 g: ^/ {
        /* These pins are definition at <mach/mux.h> file */
* ?+ C" F' F0 ]* e; {0 e5 X        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
- a" C" s5 e0 W! }0 _" n/ M        -1" G6 ^7 d' r- e# F/ \; Q
};
$ c3 |, \  o2 I
8 ~, m( ^1 _; P" x0 s8 j) _static struct gpio_led da850_evm_tl_leds[] = {; u* W/ Y1 M1 d% A! r5 g& J9 y
        {
& t6 W5 s( n7 H6 R1 q/ w7 h6 Y2 F! Z; k                .active_low = 0,! _# M$ V5 G+ _- Q2 l! j
                .gpio = DA850_USER_LED0,
! {6 `! L3 q/ k6 y# E4 B6 O+ z                .name = "user_led0",# G4 z4 }9 K4 L8 c% B7 [
                .default_trigger = "default-on",8 }) Q& I* D; z5 ]; }. [
        },8 T( @0 s! W" b; A" q
        {2 q1 i3 H+ ^) K& }8 C" M
                .active_low = 0,
* ?0 [3 v+ s% \& `, M! D( ~                .gpio = DA850_USER_LED1,' `- Z# H8 ~0 y1 F3 g
                .name = "user_led1",
$ t# C5 J2 V2 R1 K! e                .default_trigger = "default-on",
! _- y% c) I- Z# f) R+ Q$ P        },
! k+ R/ S  E5 O/ X+ N1 F* Q9 ?        {
+ D& W- _9 |8 M6 H+ ]                .active_low = 0,4 e6 H5 ^! Q' E+ E. o& r
                .gpio = DA850_USER_LED2,- _/ ~  M$ Z- V! B) q7 Z% j
                .name = "user_led2",  Y& H6 Z8 W& J* T8 `) g* \
                .default_trigger = "default-on",
* T# N: P& k  h/ ^5 V        },
4 W5 f0 M: f) m8 `( c        {1 o9 X8 E6 R- j1 p- |, |- S+ H/ i8 S
                .active_low = 0,7 v6 N' ^3 K+ K: d, ~# y& i" C
                .gpio = DA850_USER_LED3,3 U  {) z% I3 x8 n5 p$ w
                .name = "user_led3",* `6 H. X( w" {" C! t/ s
                .default_trigger = "default-on",
: Y$ N5 _. T/ K5 r  C        },
9 J. E) Q: w1 L8 I; u# j};
/ B& F- N- [6 u  h; s6 x
4 G0 R, R" s" K! x% Y1 vstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {# `3 v/ T$ o! }- }
        .leds = da850_evm_tl_leds,
* X& l( }+ V  B        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),8 {) O: z3 W0 E2 x+ T5 L, C5 g
};
. {; D& @0 s4 x" ^
" V4 X4 P, H" T! i/ \1 `- Fstatic void led_dev_release(struct device *dev)5 w2 T3 q8 n8 C% M% v' G
{5 ~: |( R. n7 k6 I3 w$ W& l1 e" y
};8 P! s: {8 X/ L% i2 B( x! c" E. G
5 e% y3 q: |; z! L* W
static struct platform_device da850_evm_tl_leds_device = {( v  Y- k- u9 R0 \
        .name                = "leds-gpio",
$ q( }+ f1 n3 D/ K8 D        .id                = 1,( g: o/ a* ~6 T. ^7 |' D& |, j
        .dev = {" j5 p/ z" C& M; Q6 j5 K) _
                .platform_data = &da850_evm_tl_leds_pdata,; \; @! {4 k8 ?9 D3 w
                .release = led_dev_release,
3 N: X! @  {7 q+ `$ \        }
+ S5 F7 _5 K+ Y- {};
! |3 s4 h2 C1 t% J" _
$ e4 D1 N- Z) p2 z/ N4 \9 Bstatic int __init led_platform_init(void)
2 `4 D7 q9 M6 I  f{& i! ~. K6 `/ ?, n) ?2 \$ L8 ]
        int ret;
/ L. }  r1 l# W  P#if 08 A, C& w+ p! B3 M
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
& n; `- V7 c4 o1 P6 V( j! D3 L' W        if (ret)
0 U, Z0 F3 H2 m2 k/ X/ V                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
5 I" m. v7 q8 W+ r# r, j                                "%d\n", ret);; g) o" ?, f6 D1 }0 E
#endif2 B2 {( p6 V! i
        ret = platform_device_register(&da850_evm_tl_leds_device);
) y% C% U' S6 ~# F3 B  {7 H        if (ret)
8 r) u$ s6 r3 q7 R  X                pr_warning("Could not register som GPIO expander LEDS");! S) I3 v8 H' ]+ N
        else
3 ^& ?/ s5 F0 k8 b9 f3 T# e                printk(KERN_INFO "LED register sucessful!\n");* O0 }& i/ c7 D0 b2 A

" _6 T. g$ b& i0 F! H        return ret;. f0 h3 P5 Z( M9 N3 L
}$ Y, U$ }8 H& s) c; o, q. p: M

4 c  Q4 x% q+ I. ~7 H+ Jstatic void __exit led_platform_exit(void)
' X4 j' q- V1 m* m/ A; K, h{% Z: L$ d5 L( \6 N' A9 z
        platform_device_unregister(&da850_evm_tl_leds_device);
  r- T6 A# {( I  A' O2 [: ^1 c9 @
; w. k  e  k7 X# @: C, R4 `        printk(KERN_INFO "LED unregister!\n");4 p1 B7 c  I& w# h) p
}
) U  t3 y( B7 M4 X; @8 d; P6 y- z& n
module_init(led_platform_init);
2 D: C3 I6 C2 g: Xmodule_exit(led_platform_exit);1 T* o0 e+ p# R  O! y9 D, `# p

8 r  Q  [9 W& }, t, FMODULE_DESCRIPTION("Led platform driver");9 s$ u* Q. e6 k, K4 t
MODULE_AUTHOR("Tronlong");/ M3 l/ R* f1 |4 Y0 T8 B% @
MODULE_LICENSE("GPL");
* ^% F, [3 N" v2 f) P
" I$ C8 p/ d' E4 p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-24 09:34 , Processed in 0.039946 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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