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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
0 u) m9 R' G9 p8 r4 |, L#include <linux/init.h>! [0 C1 |* q- R( \4 U5 X3 h  }
#include <linux/module.h>
- E% G6 d0 u4 J0 S+ E#include <linux/kernel.h>
* _' v& G% i+ [3 R8 u2 b- X#include <linux/types.h>( g) `7 M+ K7 c1 h
#include <linux/gpio.h>' N1 Y$ k" d+ G" F  n+ y4 x
#include <linux/leds.h>! A) h' Z% R, |: \2 n; W% L& O# P
#include <linux/platform_device.h>/ I. X: h+ D$ ?! g* J: Y2 P
6 S0 ^1 a$ J$ Z2 @: O
#include <asm/mach-types.h>2 k# K/ v) K0 \5 O8 C( P3 [+ o
#include <asm/mach/arch.h>2 J& l- I+ [$ o- z1 p, R
#include <mach/da8xx.h>
* ]! ~& ]* u# f2 M  ]* C3 m2 t#include <mach/mux.h>
& N/ S. ^9 d! Z
) @+ S& p2 E0 m9 r+ [#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
; d$ V6 x9 P$ H( m+ ~+ D6 L; l7 C% G#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 [& Z' l! w. C% s#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! I6 f7 h! f! Q+ Z#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 B' C6 ~3 k* y# j) |) U2 T4 z% p7 b) z& N$ L
/* assign the tl som board LED-GPIOs*/
$ A  R' h* \/ B- J+ Lstatic const short da850_evm_tl_user_led_pins[] = {. B/ o  }. @7 e3 g& r
        /* These pins are definition at <mach/mux.h> file */1 [& w% p3 F% l+ W
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
- f" i8 F  m5 y! _* s/ C        -13 @2 M, b! B/ h8 G3 Y3 c/ A7 g
};
) W' _; w) v9 N, k4 g8 t3 L% k0 h7 L, b% u2 g% a
static struct gpio_led da850_evm_tl_leds[] = {
0 Z/ ?; ]8 D/ Z& Q: W        {6 E0 `9 f2 h# w! H+ n* Y
                .active_low = 0,2 k9 |$ E* z* \+ K7 y6 m; t
                .gpio = DA850_USER_LED0,5 d3 k& b- _' a& L. R" a
                .name = "user_led0",/ Y- q6 r8 H, D9 ~
                .default_trigger = "default-on",' A/ B: U# {; A
        },
' I0 g* t: n( O5 p        {9 G* w3 o0 P) j. E2 A; @
                .active_low = 0,* t8 O2 C  Q6 U0 i5 `
                .gpio = DA850_USER_LED1,
* R4 w# _6 V6 Q/ n* E                .name = "user_led1"," f& S( t( P1 `$ N9 Q# f8 z% B
                .default_trigger = "default-on",1 S8 s, e1 F& G- R! _2 D) K
        },
