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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 [- s' C  Q/ @3 A$ d#include <linux/init.h># g4 W, L1 {; s6 e0 }
#include <linux/module.h>
5 u% w) n2 |, ?2 v- `4 J#include <linux/kernel.h>
$ F9 ~  W4 A7 x" z+ f% v$ n% s. X7 D#include <linux/types.h>
$ M- F# r# \0 N# i#include <linux/gpio.h>/ \5 s6 M- X, [
#include <linux/leds.h>
' C  h8 E3 J- |+ p/ ?#include <linux/platform_device.h>
; \" M2 }" E: f% C, Q! V& L/ W6 C! D6 ]( a6 M$ O+ q, G, R
#include <asm/mach-types.h>
. s$ M/ P. @3 f$ X9 y#include <asm/mach/arch.h>
% n/ y3 l3 c* h#include <mach/da8xx.h>
0 z5 K$ L, w% {; p. j( b8 _#include <mach/mux.h>. b- m4 X7 n& u; k8 v$ a
+ F, j' Y& B7 y0 Y  k
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ K$ N5 O% j' O! u
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)4 t, q  q8 ]1 `3 K1 R
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)$ \7 C$ q7 M0 |" _: C+ S1 Q) V
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
9 f" d* M, z7 N' }+ o' r5 B
4 V0 q, D! ^% B2 k0 a6 f/* assign the tl som board LED-GPIOs*/% n* }( |: @* ]* x; K9 z- z8 a, t
static const short da850_evm_tl_user_led_pins[] = {
8 `; D- J! o& v, B8 J4 G* a- Y        /* These pins are definition at <mach/mux.h> file */
( Q; k! K  W4 x" G9 O9 S- r        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,% E1 }  j# y% F) r& B! k
        -1
) m5 g9 S  v8 g! f};) b& G' A1 a2 G& @

& F6 j1 \" D$ Dstatic struct gpio_led da850_evm_tl_leds[] = {
) X: W* P" n$ u. b1 C9 q! f0 ^  a        {! w6 k4 P' _& Q. e
                .active_low = 0,1 k' {! i2 W1 J! B
                .gpio = DA850_USER_LED0,
; ~0 R9 R3 y4 x8 E& W, Y1 m- x                .name = "user_led0",8 u- e% F8 w8 q' U. M; ?
                .default_trigger = "default-on",, H7 i" |8 M- Z0 h6 e" q' h
        },! [" I/ t& X2 N0 i! S( I, D5 Z
        {9 Q. C- `6 T; g  x* K
                .active_low = 0,
/ ?0 z6 @1 ~: C+ h$ g0 N) B                .gpio = DA850_USER_LED1,0 g. _3 O- b! F
                .name = "user_led1",- J. ?- t8 y% K0 a+ z- ?
                .default_trigger = "default-on",
/ L1 d0 a7 ?5 Q$ P3 W        },
$ O! a" q! B1 K4 _) h% U        {
$ J! D2 b) }% E                .active_low = 0,
- Y& ?1 ?3 Q9 w8 a2 X. x2 ^+ e                .gpio = DA850_USER_LED2,9 j. `  L6 t  ?; m
                .name = "user_led2",$ y# O0 ]/ D% O6 _+ z  k1 j
                .default_trigger = "default-on",; x6 D/ W/ I* x8 y: v: a8 n
        },
; e) a2 U5 S  f. O/ b& Q$ v+ z        {  }' ]  e, a$ U* h$ T9 {. V
                .active_low = 0,2 I% ^# b3 |, S" Z
                .gpio = DA850_USER_LED3,
: V: G) Z5 v2 R7 Z5 T" a                .name = "user_led3",! C8 Y) X4 \: K8 S; P' v1 {
                .default_trigger = "default-on",
6 _( U2 V+ p% g7 K        },9 R* ?; `( j8 O' Q2 M
};
! B! J$ k6 p8 R* B- R: K: ~: b( T9 R3 v
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! b0 ~  R$ e: ?; _        .leds = da850_evm_tl_leds,
) k. Z  \$ w" k, J        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
' R1 d# n$ j! s8 R( w* Z) W$ _};  L9 _. t7 |5 p+ t) v5 g
: F3 j: }0 _& }8 `
static void led_dev_release(struct device *dev)
6 @5 y! s  e+ C& Q# _2 G  ]{
1 J+ ]" l, o9 P};
( l8 F' Y+ g, d0 t" C* q- }' e3 t- h4 \9 d/ ]# U" X! }
static struct platform_device da850_evm_tl_leds_device = {% @  t6 B7 N+ M, c
        .name                = "leds-gpio"," f* B4 A$ q2 m! j( |: e" `
        .id                = 1,0 x7 U( n6 c& B* R  u# f& ]
        .dev = {
3 j7 r% q: w$ ^# k1 q4 m, J                .platform_data = &da850_evm_tl_leds_pdata,- \$ j. A6 U3 d, @: A
                .release = led_dev_release,
+ Y# m' j1 U) G: Y5 K' B        }
6 q( h5 A2 a3 s/ F1 N5 p# o};
; _) a. W! U* U9 R  t
" x1 I5 X( H* x; Q( p- k6 Gstatic int __init led_platform_init(void)
0 E+ r; Q, Q3 N{
. O2 U" T# `( \        int ret;
/ L5 p* K- h& _% j3 n2 y#if 0& `' ^/ Q7 M) o/ E4 ?
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
# a1 S7 q0 W) V1 P% o4 |        if (ret)
: H+ \2 ]8 T5 k% k                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
3 K3 o$ K0 O% j6 V# a: j  b& A                                "%d\n", ret);- B+ z& l2 x& g2 r0 c
#endif
5 x. Z6 O* x, h9 r        ret = platform_device_register(&da850_evm_tl_leds_device);
9 D( J9 B+ T( o, n        if (ret); _( {* L: i  O* D: L; \5 A
                pr_warning("Could not register som GPIO expander LEDS");. s* @+ k. p8 p3 K- T+ {
        else8 T. G5 t' s- r) Y/ U
                printk(KERN_INFO "LED register sucessful!\n");
0 U7 Z& h: M8 ]6 z' [
- h* O4 n# _9 ]2 f9 |$ r. c        return ret;
( M. a/ J4 t& y; f8 P* r}
# v5 m3 U  `8 ?  b/ e; G! A+ ?2 x4 Q3 I! q- k
static void __exit led_platform_exit(void)% e+ C2 I$ f( M
{$ E+ N# E. E' B$ U
        platform_device_unregister(&da850_evm_tl_leds_device);
6 K( x* R7 R1 T) W
5 S9 A6 {3 _# }9 |! z        printk(KERN_INFO "LED unregister!\n");+ C! a; q( [9 i& l2 x; i6 k6 [4 G
}. V* l1 I9 x  w+ j0 i
# e& L& u2 x' m) `
module_init(led_platform_init);
' A0 ^: B: c* W& k- o$ Xmodule_exit(led_platform_exit);
( `" L& Y2 M( W" B& w% a9 I. q
1 D: k1 E& N9 M, n7 o2 RMODULE_DESCRIPTION("Led platform driver");. W. R* J. F* f0 z3 d& |% i
MODULE_AUTHOR("Tronlong");, E% r" X. K$ k: x' x
MODULE_LICENSE("GPL");+ u  m6 \7 e0 I* ~. }5 ~+ B) n

2 b5 e8 {  B. P$ M# h/ Z! o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-19 13:52 , Processed in 0.038607 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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