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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
! y/ N( O7 ]9 A' r# B+ g- \#include <linux/init.h>. J4 v3 a* ?' J1 W6 U, ?" Q! c
#include <linux/module.h>
, Z: ~; s. X# s' j3 y+ c$ R#include <linux/kernel.h>7 T/ R1 }  [% N
#include <linux/types.h>' \" Z! B' d/ j$ |6 S$ q" h- \
#include <linux/gpio.h>: d2 q4 k4 O6 P+ c/ }  \% U
#include <linux/leds.h>4 O1 z/ W" \, h$ l0 d
#include <linux/platform_device.h>
* D! {+ B3 @3 O. ?
* m' i* H$ a. J4 Q6 z#include <asm/mach-types.h>. B+ Y& S( R9 X% j+ S" B0 Z
#include <asm/mach/arch.h>
& @' ~: f' a; l8 p#include <mach/da8xx.h>
4 q: B: J; r* w4 ^# p; E" H0 ~#include <mach/mux.h>
6 C% q: e6 m! G3 o* ?
9 W9 z( [; Q5 P8 o6 x, h#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 Q6 K! d* c1 c$ m1 F5 F#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)/ C% j9 F6 G  v1 X' E- e9 D
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 x& v# ^) x1 j0 U; z/ I' W5 G
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2); g4 h! ~" D0 Q' d

4 ^9 g# B- j! W. f0 B& Z/* assign the tl som board LED-GPIOs*/
. {. o& Q% h' T) l: bstatic const short da850_evm_tl_user_led_pins[] = {
* }5 r9 s# A* u! K7 l& x& }5 |" c        /* These pins are definition at <mach/mux.h> file */) {% G, `5 u% ]! ]8 q, }/ W) Q4 c
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 o  w8 J9 U% Q4 e3 N  p        -1
, c0 N. ]* z+ z: e6 t};7 G0 D8 C. \" p( m! c$ x, r! P# b
- A; @6 V* a1 n8 O6 ^) H
static struct gpio_led da850_evm_tl_leds[] = {1 u& n3 K3 w- a4 T
        {
# ?6 Q6 N( s8 R  g/ {9 w- `                .active_low = 0,
: s0 m" }6 N* E/ g+ W- [                .gpio = DA850_USER_LED0,' K/ h; H9 @% a/ a$ g& X2 s
                .name = "user_led0",8 n. Q( Z. K9 {
                .default_trigger = "default-on",) [, i2 {! g; s6 \: `! D5 \
        },& `4 q. }0 J1 [
        {) |" i8 K0 a/ r* _/ ?$ b9 K
                .active_low = 0,$ W( i3 |# o6 y3 R9 }# \3 o" y
                .gpio = DA850_USER_LED1,
2 G6 e, A% a  `% [% E/ N) x9 Q) }( c                .name = "user_led1",
3 x3 A/ G! z7 k. Q0 m; r- b                .default_trigger = "default-on",4 o. ?8 P* f6 o1 F2 T- f
        },$ r- p; a5 p8 ]/ p4 y) j2 F2 n
        {8 d1 t3 J  E. `0 i8 p8 m; ~
                .active_low = 0,
5 F+ \+ \" e8 ]! f9 N6 ]                .gpio = DA850_USER_LED2,$ W$ P' \# h* U* J* q2 O5 E: S) W
                .name = "user_led2",/ A+ {6 S+ N* l0 D# Q5 b" `4 K, Z
                .default_trigger = "default-on",
* {  |7 r3 c, s0 Z2 }$ p        },
" G6 K) Z# r: b        {$ ]9 f+ B/ f0 x: J
                .active_low = 0,2 s$ v$ q; w6 A! e4 g) L: x
                .gpio = DA850_USER_LED3,
+ I: z3 Z# ?* t& C( A9 a! u) `                .name = "user_led3",& ?* A7 r1 _, w+ Y! w! J" C( y/ U
                .default_trigger = "default-on"," y5 M! l- Q: L$ q
        },
  ^5 n( z" I9 L* m  ?, `};% `/ Q2 Z! p$ y$ W& J2 Y

6 ?7 I8 x% ^7 S3 ?8 Hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ b$ s; N( i" k+ w
        .leds = da850_evm_tl_leds,& m% C2 j: `  L6 `' I0 {
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 B9 f( i+ i( D/ D3 B
};: a1 N% V& o1 v3 k( _0 e9 ]# c

6 X- z( ~6 B. u$ ]+ o7 t8 v# dstatic void led_dev_release(struct device *dev)) h9 W& e- H8 C. i
{5 P" A; o) S, e: R) W
};
' x& t8 E/ B( E, q# r3 p* l% H6 s0 s9 T
+ `% M) }) W6 M, _static struct platform_device da850_evm_tl_leds_device = {
# Z# t+ Q+ P' x% {/ b        .name                = "leds-gpio",
7 \" X; v: w* I( l        .id                = 1,7 k, ]' W* `& w9 ]) s* Y
        .dev = {5 [0 ?& P! s% m" r' F- t, j
                .platform_data = &da850_evm_tl_leds_pdata,
1 m2 A& g" `; V) R$ v; B                .release = led_dev_release,
+ R$ a0 _9 ^. _4 n        }
6 ~% }+ t/ T" X0 Y& r8 ^1 [};
+ T4 ^+ o1 i. A8 _4 {
' V0 K9 @3 X# D* G- O3 wstatic int __init led_platform_init(void)
& s# N1 g, R+ _3 `7 j{9 V$ W7 M& c; p. B$ s
        int ret;! t8 u# d0 Q$ l/ y! M6 W  Y# V
#if 0
  Y+ a8 r1 {8 n2 ~  A: e        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; G/ R* `' H2 d  n+ L# [6 `! F
        if (ret)- D5 D) C* f  T4 L- L
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
2 e2 A6 g+ u: X                                "%d\n", ret);
8 b9 X2 v3 d, K4 Z3 ^#endif- Y# g+ b2 x# g/ R0 B: ~
        ret = platform_device_register(&da850_evm_tl_leds_device);+ T; p7 e+ K8 `0 b  u
        if (ret)
5 }0 Y4 ?' g6 |' z/ @                pr_warning("Could not register som GPIO expander LEDS");
4 R+ d( U3 p" `- m# v5 G0 U, ]        else9 ]" b- H1 _0 c& C7 X
                printk(KERN_INFO "LED register sucessful!\n");2 @/ A0 \, ^. n7 K9 g4 ?2 n
; i2 R: W( E. N% I  F6 r
        return ret;
7 K* M7 r& x- i( e! L8 B. }% U8 \}
6 F$ \. P- d& [& Q0 o$ L! _0 d* \
4 a; j( c/ h" l. V: L& N) f" ystatic void __exit led_platform_exit(void)
$ W9 m. q" w7 @" e3 |4 ~{/ S, p* m3 y" }( h1 S; \4 U: d) y
        platform_device_unregister(&da850_evm_tl_leds_device);
$ g) Y/ S& o' u. a+ Z+ J4 m
: Q2 e: e' N4 z, I2 G6 L5 J        printk(KERN_INFO "LED unregister!\n");2 r- Q0 S9 @8 y' G  b; G
}
1 T* T: C  ^8 K+ t; {) Z6 F+ W$ [$ O1 H, T
module_init(led_platform_init);: m! _* t: _4 T% z8 Y8 g
module_exit(led_platform_exit);$ W$ n3 h- c7 I  ~$ g

, Z" A( m; t! d4 [! C1 y& @MODULE_DESCRIPTION("Led platform driver");
" l5 K# r* t8 pMODULE_AUTHOR("Tronlong");4 h6 u' `& ]5 ]$ D3 L& k# V, ^/ E
MODULE_LICENSE("GPL");
, r, c& m2 [5 m- t) c' S* p
9 W( s+ q) f6 K4 ]& O5 b& V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-15 03:17 , Processed in 0.039658 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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