3 p+ q6 @/ O1 Y6 N7 y. n        {
+ R* @( Z# g) |& c; }                .active_low = 0,
1 g. m2 m5 h. L1 o& f2 p                .gpio = DA850_USER_LED2,9 l/ D& E7 P6 {  n
                .name = "user_led2",
6 u$ k% p1 ^6 [9 ?) \                .default_trigger = "default-on",' ?. v# T8 `6 T/ F# t: L8 Z' \
        },
* B3 c  K1 m5 O/ |7 W9 b* J        {9 f/ U' J' d. x$ c
                .active_low = 0,$ o3 d# Z& {6 N( B' o
                .gpio = DA850_USER_LED3,6 J% M( x  f+ U* x" n6 r
                .name = "user_led3",
3 G: g% L$ ]2 b) Z. W. u( z: L                .default_trigger = "default-on",
9 u# U! z5 y+ M( y- U        },$ `9 ^9 @" c/ H( l8 K" v
};& H' i9 n4 J  j6 s. I/ }# b$ ~
, B* f! `' ~8 T+ x: d, w6 c
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
( x, @+ w6 ^6 Y5 @6 |        .leds = da850_evm_tl_leds,! ~" s& E  l8 H$ c. `; u3 t' d
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
2 {# u4 S) _- q! t};
" _- F5 Q9 I# W' @+ L0 n+ i4 {0 u. x
static void led_dev_release(struct device *dev)
- ]& S+ e! `* B, [{
$ E# w: v) B1 Q9 T6 y# F6 \( ^% K};
3 a9 q3 p% i8 j" t2 J6 X
6 T6 G+ ^8 |- n. i! Sstatic struct platform_device da850_evm_tl_leds_device = {
! m* k3 N% g' ?' o% v/ X        .name                = "leds-gpio",
) J( t) ^' q: ^( y        .id                = 1,
; \  H! K, g" V5 \& y        .dev = {5 `0 H+ A* {9 u! }. R
                .platform_data = &da850_evm_tl_leds_pdata,  B" P- b( Y5 i! H( a
                .release = led_dev_release,; [3 [$ R6 b  x& v0 |
        }, }: ?9 R# c7 E- M9 r0 n# c
};
( n+ e  ?8 d* F: F3 O/ F- A, P
# E) s: O) I# vstatic int __init led_platform_init(void)
- h) I0 U# j5 m8 G# ^8 U# Q{
7 c5 v: d# A  B        int ret;0 P  Y* G7 c8 t9 F: o5 f# u9 K  E
#if 01 u& U. a' x- I* W! j
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);5 B2 t6 j8 N, J3 Z5 \' b6 t0 k/ S
        if (ret)
5 R# W1 `) G3 _% G7 n1 q                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"" [  X0 V! S3 K) q: v- y7 _: V% D* r
                                "%d\n", ret);6 X4 W: x$ w& C5 n% S7 p8 K
#endif
* H3 z& P. ]  P/ C7 ~# f        ret = platform_device_register(&da850_evm_tl_leds_device);
* o( a5 o6 V* F  ]        if (ret)- N8 }$ V  e$ p# M1 x4 x
                pr_warning("Could not register som GPIO expander LEDS");
, A: j; U0 @. ?0 {8 @        else
: x4 V7 b# T* _% q% N5 Q                printk(KERN_INFO "LED register sucessful!\n");$ n  m% F' }- ~, c7 Q3 x& k* B' x

" L6 j. C+ q# A& d, A        return ret;3 M, k6 p; |& @7 y- i
}2 O7 Y* H% h' S5 I' k/ }* k) J9 C; \
+ b! y/ ?- `  g0 V
static void __exit led_platform_exit(void)
2 j7 ?& C& y; F' w& J5 {{7 t: Y# j) J7 m8 ~- h
        platform_device_unregister(&da850_evm_tl_leds_device);
  H9 E. {2 l( l* n) e4 r/ y$ P6 f# p# ^2 g+ S
        printk(KERN_INFO "LED unregister!\n");0 g4 ~. P/ ~) g( t( O, e4 E- z
}
. B8 q# n% m' g/ H! v2 X- c. x
3 m5 H, b& Y5 q$ e* d" W, X7 ~2 dmodule_init(led_platform_init);
, X# v. c: v: `# t. }module_exit(led_platform_exit);
0 o9 Q: u3 ]3 w( b$ i  ?0 ]- |& t7 C  x
MODULE_DESCRIPTION("Led platform driver");
# M8 B3 S, A2 z! xMODULE_AUTHOR("Tronlong");( h) m4 Y& L9 H7 J$ r1 Y
MODULE_LICENSE("GPL");/ L* X0 \' c- @3 e+ B
1 Q5 i2 c3 [8 Z/ F. y1 D7 A4 N, }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-7-22 10:03 , Processed in 0.046165 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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