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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 Q0 e7 S: r# V0 U: Y% ]#include <linux/init.h>
: x% I6 J+ ]; G, O; |, ^#include <linux/module.h>
( Q; D( ?1 l9 M9 W#include <linux/kernel.h>
1 g* P/ f1 W( b: ^! |* r# R#include <linux/types.h>
2 o6 N  ~# X$ k/ l: T3 K#include <linux/gpio.h>4 \! r* Q9 c5 s8 o$ Q
#include <linux/leds.h>
- a5 |) b* y1 H: c% l( }  ^% d# m#include <linux/platform_device.h>% M2 P6 V, r% u- F

( M# R5 J/ Y9 m$ l( `#include <asm/mach-types.h>" l3 [) h  ~9 K( H
#include <asm/mach/arch.h>" G8 j7 r4 V2 S# X5 {# C/ t$ V
#include <mach/da8xx.h>* z8 b2 b+ [2 B, Q4 y  a; ?7 }
#include <mach/mux.h>" j' u" u) ~9 I8 }

  ^) |: Q8 [9 X9 @( t1 }#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)" S. e0 ^' Q& x7 M7 _% O
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)% u# ~* U% m' L! Q
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)& |# h+ a% S( A5 j5 r, w: K, o4 m
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
3 ~% Z  E% E, J0 ~9 W0 n( z3 j' U1 r, T- {
/* assign the tl som board LED-GPIOs*/; C& f: o- w& j0 {2 e& x" J
static const short da850_evm_tl_user_led_pins[] = {( a& }" m1 Z" C4 B& o4 I, O
        /* These pins are definition at <mach/mux.h> file */
4 ~! a3 i- o2 Y* n1 g( A3 y9 }6 W        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
0 N. p; s" U$ A) ^- H( O        -13 P7 o% G5 J1 x6 Q! F
};& X9 V+ _* x2 B* i0 J+ h0 C
5 {$ D/ d+ {. y* X4 T
static struct gpio_led da850_evm_tl_leds[] = {7 Z% h- h. [* S' ^- u2 P
        {) h1 o1 U% N$ K& f+ m3 U
                .active_low = 0,# X7 c5 p' g* ~* B, X# f( r5 C
                .gpio = DA850_USER_LED0,
5 Y0 ~& Y, L) m( E! [                .name = "user_led0",8 [7 W; W! `/ S! G' A* D
                .default_trigger = "default-on",
8 f$ P" i- |; E' R% N        },; s8 S9 J: b1 \; F. T) j
        {) R! G. o  [) @/ m! C
                .active_low = 0,, Q. w3 O6 m# K# J
                .gpio = DA850_USER_LED1,
3 A0 E4 k) n4 E& _. n: N0 P                .name = "user_led1",* i6 P/ P+ [, }; z
                .default_trigger = "default-on",
# b+ ?0 w; m+ N% y& ?4 `# x        },6 a2 Q% q7 d/ a6 m2 `! s
        {* F5 P; l! D/ ~: G/ M
                .active_low = 0,1 r8 O2 E' X- M. L; W
                .gpio = DA850_USER_LED2,
2 f, n5 n" O' k2 v6 U0 b                .name = "user_led2",
. P( Q3 [+ B/ z6 Q+ d- f9 r                .default_trigger = "default-on",* b4 w+ |/ R7 O7 e3 s: o8 y
        },
3 p7 |" t3 G, ?) I  R7 J# |        {
" G* y4 |4 P+ _, y3 a                .active_low = 0,
& C. {2 T6 l1 Z0 q                .gpio = DA850_USER_LED3,+ g0 m4 [  J. G5 B& ]1 z0 z
                .name = "user_led3",, [! m! Q% w3 C+ V2 j% v
                .default_trigger = "default-on",
/ ?3 q5 v$ C0 k% t+ [7 U        },3 H) w5 n/ L' b! H7 b
};
" e4 o" }, n1 F, p. y$ j
3 n' @7 j+ }, X6 g( i5 T% G; m4 J* G' \static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {0 o$ Z8 ?4 q- z8 Q; L) y
        .leds = da850_evm_tl_leds,/ e% n8 n# V+ P# o! P) Y5 Z: c5 ?
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 }$ T  X6 g7 T. S1 j. o
};
0 M0 ]% U( o' S" ~. D& G2 t3 o, J/ t! F. j7 h  F3 `" C7 t( }
static void led_dev_release(struct device *dev)/ G# E! S3 `5 Q* x9 o" e
{
/ G& w# E0 y. |: _};% g; r; N) P# o) W! y
' P1 V# c) e* \1 K" Y: N  ?" S: j
static struct platform_device da850_evm_tl_leds_device = {
) W* `% O* A# }! q        .name                = "leds-gpio",! V4 d  f2 c( v' Q7 e6 ]8 a
        .id                = 1,
* V# i, l5 X2 _' W- p& O0 a- U. P        .dev = {
) _1 w: S" W6 h' h/ \0 W6 I                .platform_data = &da850_evm_tl_leds_pdata,1 w0 E) s0 U! j; r' q2 T
                .release = led_dev_release,
+ M4 l' K& X6 S4 k/ o        }
3 Y: f/ `. N- m$ x};
. K. S% |$ R+ o' u
# r$ F% U7 n! ]3 Q4 o! bstatic int __init led_platform_init(void)+ X+ _  ^1 `- d/ b+ Y
{( v- `/ h/ i2 W) _5 h
        int ret;- ^* s3 d5 q8 T0 _5 W* s
#if 0% f3 S7 w8 ^; ^- A
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);$ b: m) w) Z0 n# r1 h9 B2 F
        if (ret)
! F) L4 K; u5 w$ N                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
8 c8 }3 p  o* N  {, y                                "%d\n", ret);
0 y  P& W) S- @- Q: ^#endif$ O& V; D' q; j5 x: v6 N9 S! v
        ret = platform_device_register(&da850_evm_tl_leds_device);9 `/ s- o; |9 H
        if (ret), l9 u1 h" D* [+ Q
                pr_warning("Could not register som GPIO expander LEDS");
' L4 {/ X+ B) _5 ?        else
& Y1 r$ D' V9 u" N                printk(KERN_INFO "LED register sucessful!\n");8 D) r5 U. y6 g& x  i3 K
/ E6 N6 r6 [8 m3 i
        return ret;2 c: V$ k" u$ T% m" Z+ j, J8 n
}
4 }  c. v1 q4 v/ X3 B! g1 r
6 D" N; d: O1 a( mstatic void __exit led_platform_exit(void)% x* _2 T+ ^' I. z/ {! F  X
{1 {, r' W+ i! [, o& K
        platform_device_unregister(&da850_evm_tl_leds_device);
" x4 H% K: {: N
$ o$ b9 b) U/ V) c$ ^. A: h5 Y        printk(KERN_INFO "LED unregister!\n");
- h: v% f" E0 p9 s6 w# z}% E0 }& B3 q# h* y' i+ p* v  S1 T, S; p
! W  {* D: `( n
module_init(led_platform_init);
' I4 n9 ]- [/ }# u- V" Rmodule_exit(led_platform_exit);- Z1 V$ ^9 N: M

" V& M8 x9 _* R) U* `8 f7 HMODULE_DESCRIPTION("Led platform driver");
% N$ A, n- }2 s7 pMODULE_AUTHOR("Tronlong");
1 Z. q8 x: [) {9 d4 HMODULE_LICENSE("GPL");( y) g& M2 ^& m$ N

. R: a* s) ?$ u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-28 16:12 , Processed in 0.046319 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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