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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。& R8 f& |7 i; B7 P
#include <linux/init.h>4 r, }1 k' H6 [5 w: ]8 M
#include <linux/module.h>- j4 [+ P; z6 s3 J
#include <linux/kernel.h>
4 w# `  v. S8 ~8 T5 O8 k: W% b' G#include <linux/types.h>
7 d4 t" w3 |( ?7 b#include <linux/gpio.h>. E7 \0 d2 N: S* H
#include <linux/leds.h>
9 j5 u4 K" f" b! ?1 z7 l#include <linux/platform_device.h>
$ h8 C( L; @' r7 y3 q
/ p: r( y3 ]5 n# U: ^#include <asm/mach-types.h>. }& s* T2 i# z) ]4 ~6 G4 @
#include <asm/mach/arch.h>0 x# {# P7 N. V( f* i" m: L
#include <mach/da8xx.h>
" M1 Y2 K4 Q) ^8 F( e#include <mach/mux.h>
7 O6 q/ ?+ A0 f
+ U3 u. g0 _9 k& E+ G#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)4 T- d: T. h2 {! G
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# p( k* M$ o3 o8 \  V#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
7 t/ J+ ]. Y( v1 v4 {#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)  q$ e8 |, g4 m# Q0 E

0 \$ q( z' }1 S7 A: _; \/* assign the tl som board LED-GPIOs*/
5 u: d7 ]' j7 C0 f1 w9 a1 O- Bstatic const short da850_evm_tl_user_led_pins[] = {1 C' t; j+ L& B/ S: M! X
        /* These pins are definition at <mach/mux.h> file */1 v# F0 }! M/ ~# B
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,/ D( V) M' q8 I$ V
        -1% f0 ]$ L# _' ?4 [3 q
};
- q! b$ S8 G( V, b% V5 L  w7 j  @4 Z
' F5 \5 l; r5 ~& I7 g/ d' Z. O9 S, Ystatic struct gpio_led da850_evm_tl_leds[] = {
# R( M. G5 F6 ~& g, U0 N        {
8 h, e/ S. D9 }' a' e                .active_low = 0,, b( ?2 _/ w, \9 `
                .gpio = DA850_USER_LED0,% g  m# _( r4 e  \: R6 o
                .name = "user_led0",. l* m: Y/ A& t1 A  \
                .default_trigger = "default-on",' b. G" z+ F3 t& W' m
        },# g9 F1 U* i0 z( r
        {8 r* k2 {7 H5 r5 Q" G
                .active_low = 0,
% v2 ^% I+ k' L7 o6 ~. U( r2 W                .gpio = DA850_USER_LED1,
. O. b9 @; B! c! k                .name = "user_led1",  k1 g! H, h9 v( m. ^: y
                .default_trigger = "default-on",' H4 U0 K! `, N" \) @3 E
        },( K* S- K; O* J, o, Z  e
        {
) S# C: a8 K0 J, O                .active_low = 0,- g2 x0 ^6 W2 o: R" T9 S
                .gpio = DA850_USER_LED2,
& w- A4 s8 M) [/ U. h                .name = "user_led2",
" u' a: L* F5 }6 F1 z6 }0 P& O                .default_trigger = "default-on",; r& v& F5 h7 m# n' d
        },
2 k5 v" ^/ `; C" e' `        {- e( U* s( R- J3 n) o
                .active_low = 0,' j% [5 Y9 U: u; w5 O" J- G' x
                .gpio = DA850_USER_LED3,
5 ?* n& u$ m4 [                .name = "user_led3",
2 }0 q- a. G: c" X6 w                .default_trigger = "default-on",- z$ X; R3 M( w6 T. u+ K3 n
        },6 V( ]3 J! A5 I) H, ^* h5 }
};/ R* L' v1 u- n8 H0 D

3 B7 S0 n7 l/ Z; i$ Gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. W& z) E7 G& I# k1 E( r        .leds = da850_evm_tl_leds,9 e( J+ L* v( y- s
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 F3 p0 u3 q, T1 k, a
};
5 ^' T% B$ G7 l+ {7 J, s- G- ]$ A0 \5 l3 u* f7 r
static void led_dev_release(struct device *dev)' e" u, q$ B! C# i& ]1 {
{: |8 }' k  W, F& D2 O
};
9 t/ f5 j# ~$ O+ E% i
- t3 r( t5 Y- Estatic struct platform_device da850_evm_tl_leds_device = {
* r0 v, J7 Q( `        .name                = "leds-gpio",$ b' X9 l; Z5 I* A/ I$ a
        .id                = 1,; v! S! V) Y& D# I. }2 [
        .dev = {
8 v. ^. `& d, D7 s                .platform_data = &da850_evm_tl_leds_pdata,% T8 A5 W1 h& i* u- n4 X
                .release = led_dev_release,' i( S- Q' R0 {
        }
' ~" g- I6 B5 G1 l, [};
5 j/ M: Y; I6 V7 Y1 Y4 X
. L8 X2 c! \6 n1 a( c2 \8 O& Ostatic int __init led_platform_init(void)
) R6 o1 p) P) r& q! H{
0 u; I) i1 I8 Y6 |0 @% g        int ret;! b2 a& \1 H! h9 U( j4 `! S$ e1 m
#if 0
0 U0 [- c5 Z) F3 m3 a" d" x        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);% w$ A/ j" F  l
        if (ret)
" C1 E# a2 y3 M6 D                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ y  m2 {. x7 T5 m' z* u. J
                                "%d\n", ret);
* m6 h/ Q4 C4 Y) b8 v3 P7 D#endif, Q& R# k# E$ j" E- o( T5 }3 G
        ret = platform_device_register(&da850_evm_tl_leds_device);
& z1 a* D" v$ `2 M        if (ret)
$ Z5 Q1 k- V/ m. |6 |6 O) v                pr_warning("Could not register som GPIO expander LEDS");
$ k' T9 p: ]7 ?% N- g' Q8 E4 h& @        else  r9 ?/ m! G4 c" M: a- w
                printk(KERN_INFO "LED register sucessful!\n");" t- {4 A/ b7 e$ H4 F1 F' s9 b
+ q8 ], C8 s) o, u( h
        return ret;! s8 {% J& F. Q9 y1 S; {' Q1 l
}
0 ^9 q5 j2 r; v! ?! r9 W
* N: ?$ e' Z* k/ c0 D/ q6 [static void __exit led_platform_exit(void)
/ J/ g# k. B# I+ I( V{0 d/ O& V4 x! @! v+ f2 W2 W, k
        platform_device_unregister(&da850_evm_tl_leds_device);5 \2 j# E- M& z

( k% f5 k) d# R. ~8 T& @        printk(KERN_INFO "LED unregister!\n");) y  ?: X5 w# W' `0 x4 E3 Y
}
) e& p6 y+ t2 d) v: a) A5 ^5 h8 V9 |* b- l
module_init(led_platform_init);# r8 O# N" s  x# j
module_exit(led_platform_exit);, d& t/ Y3 n  x9 i

  H5 E& s$ e0 ^4 JMODULE_DESCRIPTION("Led platform driver");9 ^; g) \2 h4 L
MODULE_AUTHOR("Tronlong");
* i& {  z  h7 X3 o$ {& P' @+ EMODULE_LICENSE("GPL");
" ^& x' z/ @$ q, l  r3 }$ W( w& p# q+ A) T/ Z0 ~+ u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-2 19:01 , Processed in 0.036461 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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