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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。5 y  f5 ~" |+ k: }" P, t
#include <linux/init.h>' A- y  ]: T, J. T% R! |
#include <linux/module.h>- G7 [$ A! r4 j( s- I
#include <linux/kernel.h>+ @! K: V& C) R5 ]$ X- S9 z
#include <linux/types.h>
+ H# H7 i1 k4 o% Z#include <linux/gpio.h>  e. b; S6 R  {: I3 f3 t) X
#include <linux/leds.h>  y( R3 a& |' m4 }  V! r: N& T
#include <linux/platform_device.h>
6 K" R9 j- v0 u& ~; f8 e) _9 {6 o; l
/ h$ N" l4 ]' V  T8 d' _; O#include <asm/mach-types.h>; N0 O# b1 S8 d
#include <asm/mach/arch.h># V) l- M& n+ h7 o7 e% F4 i& M' ^
#include <mach/da8xx.h>
. H" c7 M4 T- U+ ?  J% h6 N, Z#include <mach/mux.h>
3 ?& n( Z+ @/ @- e" l
7 G8 ]+ l8 @% T  A5 T4 K: k#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)8 l. {$ [# U- x: s) M8 b4 [
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
5 i2 }( h8 Q( Z. V$ H2 @- O4 f#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 h4 S6 r% m; H#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)7 X  L9 F9 D( h% t

7 A) A9 a7 `# w- l# s/* assign the tl som board LED-GPIOs*/1 b$ D- x, H% E
static const short da850_evm_tl_user_led_pins[] = {
3 e1 L- w6 b; v( w        /* These pins are definition at <mach/mux.h> file */* a: s, `3 V+ Z. p
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,: I% _( D4 d3 w7 q& ^( U3 C0 N% T* G
        -12 J! `9 B1 z5 p( K" N
};
. Z) e; }4 ?9 ?  G; Y: \1 G+ V. b. S4 k
static struct gpio_led da850_evm_tl_leds[] = {# y/ N, n, }7 f
        {' j: E& T+ l- K$ u
                .active_low = 0,( E3 U# F  C4 s* T
                .gpio = DA850_USER_LED0,
9 T  g$ E4 Z9 M. ]7 J# H+ o  q8 {+ J                .name = "user_led0",
# O7 y( Y+ ?& @( O7 B# E4 q                .default_trigger = "default-on",
1 ~" H+ j0 ?2 U. D+ _        },
8 A7 n- h$ A7 I0 Y0 S        {
- O- O! l; v+ k$ v. g2 r; e                .active_low = 0,
$ H4 v' n/ D* h. Y+ Z! D                .gpio = DA850_USER_LED1,
& H& P) f+ T! ?$ j$ z                .name = "user_led1",- g+ s3 I# x3 T$ b/ S& h
                .default_trigger = "default-on",# X  n5 G$ ]  _) p  J/ M
        },- V4 I6 t, k5 e6 m! l
        {% {! E6 r% [0 `% V
                .active_low = 0,
7 J5 ^" V% \( ?$ Z                .gpio = DA850_USER_LED2,
8 ]1 N6 u7 ]; \8 I                .name = "user_led2",
6 d" `  @' m4 p& e                .default_trigger = "default-on",
0 r7 |- y/ E: b4 [& @6 v        },
" u* F/ G/ ^# ~7 b1 B        {
# ~6 ]' _  e) l9 p7 q/ T- C1 s1 h  R                .active_low = 0,
1 n' [- H' Y# E# u& b                .gpio = DA850_USER_LED3,
! M( f5 o  P7 G" V                .name = "user_led3",
, v/ z6 d* t- d6 }7 D" B                .default_trigger = "default-on",' X0 Y# j* E# \6 `4 J
        },
$ y* J2 [/ D1 D, l. A};
2 G/ u% h1 f! O; I, p  K& @3 m# s5 w9 S1 H% S& N: |
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
) D$ B, K5 [3 a) k- w7 @/ y2 s        .leds = da850_evm_tl_leds,9 R/ n5 ^7 `+ V; P) q
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) P) z* b, X0 p6 n6 K% Z# s5 k" v};
' G! V9 n! H/ B4 F5 f) W
$ a: e* P+ P. u4 E1 rstatic void led_dev_release(struct device *dev)
& w. t+ Q' [; ^0 G{) j6 I  y! i: T0 x* S. _
};
  w; [2 m1 x( V+ B* |0 _5 j9 n2 d$ y+ \% N$ h! t
static struct platform_device da850_evm_tl_leds_device = {0 S( J7 y1 U$ L% K5 m0 m& A
        .name                = "leds-gpio",
5 j9 H5 x- Q( {4 X        .id                = 1,
, s; M( S8 ?% m) u7 \4 M5 H) J        .dev = {
( E+ |2 x% K0 |. y: p0 e                .platform_data = &da850_evm_tl_leds_pdata,: X% y. o% E" j6 b- Y/ g+ N
                .release = led_dev_release,9 [, [8 s$ s, F( a
        }
: i1 q* {" s0 e( _- `. a- g};4 h/ z- U! c9 g/ q* O" l

: V2 H  b' N0 N6 Mstatic int __init led_platform_init(void), B1 S% B9 N* S( S
{
4 I- |% L9 o! e! {9 }* b        int ret;' U8 h5 _1 O7 W
#if 04 Z  K1 [2 m0 G5 Z+ A- ?
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( G8 x( i; K0 n* d        if (ret)4 H) ]6 i0 Y1 `2 w% G( I7 q
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
8 m8 J1 [' Y3 j) s" H                                "%d\n", ret);
; P3 m* ]8 |% Y1 O4 f#endif
7 R) M# E% R, L" h        ret = platform_device_register(&da850_evm_tl_leds_device);  g3 }+ P2 i7 f1 E
        if (ret)1 R0 N- n/ r% n3 ?
                pr_warning("Could not register som GPIO expander LEDS");5 d2 p, b1 J9 {
        else
+ W: w3 ?2 x+ [( c, \/ I                printk(KERN_INFO "LED register sucessful!\n");2 R, Q& Y" C- V+ c, q% H( O- a
1 a: L) d1 S  }) Q
        return ret;
4 G6 [9 w7 Y- w. u  D}
9 _: c3 J# m! S+ w0 C
! m/ O$ ^/ ]% r5 Ostatic void __exit led_platform_exit(void)
+ H1 k: H; y- |- K& G{; x1 W  P& w- C( ~
        platform_device_unregister(&da850_evm_tl_leds_device);2 w& X- a$ }, o* _

: p  ^( G2 V$ m        printk(KERN_INFO "LED unregister!\n");
5 X- i' a6 w$ A1 z/ @; v}# Y% _% `5 R2 H4 q5 ]* `

& q; q4 B( q1 x3 k( Cmodule_init(led_platform_init);
# `# U9 `  V: q+ Omodule_exit(led_platform_exit);# R% D: [( U, n

1 T- e' m1 }% H& oMODULE_DESCRIPTION("Led platform driver");
. W9 I, y6 H; J" B0 T- YMODULE_AUTHOR("Tronlong");
  t# s; ^. O8 cMODULE_LICENSE("GPL");
! X& N! K; V+ {' _; o" Z# M! `9 _) ?% w+ u) l$ \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-4 19:31 , Processed in 0.038250 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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