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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 S2 m: P- l& |/ u7 v#include <linux/init.h>; w) h+ x/ [. g- e1 k
#include <linux/module.h>
9 h! {  H/ Z# K8 `% I#include <linux/kernel.h>) c  S; B0 X; h$ q) o' m7 U
#include <linux/types.h>
; E  E9 Y1 n" f# W- P, F#include <linux/gpio.h>
' C" R. Y" @8 y0 {" P! Y0 _1 ~* X#include <linux/leds.h>0 d% ?, z) e. {! H5 b
#include <linux/platform_device.h>" p. v6 O, ]3 d0 z7 F
  T1 p& P2 y- k
#include <asm/mach-types.h>
% m. V- I* b: r; z/ N* M#include <asm/mach/arch.h>, Q; B, K1 Q3 ^  p/ P( k' F
#include <mach/da8xx.h>
0 f: {1 o7 [! P5 o9 I. A' R2 I: e! ]#include <mach/mux.h>% \2 `, z! B2 n( J( x
4 X' X2 j3 y8 Y( h7 E& i
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)+ p3 n- L1 w1 u: E! t6 q
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
' i* g: z; z; _$ A; b9 B$ A# d#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)9 ~$ w9 S% e, {5 o2 ~! d
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
* O9 k) n: |5 s* l8 N, z* o8 n" T/ h8 ^
/* assign the tl som board LED-GPIOs*/
$ O! w& P5 ~9 u* ]- \# B! ^, Q' @static const short da850_evm_tl_user_led_pins[] = {8 a: l, J1 q( ~$ E% ?) z  W
        /* These pins are definition at <mach/mux.h> file */) [% T: p# m. R: _  s
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,+ o- _1 c* u4 V( ?" i" p
        -1
. X* [3 S8 e. {  q% Q0 O$ l, @( n};$ {  \( i  G& ^2 a( I$ y

  }( |0 O0 r; g7 B1 H- q' cstatic struct gpio_led da850_evm_tl_leds[] = {
1 C% |, |5 L+ i* n3 |        {
4 R0 |7 ]. v. @  r8 l  [! x                .active_low = 0,
0 a, W+ y# ]6 X$ R6 w% W. `. M                .gpio = DA850_USER_LED0,
' h) {0 i5 w4 |/ \! C6 y. r                .name = "user_led0",$ U- [! f: o& r; J9 y
                .default_trigger = "default-on",7 U8 r/ ?+ V0 T0 p3 R5 _: [4 U
        },
7 ~) [, |9 M/ e7 I/ U        {
; F1 T& E- A& ?2 g% ^8 G" u                .active_low = 0,
3 x8 k$ g5 L7 Y, Y0 n+ u0 r                .gpio = DA850_USER_LED1,
1 K4 v0 X" F8 E                .name = "user_led1",
4 P) C& a3 A( v4 b5 w- ~  M                .default_trigger = "default-on",
# t/ n  _0 g) `& k9 M        },3 h' r0 g) E2 e
        {' E. I+ e6 r$ e
                .active_low = 0,
- r) h$ |: O* O' g: B/ Y! G/ P& P, @3 V                .gpio = DA850_USER_LED2,
. ^6 `) H1 Y  @8 J. N; e                .name = "user_led2",2 k6 M6 T& ]- I0 a& ~* o$ N$ V
                .default_trigger = "default-on",2 o4 x4 }5 p  S# g* L
        },
/ p& A& Z8 g" V0 e9 E! |        {
4 p2 \4 T, Y6 q* m+ _6 \$ y  [                .active_low = 0,
5 G! I/ k. F+ M7 @$ o8 e                .gpio = DA850_USER_LED3,
7 e' |' }1 p+ M                .name = "user_led3",
3 T' X& Z: p0 }% A3 l, r                .default_trigger = "default-on",
) q5 t- Y; j& C9 D7 r& C7 Y        },
- s; O8 X. Q1 N- S};6 ~" \; F2 M3 b$ Z2 p

2 f/ i1 r* G( ~  |) s* ^5 `static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 r) ]" K6 L( D, ]. i
        .leds = da850_evm_tl_leds,- w1 o& x; v2 g
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),: t+ p4 K. R2 U+ z% w
};
4 M$ d+ J; ]) L$ D* }
( b- m: s! p* w# l3 h" \' R, xstatic void led_dev_release(struct device *dev)
8 \4 m# m! ~! A8 C2 |. o4 N{
/ e/ X1 P6 x+ j5 N" g; m4 g};
: d. x8 B1 V3 _- R% o) C% ^, F9 j, b& w9 V2 h  u. G, ?% @
static struct platform_device da850_evm_tl_leds_device = {
2 N: ?) B7 `- N# ?        .name                = "leds-gpio",
& g5 |4 B! R. z" X& }        .id                = 1,
  a4 g. U9 o; P. u% {% B        .dev = {6 J5 l4 X% p0 v; i, I; r
                .platform_data = &da850_evm_tl_leds_pdata,
) h- k4 [& ^0 \# P& e1 w! ^                .release = led_dev_release,
1 z* l; w; H* n4 y        }, @) Z! e; {2 I* |0 O! z& U
};9 d2 g8 F; U* A3 |: O9 S- N

8 u5 K: h1 u) d) {, y  O2 W" Q7 kstatic int __init led_platform_init(void)
5 ?4 m" V  W, V( d# w{
: t9 G, M( e2 P/ q9 h) `! F5 Q        int ret;
8 n& R! \! ~2 J$ ~#if 0: h8 y" [6 `) U% c5 N
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
7 ?& }/ ^4 t7 x        if (ret)
, O" E2 n5 b, d7 w; |                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  J1 m2 Y! w: o) g, a
                                "%d\n", ret);
' m0 X; p5 [9 n! ^+ a" H: y#endif
0 B! k+ W! O7 {3 t+ f8 U        ret = platform_device_register(&da850_evm_tl_leds_device);
. J! j8 T, p, Q9 E        if (ret)  G1 e. t* y( P# h
                pr_warning("Could not register som GPIO expander LEDS");3 t- C# T: I& C, q$ J* E
        else
) s! t1 D  v) w$ h/ g: v                printk(KERN_INFO "LED register sucessful!\n");% g9 |' A% ]7 D7 k
. U3 D. F$ P# q: P& T
        return ret;6 E9 q# e# F, a% P. i
}
7 ?4 H# P6 d% _: B3 W4 O5 }$ @6 S5 `, Q- k  I
static void __exit led_platform_exit(void)
  j+ A8 f4 `3 ^0 I+ T{0 N. r: `& w5 H9 `
        platform_device_unregister(&da850_evm_tl_leds_device);; k4 E! h. t9 j. ^2 Z& @' N

2 m+ G; u2 k/ P        printk(KERN_INFO "LED unregister!\n");
1 o  P+ `: e% R: T8 D}8 |6 w0 k4 p/ x$ L9 E: L
5 K, h% s$ d. W  @$ Y
module_init(led_platform_init);
. C6 Y! x" l4 {- |$ k# pmodule_exit(led_platform_exit);' P0 R2 }+ a0 {4 S+ b
, ^2 f- ~* \9 v2 X- v; y% c
MODULE_DESCRIPTION("Led platform driver");" T5 _4 {( D9 v, n+ `
MODULE_AUTHOR("Tronlong");
$ l$ v1 W* a9 e8 W9 g1 uMODULE_LICENSE("GPL");7 P+ O) w: V* n

) O6 m$ [3 L- ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-20 06:39 , Processed in 0.037827 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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