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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 s5 a4 g1 E9 Z0 @. N$ t2 S, _$ S
#include <linux/init.h>6 G6 v6 a- ]) T, r
#include <linux/module.h>
( D6 z8 ?) ~) R#include <linux/kernel.h>7 R& O0 D) g0 H0 V# L/ F
#include <linux/types.h>& g7 {6 X; ^# a8 e- |8 J) K
#include <linux/gpio.h>
, ^; Y- @( v7 ?9 N' u3 A#include <linux/leds.h>9 z6 u8 P( w# G2 p  Z* ]9 K7 N
#include <linux/platform_device.h>; K1 B) `) ]9 G  `; K4 S

" `' b, a' {' B4 m0 A2 n#include <asm/mach-types.h>
5 t" G7 s% n# P( B4 Q' z#include <asm/mach/arch.h>+ G9 g- r* t4 O
#include <mach/da8xx.h>
/ z4 F; Z: Z9 `, I# h- F1 Q9 C#include <mach/mux.h>, I7 X$ @: U0 ?- Q) X% e4 P  P
( K& c" f% O* z$ ~$ x& T# g
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 A2 B- k4 a+ C#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" n7 g* {) b* T3 G" X#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
+ j9 \: ?  L5 P) X: f+ U/ _#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
) I/ |' T$ d7 U2 t$ K+ w
& Y$ X: V; L8 t& @. D/* assign the tl som board LED-GPIOs*/" ~" d0 j( X" \1 \- R
static const short da850_evm_tl_user_led_pins[] = {; r5 W" D1 z( S3 U% i! l/ p$ T- U
        /* These pins are definition at <mach/mux.h> file */
+ H5 ^) ^/ V* q  d4 _5 P        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
: F8 o# M5 m( }( q        -1
% q8 w/ c* p: ?; i. g5 X};8 p5 M6 y  K1 }: s. J4 l) d

# c. L7 `1 V, |; ~static struct gpio_led da850_evm_tl_leds[] = {
  n; Y8 M- h; G) s  a2 X        {
! w" D7 o: c) {                .active_low = 0,
$ N; T9 h! F/ H                .gpio = DA850_USER_LED0,
3 M& }" t& z, K, L2 o# K                .name = "user_led0",
( H7 W+ ]1 j. L                .default_trigger = "default-on",
4 X4 g" y! _  w1 r        },* u% s% q1 r9 V6 L/ M
        {1 l# o; p' A: e! H! n* g
                .active_low = 0,
+ Q) E3 S" ]) s: X                .gpio = DA850_USER_LED1,
8 U# ]+ q( r8 Q; d$ Y. {                .name = "user_led1",; f, y2 p# I6 Z, w: M$ z0 C
                .default_trigger = "default-on",
# T5 F$ Q0 [/ m; k% j        },( k/ P& |0 x4 _0 H/ ?" y4 P, A, ^( e
        {
* i3 N) B7 Y. i0 s                .active_low = 0,
- ?$ D. m+ X, s$ W0 j" G                .gpio = DA850_USER_LED2,- F2 U" D1 A7 F
                .name = "user_led2",0 z' T. p5 P+ s2 D* B
                .default_trigger = "default-on",' a% n' r2 }+ J3 O7 @
        },; m# O, L+ ^3 E2 J2 ~
        {
( E/ u; U) C2 ~; r" W! G6 \  d                .active_low = 0,3 s7 L9 Z4 y0 t! N& i
                .gpio = DA850_USER_LED3,
( b" J& r. R  }+ r, J                .name = "user_led3",
; `. _& @+ p+ d: T5 [9 i                .default_trigger = "default-on",3 a  ?( o/ B; |* e$ Q# ~
        },
1 R# |4 F$ D: ~& \/ U; m};" r$ D. \4 o7 {6 D. ~5 ]$ S

5 w3 D: H2 J% u/ ustatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; T8 x7 m* F/ ]. k, u5 x        .leds = da850_evm_tl_leds," E3 l( s4 i, E1 K
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 K$ H0 |- ?7 q7 T3 l- o, j; d8 b
};
1 f7 @7 }* E& g  G2 P
, p+ O( P+ R# o( h7 T% Wstatic void led_dev_release(struct device *dev)
* n. b. o) Z" M( P0 }; D( c& g{
  A0 L. i, c" X4 U};. x2 m- w) T, w$ j- Y

( m9 e' `' x9 M  }static struct platform_device da850_evm_tl_leds_device = {
- d2 K6 ?5 U% j        .name                = "leds-gpio",
7 n5 U1 }3 b( \: {        .id                = 1,
  e4 L, E& N, j# p! x9 U/ Q        .dev = {
5 I! m: a- M3 M. I                .platform_data = &da850_evm_tl_leds_pdata,1 d& ]" `1 ^6 S+ `
                .release = led_dev_release,' i! t! P; D8 R
        }
1 \  q8 ^. z9 O" u9 q/ e/ L: d8 C};9 _' h, w. N# [6 N( ^7 a9 L
5 M! u  V/ U! V$ \" |
static int __init led_platform_init(void)
- V8 o+ {: A+ p- X{4 u. i; q. d+ D7 c, T3 u' ^
        int ret;! _3 v5 e% `/ y
#if 09 U5 L5 c# P; Z+ C# ~9 ]: i
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);+ h0 J" S. j+ E" F) a# p4 I
        if (ret)
9 L% k1 D8 N) C% A/ M                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% T; C/ n! f) _: `4 |                                "%d\n", ret);/ q; y/ I/ |  @9 i7 K. ~( u
#endif( s) {' E& J/ X8 E- Y  z
        ret = platform_device_register(&da850_evm_tl_leds_device);
1 x- B. Y1 x9 i) ~! L6 s( j+ V0 @        if (ret)
9 {, o% c$ w* _2 s9 q/ w. K                pr_warning("Could not register som GPIO expander LEDS");1 n7 P' U( Y/ O% V" c9 |" ~
        else7 m& Y! R* H  f
                printk(KERN_INFO "LED register sucessful!\n");, v0 b3 [& e* ?& |7 n+ M

1 O+ @7 h/ h4 e6 g8 p        return ret;4 S) w6 g5 s# T+ H3 k
}
0 x& U/ e& ]0 M* i6 I2 p  {
/ N( K" i. C1 ~6 E  Ustatic void __exit led_platform_exit(void)
& q* Q7 T7 W0 V3 M% x5 G$ [3 Y5 `+ z{4 p5 j: Z& a1 N6 d" X
        platform_device_unregister(&da850_evm_tl_leds_device);
& k1 K5 {( V6 o+ K- o4 a8 Z# z7 m/ O, g
        printk(KERN_INFO "LED unregister!\n");
4 O" Q7 T* A$ x- j5 v# b- l}% p* M7 l  _9 o+ }3 N; B" E

$ X/ x! k4 E( S. u. Lmodule_init(led_platform_init);
5 [' r2 F5 G" jmodule_exit(led_platform_exit);
+ f6 I/ |; N9 L7 h# e+ x  O4 s% a" }- @+ E
MODULE_DESCRIPTION("Led platform driver");0 ?6 Q( F4 r6 {
MODULE_AUTHOR("Tronlong");0 p& n' k5 O5 c$ C" a1 `
MODULE_LICENSE("GPL");% V, k( F+ ]; x& T2 Z* T" G

7 z: D  {  Y! i# K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-17 06:18 , Processed in 0.036758 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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