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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。, w; B% l+ V' b6 |
#include <linux/init.h>
+ t9 m3 X  A  N$ W#include <linux/module.h>2 L. Q, D  u9 L8 T5 x
#include <linux/kernel.h>
# k% U( q9 q2 ~8 e6 Y) z. k" A#include <linux/types.h>2 j9 I/ e1 B3 G
#include <linux/gpio.h>4 m! |2 U. ^6 c0 n$ o; u4 K* F
#include <linux/leds.h>
$ p; F. r: w6 _. Y! ~0 h% g9 e9 e#include <linux/platform_device.h>% h  q+ D$ {* e5 c: d$ S/ [

* \5 K- r5 t3 R8 F+ z. `; S#include <asm/mach-types.h>
1 I/ R4 U8 C- M, I# v#include <asm/mach/arch.h>, [- r) t3 k# z$ F6 V9 A+ S4 y9 e
#include <mach/da8xx.h>3 `  R1 B3 A5 g; O6 Z1 j8 i7 p' n: V
#include <mach/mux.h>* B$ M/ [% t& t+ B
- r& s, R. m4 D+ f5 t) t/ }
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
" j% _; |! K3 d) c' p/ W% I#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
3 b5 q' |1 G8 Y+ N- z1 ?5 Z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ R5 `2 n& m# m#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
, f* j+ l% B3 @) ~! Z
+ x6 s6 B5 d8 N' w+ x& }/ a2 l/* assign the tl som board LED-GPIOs*/
3 m  c8 z% v$ E8 E4 z& G2 B5 lstatic const short da850_evm_tl_user_led_pins[] = {
! t7 `$ X3 Y; o( M9 |        /* These pins are definition at <mach/mux.h> file */$ W6 s' y: x% E
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,! H7 o1 A, A: L6 Z5 j* J6 \0 t
        -10 x  v" \3 S1 b' T- s
};
7 Z. k  n: Z) Y/ }0 ~- }9 ?" Z8 |$ k1 q; _  i
static struct gpio_led da850_evm_tl_leds[] = {7 z4 {% Y. d& q# P+ h- m0 t
        {
9 _9 [3 h3 v" v# H5 X: G2 T$ D                .active_low = 0,* Z: V5 J& }: [
                .gpio = DA850_USER_LED0,; y& P1 B4 W1 g
                .name = "user_led0",( j$ h; {1 N. t2 W" k: X
                .default_trigger = "default-on",- C5 y$ P2 t6 H
        },6 d9 j* b7 e. z/ b+ k/ ?
        {
2 m$ F' k0 T' s0 Y                .active_low = 0,1 U% U  G- d" X$ H0 r
                .gpio = DA850_USER_LED1,/ k/ I% m* T4 \
                .name = "user_led1",
+ ]) @$ x3 a7 [                .default_trigger = "default-on",# _- [6 Q7 a$ F( N# }
        },; k4 {' v, x2 i- T9 V# J* z* i
        {
2 ?- C' t9 r: s6 ?0 w                .active_low = 0,& E8 d4 j8 @' t) S
                .gpio = DA850_USER_LED2,; h3 ]8 i" h( \1 _
                .name = "user_led2",1 `4 e. E; z* t* X) u" v
                .default_trigger = "default-on",
- b3 S9 y' ~2 w" D. y        },
# L& R5 V$ e7 K  u" i/ p        {
4 t) x" _* B: ?9 T+ E# r6 b                .active_low = 0,
/ l8 u7 J$ c# ]/ J, F( O. o                .gpio = DA850_USER_LED3,7 x: b5 j' d+ C4 R0 e0 A: E6 S* h
                .name = "user_led3",$ `; C3 s/ V. K  Z
                .default_trigger = "default-on",: e6 O  [/ Y" N8 L) Y
        },
' b. x# y. ~/ a};
& |; F8 ~; ~) W/ `& \6 e0 n5 a$ c3 P% g6 w5 k2 B* J" l, d: {
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
3 D* l! K) p) S! _9 ?& D  S        .leds = da850_evm_tl_leds,
7 I  m$ W. C/ `        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),; ?3 B0 G! L4 ]6 P& Q. w0 K2 _
};! J8 L! S: Z- u6 y

/ F5 v& J$ K) I/ f5 q* O7 Tstatic void led_dev_release(struct device *dev)" I3 m# Y& g2 }; |+ l# B
{
* _7 q1 `7 ?  y- G};8 I* Q) P  x% i, J: {- z* r

  s, b& B. [: p$ @9 T$ Pstatic struct platform_device da850_evm_tl_leds_device = {
  ~) U9 {3 @7 e2 L        .name                = "leds-gpio",
, y5 a# i6 ^3 Z0 q. l" P3 v        .id                = 1,8 _# [' \1 m, I8 x: w
        .dev = {4 `0 i; n" v) j# F' s5 M. b
                .platform_data = &da850_evm_tl_leds_pdata,6 [+ p. q& Q# v8 W9 B
                .release = led_dev_release,
* Y' y/ J3 s3 C. f8 w7 s        }
# u& `9 o" r0 j; V, }! |9 U};
5 j6 d+ o& f% [
4 W2 j( y7 t( W" O: jstatic int __init led_platform_init(void)
3 J* s1 {% e4 J{
- Q1 m4 }4 ^* s  T$ F$ G% q        int ret;" N' W& ]9 H+ w* Q3 y
#if 0
* j% v/ }# D( I# r        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);. X; X4 z* N) V! h. q+ |
        if (ret)2 O& s/ K1 a. P, G% k! X. r
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"0 p# i3 @! F% c; H  P: |! h% t5 ~
                                "%d\n", ret);# Q. q5 J  P, @) I, N
#endif( o" B1 e2 L0 D* Z
        ret = platform_device_register(&da850_evm_tl_leds_device);7 H7 d# [$ ?' v1 _( _# F
        if (ret)
, Z0 `! [4 n  C5 t  Y, f) V4 q# y                pr_warning("Could not register som GPIO expander LEDS");( @; K! N/ H2 G  b7 r- n
        else
7 Y( j5 u8 D+ s& L                printk(KERN_INFO "LED register sucessful!\n");
1 {3 O+ b& U( R5 [0 q
" _5 o, ]# p3 D& ~, `        return ret;# u5 d6 T& F& }
}1 j! L' j2 [4 @/ s0 ?5 ?9 ]

! g  u4 l$ @* V  t) h, ]& astatic void __exit led_platform_exit(void)5 T5 Y$ o/ W/ j$ m. p4 h9 t! a
{* A5 W2 t' @' Q- b$ R, P
        platform_device_unregister(&da850_evm_tl_leds_device);2 {# l& [- g) u; [& G- z7 J
5 }, i% I/ W# U$ b. z
        printk(KERN_INFO "LED unregister!\n");
, j3 W7 Z8 n  E& \3 _}* k7 Y+ C2 d( x+ G# c6 n# Y, `& E2 f
/ f8 g$ @- E. {4 u; p9 R
module_init(led_platform_init);
- o$ ]. j$ Z3 Gmodule_exit(led_platform_exit);; `2 d  ~. N, s6 W% C5 D

5 M% F# e+ r9 H$ B" ]% I) gMODULE_DESCRIPTION("Led platform driver");' M" r) M; q) L5 N2 b1 o* n
MODULE_AUTHOR("Tronlong");
0 ?/ Q8 ?* h. B) Y0 ]6 p/ KMODULE_LICENSE("GPL");
) K7 |- f, o1 g9 H. f
( Q/ B; _! B4 s0 M) |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-14 18:43 , Processed in 0.040159 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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