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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
2 R& H0 @8 a& e' O#include <linux/init.h>
+ }' B* ?4 Y  X4 l9 S+ U( L( E% Z" W#include <linux/module.h>$ ]; R) C) q  b5 M; ~
#include <linux/kernel.h>, N3 {/ Y6 A  X2 Q, L6 r
#include <linux/types.h>
5 q9 }2 k( K0 G4 W8 ]3 s#include <linux/gpio.h>& W9 Z3 W' A3 b7 Y) ^
#include <linux/leds.h>
2 D: X$ @( O5 i2 _# x+ j#include <linux/platform_device.h>
3 D8 {9 W) P; r/ v5 z$ Z8 Y" a$ k2 Y, D# o3 x0 C0 e  g
#include <asm/mach-types.h>
, C4 K2 [, {' h5 I#include <asm/mach/arch.h>6 _" h0 Y3 @* x4 W
#include <mach/da8xx.h># l+ s# c+ S- A7 U: c' z
#include <mach/mux.h>5 T% Z7 l+ q, k, }" @& V" ?3 t- s

9 G2 W( i7 T4 y#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 F4 Z7 Q: _# ]' j#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 Q. S( ~8 f. `# N3 J$ g#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 Q* G+ N5 H: T
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 d' ]: t' M& }
2 u* G5 [& h) B6 D! f6 i* O8 X/* assign the tl som board LED-GPIOs*/
, D6 t2 F2 t. s/ l7 fstatic const short da850_evm_tl_user_led_pins[] = {( w: B( D. v4 y
        /* These pins are definition at <mach/mux.h> file */9 F( _5 |  B8 U
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,( F' |  j# B9 }' ^4 G8 v- m
        -1
  A( V+ C4 R1 Z};
2 k! z& d' L4 Y- |9 L- M( x& \& v3 R8 w) j! v+ I: q
static struct gpio_led da850_evm_tl_leds[] = {1 `% l2 r/ [) C, K
        {9 O6 D- e5 ]$ @
                .active_low = 0,
, v0 O' f& _% o- q2 J6 t5 Q6 y                .gpio = DA850_USER_LED0,
. K: Q) f8 y5 J2 [( M/ h( |6 P/ X                .name = "user_led0",
9 F7 a9 x* n( t3 b( ]( S- I                .default_trigger = "default-on",
* M. N6 C( ^; u$ }. V        },
3 T, B2 A  C' C& _+ W* M1 H        {$ a) n; H# Z' I& F/ u
                .active_low = 0,/ D3 m3 n: X  A- ~
                .gpio = DA850_USER_LED1,% u9 _- A, r% q' I# o
                .name = "user_led1",
5 g) ~# y8 Q0 X; v                .default_trigger = "default-on",
+ }- T( K) Q9 r3 \        },* z: K5 Q7 h: t
        {
8 C9 l3 h% I& c; B5 X$ ?7 v: N5 g8 u                .active_low = 0,
' N& o5 _: D# |6 L' F                .gpio = DA850_USER_LED2,
6 @: V& G5 k, {1 [3 X                .name = "user_led2",
! Q/ q& L4 }9 ^2 g' E' t                .default_trigger = "default-on",
. `2 J1 a& T% g4 B- w, F        },5 \; i2 ^3 ]7 k8 L( Q
        {
' j! ]! \0 N1 k# g4 s& O                .active_low = 0,- F5 K3 q! ^7 t
                .gpio = DA850_USER_LED3,* Z4 l0 _$ P0 \0 E& O
                .name = "user_led3",/ m( H* D# g) G7 U1 {) k# I
                .default_trigger = "default-on",
- a' ^- y4 {* {0 ]# H        },
8 T+ Y& J8 ?. F% J1 S- t# J};1 a8 E- l( g' U' B! b
1 Z# ~& W' W; V$ _# ?# W/ Y
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
( G( B' {' H" D* O* A; y: P        .leds = da850_evm_tl_leds,; u8 |8 U% Q0 T3 P6 ^% |- e
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) ]8 }) U- }. O};: G) ?  w$ r# P# ^* V' K

7 [$ F0 {. N1 L$ U/ b& ?static void led_dev_release(struct device *dev)# i3 D; |, \- b4 v1 o0 q
{8 G4 M6 K) ~2 a
};8 N; q+ H& C% h7 w! M1 b

; @$ @: F' v5 [, K7 R4 |- w) vstatic struct platform_device da850_evm_tl_leds_device = {
9 @7 ~( S+ ?* t" z        .name                = "leds-gpio",9 D' }" K  X' O* n  ^
        .id                = 1,  l% k5 w( h0 w& B* r: ~0 c) V
        .dev = {! h) e* }- I6 X/ J
                .platform_data = &da850_evm_tl_leds_pdata,# q7 W  V( i: R# s( Q1 u
                .release = led_dev_release,
# K4 Y3 V' f. j# p0 F( ]; H        }
3 c9 E, l# g% \8 }, V: W2 X};
# b6 P+ `' m* E0 J, Y& R& y0 a6 q) y& c) l8 @( L
static int __init led_platform_init(void)4 C; B; L# d; h
{
$ D9 u- v% h9 O- d        int ret;
3 u0 ^  `& t2 z" E#if 02 A2 K2 }: t; t9 M5 S# e2 a
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
0 r. M6 i6 J2 Q: Q1 a; {        if (ret)7 |2 n# v" V0 E: P3 i  Z1 B
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
: [$ D4 V: y4 X4 Z% a- ^$ B- y                                "%d\n", ret);* U) o5 N) e; ~& L! d7 _' _1 a
#endif" k& L' ^; m$ c3 Q2 w. E
        ret = platform_device_register(&da850_evm_tl_leds_device);% B$ M* P" l, P$ a; @
        if (ret)
. L' j3 V0 y! @; Y+ `                pr_warning("Could not register som GPIO expander LEDS");
- n: F" C* s9 X! C. E  T$ X        else
' W" @1 ^5 r1 K                printk(KERN_INFO "LED register sucessful!\n");' y9 {$ [. \/ `$ N, |) L: t) I  v$ m
& V3 v  C# L5 K3 B5 B7 x5 h
        return ret;
* Q  D) {! S! K; ]) [0 D}
6 T' b& ~  G& D4 S+ m9 k' t
9 B& u6 a( }$ h5 _) L6 u- }' kstatic void __exit led_platform_exit(void)
* c: t: O9 e7 h( {* K# B{
2 \. |7 F+ |! X6 i4 N7 x        platform_device_unregister(&da850_evm_tl_leds_device);
6 y0 G2 p( p4 K: ?2 Z. D9 y- z9 b: d, S! K- U
        printk(KERN_INFO "LED unregister!\n");# a0 d; p  d4 g, C& A
}
/ |! m4 ]* O5 Z2 G3 j
/ V5 I  @6 G+ ?- g4 U' _module_init(led_platform_init);
+ L& N0 ]3 E% mmodule_exit(led_platform_exit);1 ^. v: y5 N' p: Z7 [7 Z% I5 |- [

/ ^  }3 }& I2 `+ nMODULE_DESCRIPTION("Led platform driver");$ C9 J" `+ N6 q( U" x' ^
MODULE_AUTHOR("Tronlong");* `- x2 d& A5 p/ b  M2 i
MODULE_LICENSE("GPL");
" I0 ^/ b5 L' |  d1 A: w$ ]
$ C: x9 @  f! F" }$ v$ T9 e
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-24 12:47 , Processed in 0.036629 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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