程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。! R! M0 S, p( S. z4 V7 l
#include <linux/init.h>
( U8 L' |7 Z% @5 C3 Q) U, n#include <linux/module.h>
& A" z  K# ]3 U7 G/ T6 f" }#include <linux/kernel.h>0 _3 m* M- D. [$ j1 @/ o
#include <linux/types.h>% ?& f3 k+ g" w# L' L
#include <linux/gpio.h>
5 Q# O" [' t& H#include <linux/leds.h>
" u! Z: ~6 \, B6 @, {#include <linux/platform_device.h>
  ]7 L6 O* S4 N: w4 E5 O5 _1 {& G& K7 H9 H2 R
#include <asm/mach-types.h>
- D" C: M4 M( \9 T; p#include <asm/mach/arch.h>* }) k/ X  P6 W' b8 F0 k
#include <mach/da8xx.h>
+ e" _" p4 K5 N  `$ F2 q" n# Z#include <mach/mux.h>5 w; v# ?; g1 c: g* H+ D4 ^' |

6 ^- X( n8 S% E% G& F% u1 j' M#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)/ v* T0 c! {: }7 P, B
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)" d6 [7 y1 q$ x$ T$ X8 A* X
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)! C9 G. E" ]% i" j; \$ `5 ]# ~
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)8 E3 w, B$ |# _, N+ k- d: k% n

, S. @: p. I6 c( e; I7 a/* assign the tl som board LED-GPIOs*/5 T# s) ^+ ^9 P3 F  Y, i2 ^
static const short da850_evm_tl_user_led_pins[] = {" @! v' J9 ?  w, e5 K9 U7 V/ L
        /* These pins are definition at <mach/mux.h> file */
) [/ F. O: R) @        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
4 t/ V0 h0 q& k        -1, x7 l: n, o; D3 J5 t! C$ x5 L3 e8 N
};% T; u- r+ O4 i; d
( c: C( N3 e" [" N% q0 O
static struct gpio_led da850_evm_tl_leds[] = {
  n( r# A4 U/ O) h        {+ n9 q2 E) l6 L: O
                .active_low = 0,7 ~4 ~- y# M6 d# i
                .gpio = DA850_USER_LED0,
1 C& x1 p* b( S) C( B( D                .name = "user_led0",
, }' O8 }4 r2 W: \                .default_trigger = "default-on",
, |  a* u: K$ y- t, `& z( J4 j        },
5 I; t  d8 c: z+ e5 `0 O2 k7 t        {  y: e7 T. @! m2 p& [6 R
                .active_low = 0,
: I5 X3 B# G1 k, H' o+ s) a7 j( J3 M                .gpio = DA850_USER_LED1,
( Z" @  o' `: D  Q/ Q                .name = "user_led1",* ]$ q1 j, y$ U
                .default_trigger = "default-on",5 ^5 h, e8 ^' c) w3 s
        },
  I# C0 i5 _. A  `  c        {
0 z# Z3 s. Q& @) Y( @' J                .active_low = 0,
( S/ f% i7 y( ^- y1 a1 G# c) `                .gpio = DA850_USER_LED2,% |/ Y; c1 A4 D6 D; [- d
                .name = "user_led2",+ u" X+ J3 M7 ?# r1 l  D5 x
                .default_trigger = "default-on",
( j, U8 d" F  Q        },' ^2 j) P- D% X' n" q
        {
0 \4 I' c$ G1 O                .active_low = 0,) `8 @5 \9 n, I; x7 w% @" Z5 V$ W
                .gpio = DA850_USER_LED3,0 o; ~. @# t: p7 ~/ d
                .name = "user_led3",
" C; e( r0 f; }5 `, x! Y                .default_trigger = "default-on",; r: M! a: Z: D" W" j+ i
        },- d+ j$ I" e9 m/ j/ D; p: I
};
% D* d+ x" S8 S) g% U
9 h- Q$ O% v  z2 J% }static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' P0 ^, q: X1 W& D, B; S8 n
        .leds = da850_evm_tl_leds,: ]+ x  J3 W/ u+ l
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) H( T/ h" b% g9 w};
' H9 e' z1 |% K& f" G0 e' Z/ Y; k7 L( K& f2 T
static void led_dev_release(struct device *dev)" {6 u. {4 P5 b- O- a4 J2 u  g
{
, J/ p0 z; Z/ {  o$ r' G7 \3 w7 k};) T* R+ W/ R  Y
! K: w8 x  a! }% h* r
static struct platform_device da850_evm_tl_leds_device = {
/ `1 p" z& {: e. E        .name                = "leds-gpio",2 k8 z# O! [7 {; i5 ^; S7 `4 z
        .id                = 1,
) D" v4 w1 W4 b, i/ q$ ?& s9 p& s        .dev = {/ d: B& ]+ n" W  k( V  @. y
                .platform_data = &da850_evm_tl_leds_pdata,
3 A/ Z" s1 E3 [" P                .release = led_dev_release,5 I# e* O. K" Z4 b8 o4 i
        }1 G8 G1 J8 m- j$ f9 C
};
  h6 @/ u7 Y+ n5 h, J% m$ Q' ]: U
- z: {0 A5 M9 P; _  l  x( Ustatic int __init led_platform_init(void)8 N' u- q" s$ L, ~0 v
{% G+ |1 r% q7 e/ ]" r
        int ret;
" d3 _) q# J1 E! p) i#if 0' o$ C! R: d; G* w9 K& W/ M
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);. J2 U+ G% F7 K! w: S" A- I
        if (ret)$ }+ N3 K9 [/ Y. L1 e) ~7 ~. [
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
! k9 N/ N4 u5 t% H8 j                                "%d\n", ret);  @" e; b; A/ s+ }1 @
#endif8 W+ B5 w4 S7 G2 N* u% T
        ret = platform_device_register(&da850_evm_tl_leds_device);
8 h) p: r+ L% k8 F# |        if (ret)
0 q7 s1 h' n, E) q" M" u! @                pr_warning("Could not register som GPIO expander LEDS");4 q5 e% g& I8 T4 {; f
        else
9 f& v2 [& N+ g! z6 {                printk(KERN_INFO "LED register sucessful!\n");# W: e. D5 L0 \+ ?" D
& _  n  s8 L1 k2 Y
        return ret;$ {7 }: t: i, e" t' j: O; q
}
9 k/ d4 ]" [& T/ x9 j5 ~+ Q( u
1 X3 E4 o2 w, ^6 |5 H8 L( `static void __exit led_platform_exit(void)
6 |  H+ T$ |" ?( y{* \# i0 \) N0 `6 n
        platform_device_unregister(&da850_evm_tl_leds_device);' j9 ^# v0 }7 }4 c4 K! V* v) x

5 P5 {' V8 h3 N1 a! q0 Y        printk(KERN_INFO "LED unregister!\n");
3 d+ k' s; Z( K& T5 ?' v}3 E( C' Z0 G5 j# P* u7 ~

3 H6 c  c2 o1 c5 g- imodule_init(led_platform_init);7 B. {9 {1 H( v: y& \5 D9 }
module_exit(led_platform_exit);6 I2 ~1 U0 i( n  H

* \, P" _7 d8 z+ R6 EMODULE_DESCRIPTION("Led platform driver");
9 K5 o  q' \! C5 ]# k. h# \5 UMODULE_AUTHOR("Tronlong");  W8 t4 q3 @& ?' m
MODULE_LICENSE("GPL");( M( O: g3 e: O) h) V( O. U

: c! R* m2 g, @" K: M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-2 11:07 , Processed in 0.039241 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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