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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 m& a0 m8 Z4 C) e
#include <linux/init.h>0 K  J; P* ^3 A. j4 r
#include <linux/module.h>  F3 k1 P$ G! K- I1 c; N
#include <linux/kernel.h>
' I  r- ~/ R: t/ l' K" V#include <linux/types.h>
6 T1 R+ d& O1 E2 s. c0 O% Y#include <linux/gpio.h>/ ~: A, }7 \1 J9 d9 i& d6 i
#include <linux/leds.h>' m' F% ~. g+ |
#include <linux/platform_device.h>
$ Z% S4 s9 W" m& `1 g' h0 Y8 i9 W1 i/ T* c
#include <asm/mach-types.h>
% {. Y5 p8 }  W+ g* l% f#include <asm/mach/arch.h># I0 N  T( U& V4 N% c
#include <mach/da8xx.h>
) t' M/ s) L3 R+ p8 ]1 ^2 [& o#include <mach/mux.h>4 o: l: x8 k: }- |. ]) c) R
* t: b: E8 G( \  n7 m
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
4 \$ C3 \; {' v; p' B- X#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
& ^2 h5 ]1 `7 }, z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
- ?+ m+ a$ y3 V8 E  {#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
$ A" z9 L9 o  q- x0 e3 R
# p# G# i" J2 ~* \/* assign the tl som board LED-GPIOs*/
! V' H: @4 ^3 @6 E" g1 L5 zstatic const short da850_evm_tl_user_led_pins[] = {
- k+ L8 J6 w8 B        /* These pins are definition at <mach/mux.h> file */# d+ h8 M+ U) ~2 Y
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
5 b6 A+ w* u3 a        -1; o& i0 t. `7 B" @* Z7 U# U
};
+ e) X5 L0 C6 W1 g0 J* H" [
  }9 t+ q& E2 V% o0 \& pstatic struct gpio_led da850_evm_tl_leds[] = {
3 v) s) {& T- k1 {7 S        {
0 s, u" n8 q  y% Z                .active_low = 0,& e" ]" I6 U& R' g
                .gpio = DA850_USER_LED0,
, ?$ C" j/ C2 B1 {7 A                .name = "user_led0",6 f- p7 |: O! ]: m
                .default_trigger = "default-on",( p7 z% q: M# Y9 @' X# p/ q, E1 Q7 r
        },, J- j# _; ]: ^) S" A
        {
" u8 J) l5 m9 q3 J                .active_low = 0,. T& _3 H7 N3 \$ D2 w" Y
                .gpio = DA850_USER_LED1,0 Z5 o/ A) a. l5 X  b7 W5 ~
                .name = "user_led1",5 R. K' ?2 C4 G
                .default_trigger = "default-on",
: N9 P, v( k% w4 `( F3 \7 G; T        },
9 J2 }  J8 O4 y8 [, L        {
% _1 n# ^9 e, a9 U; ^                .active_low = 0,
* q& h( e* |' ~5 N                .gpio = DA850_USER_LED2,: J3 B. D- x2 t: p& \5 e& ?
                .name = "user_led2",  `) u+ B: O: s4 {( L& `: }
                .default_trigger = "default-on",3 K, X* d3 V5 M- [" O4 ?3 c& _
        },0 q+ x/ w1 c0 G) r* x
        {
! B" I$ a4 S3 p- p. F: n5 ~                .active_low = 0,
+ E# f, A  Q: z2 D! V% {0 {% b                .gpio = DA850_USER_LED3,4 h* @$ e( M% w! _. U$ n! n0 w
                .name = "user_led3",+ x5 L! C/ C1 {; c% W
                .default_trigger = "default-on",5 C3 P0 T1 o0 z+ L( |
        }," L# B% v! g$ F  ?0 X9 v) E
};0 k" }1 u5 d  N, D; Q0 I; D
3 p/ I5 d& R9 i% V1 `$ Z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 w* R' B  U: M$ h* Y
        .leds = da850_evm_tl_leds,
9 H4 R1 b: [. }+ s; o2 o        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),! G  w, i5 J- b6 V' y+ n
};3 @6 R5 n/ ]) N$ A
% {+ K& ^) H2 E8 D
static void led_dev_release(struct device *dev)8 m; g- ~2 y+ J8 n. X
{% L7 ?* E5 A+ L9 v
};
3 n2 A0 l1 z, v9 \4 ~
* x; T" c$ D( b- ]' ]: d; O2 [static struct platform_device da850_evm_tl_leds_device = {
6 i0 _  v  U7 k5 l+ r# b7 {& i" t        .name                = "leds-gpio",' I2 j) r: ^! V& W' S
        .id                = 1,% v  F. w- k0 K. R& g
        .dev = {( n7 u4 l# R% }( E2 p# S( _- z
                .platform_data = &da850_evm_tl_leds_pdata,: W* P7 N* U1 |) g' H" M4 B
                .release = led_dev_release,
; F& r# l# Z" p0 L4 m        }
) s/ ~# v! U# u" N};; i1 e0 k7 x; k6 }

/ S6 ~/ Q! v! e% x+ P7 `! s: }static int __init led_platform_init(void)
  b+ H, g2 {  Y& _; B$ N+ }{
6 w/ q' S  {6 n        int ret;
" o9 a1 t: l5 G# R4 q#if 0
) i% x' N' \  e- q9 B        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
/ F+ i0 [9 s# i) ~( W( l. Y        if (ret)
( [) A4 \8 G. z- ]! h% ?) ?7 R                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ Q4 R+ j* T; G$ ^; S) ?$ C
                                "%d\n", ret);
3 k5 w5 S/ C" n9 _9 E, u#endif" y7 s' f0 [2 o$ ?" o
        ret = platform_device_register(&da850_evm_tl_leds_device);- j4 n; ^/ @3 Y! {, z& t$ E
        if (ret)! g3 r) I+ `/ b
                pr_warning("Could not register som GPIO expander LEDS");
6 i% R, `4 M1 l, d1 t5 ]7 G        else4 Y" o: n3 N' |, N! I! ?
                printk(KERN_INFO "LED register sucessful!\n");
* l/ P3 P$ [) h' [; G% {
* y  E- Z7 `* C        return ret;
" v% e: n4 ?" O3 K( O5 a: c& F4 }' i}
$ E! z* s2 k8 s8 d# |8 t( v
2 i" m5 ]  `  z/ |8 A& E% dstatic void __exit led_platform_exit(void)
  D* _0 @" a. K8 i- g2 W' D{
$ s. L" V! X4 r$ M: W. k% d  O6 Y        platform_device_unregister(&da850_evm_tl_leds_device);0 y0 h! ~/ x$ F3 b9 B  T

2 J# V3 U. r+ M- c% I' i        printk(KERN_INFO "LED unregister!\n");6 V) W" j/ ~% O9 ~2 Y
}
% {. k8 }+ m- }9 D3 d
) m4 u. q) V: @/ s: E  Emodule_init(led_platform_init);
: h/ A/ t4 F) ^/ @8 g" pmodule_exit(led_platform_exit);/ [/ v0 k0 ?4 L

/ \' d7 g3 f9 F$ u( xMODULE_DESCRIPTION("Led platform driver");; p" I  {) a0 M. K
MODULE_AUTHOR("Tronlong");
# }; ^% h  L) B4 \9 e+ E1 PMODULE_LICENSE("GPL");
6 @; }0 [  d& f- o6 s2 H; v0 h( o0 p) a2 }/ t; h' V6 O, D; D
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-3 11:41 , Processed in 0.040074 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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