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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。+ b0 G( `0 u" J1 r+ H
#include <linux/init.h>0 l* R2 T8 t6 A& K4 W& j+ r* r: @
#include <linux/module.h>
- L  n4 l5 G* [# W) h#include <linux/kernel.h>+ n6 v6 c+ E2 V
#include <linux/types.h>
; N2 A( {( @% q7 W$ t# V) C#include <linux/gpio.h>' W0 l7 A- a- m- d) u. ^; o& M
#include <linux/leds.h>- c2 d# z" j% A$ a, A3 c' j
#include <linux/platform_device.h>2 u. V* y( S- E5 q# |

- V$ D. ?6 n  Z8 p1 l9 X#include <asm/mach-types.h>' W2 f2 q  P4 R) p! W$ O) f* x/ y1 {
#include <asm/mach/arch.h>
2 `8 |9 e& O8 l* D0 H- [/ W#include <mach/da8xx.h>9 e+ l+ `! R4 F& V& `6 G. a
#include <mach/mux.h>5 J6 J6 o1 ]3 `. i

1 s. n6 j0 w! q3 Z/ t#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)2 d1 Z) s" K* ^- x8 P4 \: [
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
* v/ P8 [6 x, q4 [  S! Z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1); ~9 d- ]" Q5 O' u3 t% u
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 B( M5 C! u" d" q
! k' o$ H/ k# D( c/ c  _! z
/* assign the tl som board LED-GPIOs*/
: W( M" Y: a4 `; O% C' bstatic const short da850_evm_tl_user_led_pins[] = {. |2 K0 @. S  P5 S" K
        /* These pins are definition at <mach/mux.h> file */+ f. {& _5 v" H# b( i- u
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,( l9 x* E4 ]' R( E
        -1
8 u" x+ f# E# d* c};! i8 {" `8 p# v) U+ G
  \: |5 J' S2 }" E7 Q# N
static struct gpio_led da850_evm_tl_leds[] = {
, |" J' w) _! l+ M        {! @8 w6 M+ _+ V7 L( p& b4 y
                .active_low = 0,& ~# C  \9 D' L' M
                .gpio = DA850_USER_LED0,
& J  w, ^" v  l4 U                .name = "user_led0",
- M: \; q6 j" @3 r; t                .default_trigger = "default-on"," z% N! z. N1 ?$ o3 ~  Y3 d
        },1 }  ?1 A! x0 }
        {0 a' S* J0 Y9 B2 D, `3 |
                .active_low = 0,1 W$ b/ W- N' q9 b
                .gpio = DA850_USER_LED1,
4 ?% _8 c$ v0 A6 @                .name = "user_led1"," F- ]: Y/ ~" J+ d
                .default_trigger = "default-on",/ U" k: l2 l- E, k/ F, T, v
        },
. A. _' S' L& p8 w        {
  Q( F$ L' |( Z- [5 c4 W                .active_low = 0,+ c# U5 t! R( c2 w: m2 R. h
                .gpio = DA850_USER_LED2,( f/ r4 S9 y4 N  Q. \. E4 |
                .name = "user_led2",7 D3 e) F& L0 D8 [  S( ^3 `3 R
                .default_trigger = "default-on",
5 `: z/ D- [$ \1 B        },
  _6 o5 L+ j/ w: i% T+ C        {
1 }  e3 ~& t- ~. W4 h  v8 t                .active_low = 0,
+ H) |2 W- h( D9 ^( S                .gpio = DA850_USER_LED3,
7 W* O+ a3 E" p! K# |! [                .name = "user_led3",; @- u* M: l- t* }
                .default_trigger = "default-on",5 z( M" h  t0 c
        },
# h5 f+ L& G) V, \: z. V};
/ K- a7 E3 @4 t) p! p) E
1 \7 G; T" g9 n" N5 jstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {* y( j7 |0 p# J, {+ c
        .leds = da850_evm_tl_leds,
9 r3 s. H  A  ^: Q, t        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
1 A$ l4 y' z+ D6 p};
6 g6 \% g8 Q& x( U) P1 ^9 N$ L6 n. `; s; {
static void led_dev_release(struct device *dev)
7 t6 s$ {) L6 l! }* V{
, K  f( [. B$ V* N5 k7 P};
' z  A, @- v0 C+ L  S& A$ y/ n8 \+ L+ b5 e
static struct platform_device da850_evm_tl_leds_device = {% J& g  U6 H. ~
        .name                = "leds-gpio",
- z  m! i7 G$ I7 ]! r* a. k7 C  |        .id                = 1,$ R* Y& c2 N0 F. H& X
        .dev = {: h% [5 n) `' {2 g# o
                .platform_data = &da850_evm_tl_leds_pdata,
9 a; z6 W7 l8 o' ]! B1 u! \                .release = led_dev_release,2 [  Z: U7 h) D  U! W
        }
2 N3 q% ]- v! L: u};
0 M; G" k4 k1 @3 R% W5 m0 @0 r1 e! g" C" T
static int __init led_platform_init(void)  F- @& O3 |9 l0 }( C; v1 T
{! Y3 `' m9 z1 b- {
        int ret;/ @: I! u( z. f5 e3 Z
#if 0
' }% l* W- c0 G/ |' e" L8 a+ Z4 |4 @        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);9 t# v. F  k& ?' s' i+ B9 g: x, \
        if (ret)$ @0 o! v, j+ b
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"9 n- Q# d. s- h* Y' r' N5 _" U* _
                                "%d\n", ret);; c! G+ h' A- I' J
#endif$ [; _- m7 B( k6 H4 z/ @  E" ?0 q  H
        ret = platform_device_register(&da850_evm_tl_leds_device);: y9 g* V3 I- r2 f1 V# |
        if (ret)
8 D+ D: X# {* I3 o  s. e                pr_warning("Could not register som GPIO expander LEDS");
: V  L8 z8 ~) E8 S) |        else) z# X  O8 W8 D0 K! ?$ t1 X+ X
                printk(KERN_INFO "LED register sucessful!\n");
9 F5 R1 o0 q5 [3 G6 |& W7 K( T# E: R% |
4 \1 F- W) [, c" m3 O( }3 ~* F        return ret;
5 w1 E5 I+ [6 d+ P8 h}
1 B  {# G- d4 f8 O8 U' w/ x% N5 K' s4 ^6 Y9 w# m, d, W6 x
static void __exit led_platform_exit(void)
, b1 h6 B  ^, W7 u* W6 l{7 H1 F0 m: p* b) K6 p/ E( _
        platform_device_unregister(&da850_evm_tl_leds_device);+ A- Z# y% F' n7 S

/ C2 Y) G" o' }! \/ b        printk(KERN_INFO "LED unregister!\n");: d( a9 v3 K3 p5 O
}
& l9 B! ^# y' V) J. Z& k2 b4 M6 k6 d  G7 I- K5 f) y! E+ S9 r
module_init(led_platform_init);$ k# l9 H3 C6 ^9 I% v2 H
module_exit(led_platform_exit);" l, a, X; I4 O1 B  O, o+ U
/ y( W0 Y2 f8 h2 E  ^3 C7 @
MODULE_DESCRIPTION("Led platform driver");$ L2 |  [% i  r% A
MODULE_AUTHOR("Tronlong");+ A5 o. |  B, [3 J* Z6 G) g
MODULE_LICENSE("GPL");
# L# `+ @( [% D$ L- \, m& ^
1 C5 M' ~# H! Y2 w, V' a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-9 03:49 , Processed in 0.038151 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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