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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
) u4 _8 c, s0 X#include <linux/init.h>
3 J4 p) i, y" \9 K2 G0 s#include <linux/module.h>) e7 |) [9 k4 _7 O* Z2 M$ f; J
#include <linux/kernel.h>0 W( W9 o  d! \, e3 f4 l
#include <linux/types.h>& M7 F& O$ ]1 s! w2 M" P6 M* m; W1 W
#include <linux/gpio.h>
. P# c8 N" n% |( G  C# U! `#include <linux/leds.h>! U: V$ X- ?, }$ I) A: d! }
#include <linux/platform_device.h>( _; i# h: g/ D% `& V) v- c) [6 }: z

4 j+ Z' T! y, ?; M% K  ]#include <asm/mach-types.h>
4 [1 [3 w, k" D% M7 Q: f#include <asm/mach/arch.h>
3 E  g1 e7 r2 m( z8 v4 @! O2 H1 r#include <mach/da8xx.h>
9 ]3 |. a+ K. ?$ t& i6 f/ p#include <mach/mux.h>( G1 D1 C) {( R$ ~9 _1 w
" ?3 ]% b) M0 ^4 F. v6 z
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) n# x4 l+ ^/ {#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)% f* p7 U; B3 R' s( }  b! J
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( T1 @3 M( e( D# ]
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)( X! y1 }$ `/ M6 I8 p) e1 N' o6 J
& t1 D3 o& b9 y; {3 |+ z% V
/* assign the tl som board LED-GPIOs*/
: O: b. @$ }+ p; @7 Ystatic const short da850_evm_tl_user_led_pins[] = {" ]: X* w& I' f3 M
        /* These pins are definition at <mach/mux.h> file */
* h1 p4 h* r# M8 |, P        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,4 i/ r" M( ^/ i0 {4 n" T5 h4 c
        -1
( M' P" u3 H5 f2 c& X};6 G3 j6 X9 j* H8 L
! K& J  c3 T. k% d1 o
static struct gpio_led da850_evm_tl_leds[] = {
+ O5 D$ E8 p7 Z" B) w+ f0 o        {7 F: Q' X# T# T) Q
                .active_low = 0,
( C6 t8 O+ b6 Z$ T& E2 n. |                .gpio = DA850_USER_LED0,
6 S3 Y0 N+ e; x! X) P- I# o$ `                .name = "user_led0",9 ]/ d3 v/ d+ _5 Z. }& a0 {$ Q
                .default_trigger = "default-on",. G. A+ @: Y; u4 [8 `6 I
        },1 m. U( n3 X# g, N$ `% s
        {
. i% w% c- G9 l- Q                .active_low = 0,
- W2 R, {$ X, q4 t4 G; U2 ~                .gpio = DA850_USER_LED1,
( i- u" T* C  j- S                .name = "user_led1",
" I! E* k  o  z8 Z- \) d5 M                .default_trigger = "default-on",3 T, T5 v4 i/ s: T' E0 y
        },
  V1 N4 G- Q: Q- ]/ V        {1 u& _' u: Y0 J
                .active_low = 0,
1 n0 B  E8 \5 M4 G) e4 l                .gpio = DA850_USER_LED2,
' V( y: r# X$ K& G6 A4 o                .name = "user_led2",
) Q% Q+ u. @: L0 q                .default_trigger = "default-on",( }+ G  a2 u; Y" S4 K* u
        },. e( y0 G& H4 D& r% g
        {
4 f6 F$ }, k2 J1 M+ u. i- I# ?  L                .active_low = 0,
- s5 u2 u3 d. S                .gpio = DA850_USER_LED3,
& ?( c: Y9 V+ W                .name = "user_led3",8 X- {4 X5 `8 P9 f/ O; u* R0 B
                .default_trigger = "default-on",( u/ M1 s& W: e) ~5 A4 y: k
        },& v$ n4 a$ h8 S: p, \
};) @2 X& P& i0 g! C
' Q8 X) m5 t6 v
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
/ J0 U/ U; x: s( t        .leds = da850_evm_tl_leds,
; ]) G" _* ^8 ~0 u8 t& H4 R        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 Z' D! j8 l6 ~& q! _
};
. `* c) U4 ~8 j% c7 V
; p& ]: N2 m$ D6 C. |static void led_dev_release(struct device *dev)
0 s: b! l6 s1 m" [3 f5 B: e{
% S# q5 ?; B/ b0 v/ T0 c};
3 Z7 U+ n2 H. d/ w4 a
8 z. ?, ~6 Z: o: I' q1 b. ostatic struct platform_device da850_evm_tl_leds_device = {3 `7 K$ {) F# B: W. e) y6 \
        .name                = "leds-gpio",
9 H/ s9 W& S2 n& a' E        .id                = 1,! O8 y1 }) O5 f( P2 j8 L; Y
        .dev = {& W6 b$ {  [( g
                .platform_data = &da850_evm_tl_leds_pdata,4 X0 O+ g3 D7 s/ J7 k
                .release = led_dev_release,
/ x7 _" O; {1 k9 m        }
4 e, k% e( ^8 l};
  {: J; p% h5 j5 Z
/ T4 E! h* p$ C$ ~: O5 q/ estatic int __init led_platform_init(void)
0 d6 w; d& Y9 t8 X; m+ u& A{
6 c. m* P" s6 b        int ret;
& Y0 N' x! h) q7 G0 H#if 0
) W) R$ ^4 m6 G8 m. a) i! A        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
+ X; D8 Q. w& R1 o        if (ret)) V3 O# A6 M2 c1 R: I* o8 x, ?
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
$ X9 g# W5 {; o5 a                                "%d\n", ret);
' N1 i( `6 N: Z- b4 \#endif
1 Q+ |) L7 ]2 v* x2 i, [/ X, N        ret = platform_device_register(&da850_evm_tl_leds_device);! ?2 |, J# N" x0 J7 o
        if (ret)
$ f9 b) i/ [! ?* q! M: J                pr_warning("Could not register som GPIO expander LEDS");% y) }) k2 f/ [  }
        else
2 T$ U6 V  S" K8 h2 p! v3 T* E                printk(KERN_INFO "LED register sucessful!\n");0 W2 M4 T* \3 f& ]% F
3 a) W& Z  z/ A: ^( C
        return ret;% ^+ w: a3 U- V8 Z
}
& X* X" R! F" K, R
" r1 w( ?# I2 N: N% @6 X' C& r! cstatic void __exit led_platform_exit(void), |7 H1 j' v+ o
{3 H1 l) d, C) M  T3 q
        platform_device_unregister(&da850_evm_tl_leds_device);
/ {/ U- T: a3 _* J1 b
) k) K/ q5 [9 n: `  X& a8 H5 `5 j        printk(KERN_INFO "LED unregister!\n");
3 _, |4 `3 R7 J) R! M/ r}
& B$ s- w; v# j& P0 b. g$ [, t$ W2 A; q* ]% _$ p* i
module_init(led_platform_init);6 W1 s+ l3 k2 U' Z' y8 I; `: x
module_exit(led_platform_exit);
* v& F  |) r' j" A( Y* H! l  L: ~1 @* L: B
MODULE_DESCRIPTION("Led platform driver");* G* w/ O) a  D- a* }
MODULE_AUTHOR("Tronlong");
6 W) K8 t& Z2 A9 gMODULE_LICENSE("GPL");* a/ z3 [: J$ R4 K

. f& R6 g8 v! H' B; q' o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-27 04:01 , Processed in 0.042851 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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