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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; H# i0 V  L/ w2 p  M% Q5 Z#include <linux/init.h>
3 e, R# ]  b6 V, ^1 q0 ]#include <linux/module.h>' {: c  N$ E. F2 D
#include <linux/kernel.h>
# T7 S% t8 ], j#include <linux/types.h>9 H$ T4 I7 K4 B7 X
#include <linux/gpio.h>
" ?9 @& }2 T- v; ~, y1 f; y5 Q#include <linux/leds.h>- L* q! y4 D* H6 c; a
#include <linux/platform_device.h>6 x1 C8 `# U& m! P! l- X4 B
  G2 A3 R! ]( v
#include <asm/mach-types.h>; Q5 R& ]0 A/ e' |: s, s  I5 t, B. Y
#include <asm/mach/arch.h>) D1 u6 x7 i/ m
#include <mach/da8xx.h>
6 B/ i: c  |7 z5 G3 Q" s8 c+ g3 W* D: J; x#include <mach/mux.h>
7 n  H8 u: F% a4 ]1 h2 R! T4 g, q; \7 L0 d0 u" W: g: V& ]4 Z) Y
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
" e$ ~8 L% X9 }4 a#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 W2 n$ x, H3 o( P$ [! |#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- ?9 c% W$ K8 l9 c( S5 f
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
8 a* Y1 y( X  j! ^# L3 Z6 c
3 ^9 L. n0 `. E7 ]- t5 d- C/* assign the tl som board LED-GPIOs*/
- D' [. {+ j: _5 istatic const short da850_evm_tl_user_led_pins[] = {
0 C# \: `3 q; \$ x" L        /* These pins are definition at <mach/mux.h> file */
6 H$ c) \7 o, s        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,) I; h4 h( W+ k* z% ]1 }
        -1  @  x2 s  c, E; h/ C
};
0 a8 d! @7 {! c' l
. t3 J3 L5 V& O. D! Ostatic struct gpio_led da850_evm_tl_leds[] = {0 S, e- H6 H. D, g: }! r
        {
, c9 \- K( W# D' @  O                .active_low = 0,
" b& _: F1 ^9 H% Z                .gpio = DA850_USER_LED0,0 S" v; ~, h/ F& v
                .name = "user_led0",
, g5 p7 @/ B/ e! |4 l& k                .default_trigger = "default-on",
8 i0 d, q1 ]/ O& I1 d        },0 p$ u/ Y" c; }$ X5 G3 U
        {5 s9 ~0 m4 e% N& r4 w. Y
                .active_low = 0,/ O& f1 {$ N; e. d% B  q+ x
                .gpio = DA850_USER_LED1,
7 G) r! q" z" M7 w                .name = "user_led1",+ {1 |; I7 Q2 F" I: G- U0 h9 ]
                .default_trigger = "default-on",9 f5 D! i6 t; O* Z
        },
: J# [0 G) y0 v/ [/ {8 O  ?/ o        {9 W) Z/ H1 m* |8 f
                .active_low = 0,
8 V# O# f8 U& }: N5 z                .gpio = DA850_USER_LED2,
- u6 a/ P. L( z8 p7 Z                .name = "user_led2",4 Z1 y  `" Q* U! t
                .default_trigger = "default-on",1 [+ `" W+ i) m
        },
5 b# W! D9 T: G( c. g        {% h; T; T& b9 e
                .active_low = 0,
1 }2 T9 A  w! S6 W                .gpio = DA850_USER_LED3,
4 I" s* _0 i) M! q5 J                .name = "user_led3",
& `1 c1 }$ o' w5 g' W" {2 ^7 e/ V                .default_trigger = "default-on",+ H" k) h7 w( R% w4 J$ @5 t3 ^2 H
        },2 m7 @8 I; c: F8 K
};
1 H* ^% g8 M) ^" P1 G4 U9 D, [
3 f. _+ Q; o" ^  |! }- o4 Tstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 ]' S. n6 f- t3 c* u* ~. R. v
        .leds = da850_evm_tl_leds,9 U0 g/ \8 u( u# @, t3 \
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
. Y8 S2 p! J  U5 ]: S% A. `};
3 d% ^1 Z  j- J) _- \
, F' o* ?4 \2 v3 Tstatic void led_dev_release(struct device *dev)
/ l0 o  [# P* {{
, @$ P% O$ \/ Z& _7 I9 g0 C7 C};0 i6 H. [! \/ e9 K

* I  \" m! m4 I. istatic struct platform_device da850_evm_tl_leds_device = {
- _& P/ l, i! E" V        .name                = "leds-gpio",) q0 Q& I2 N8 l# P# I
        .id                = 1,$ d$ [& @/ f/ P: H( i
        .dev = {4 J' l- h+ ~; f5 v! R& E2 l- }
                .platform_data = &da850_evm_tl_leds_pdata,
7 L4 L' z7 w5 j% g) ~* I+ Q% Y0 a                .release = led_dev_release,
$ h- d" t9 E3 y        }
/ y0 L+ b: |: T5 u$ s: x/ z};% Y5 O2 ]4 ~0 @
0 Y1 D( f# @6 }$ n6 k
static int __init led_platform_init(void)
, x3 A, T  B& a  u3 z4 X$ l{6 V0 O; Q* H: D6 q$ y
        int ret;3 C5 _; b/ P8 L+ v
#if 0
- B0 H! w3 }7 p9 y        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
9 m: z3 @9 Y  u0 S5 H/ e        if (ret)
8 w' g0 D9 Y: S                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% ?3 X9 Z% r! W4 s( L" N9 z8 \; l                                "%d\n", ret);! F+ W+ l( ?7 I9 K/ y
#endif( s; i2 c4 ?6 ~: ~; c
        ret = platform_device_register(&da850_evm_tl_leds_device);
, x$ H5 I2 K3 Z        if (ret)9 r+ v$ F! N6 `3 _& ~8 F1 P% f/ `
                pr_warning("Could not register som GPIO expander LEDS");3 B* U' Z2 C8 v
        else
6 R7 Q5 g+ C$ V5 ]) ^5 S                printk(KERN_INFO "LED register sucessful!\n");5 i1 M8 N% r4 L9 v9 `7 o7 m4 _

1 q* Q2 f4 o- n/ `+ {9 Z  U' k- q  g        return ret;+ x- c2 F+ \, u$ b* Z9 ?- U, B
}
7 D, h7 n8 Z) y' `+ H+ _
( `7 |7 Z# k  f8 Y( [. T" c2 S  ], _7 Cstatic void __exit led_platform_exit(void)
: r* M1 X0 A" X' k' h{# [4 \" R# V; b1 U* ]
        platform_device_unregister(&da850_evm_tl_leds_device);+ f/ q9 X9 K5 v- C, @9 `" k
& v, a+ W2 I& Z" L9 E
        printk(KERN_INFO "LED unregister!\n");
* d3 i- Y9 V9 ]: A1 m}
! T. l+ J1 U8 A4 j6 ]  `, B
0 Y4 H7 i  \9 ]& x$ p6 _: Nmodule_init(led_platform_init);
+ p$ {3 o5 ^9 K# zmodule_exit(led_platform_exit);
& u$ O9 i+ j1 }$ j  r- ^9 o. g
7 t! e6 A4 N5 C1 C* o# @MODULE_DESCRIPTION("Led platform driver");7 G$ x  w5 A# m* [( w& Z! H
MODULE_AUTHOR("Tronlong");
  E( ]4 S! i* d- B" n1 sMODULE_LICENSE("GPL");! L# H4 O: w2 y4 \! Z" H' n( {

# c; h3 ~2 Q5 b+ {1 K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-22 06:52 , Processed in 0.040991 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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