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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. e$ E, M1 ], {+ O5 k$ E1 d" d#include <linux/init.h>8 {/ g; v' S( s$ j# X, n
#include <linux/module.h>
: T$ Q0 [% U3 a) W* z* H- c- P#include <linux/kernel.h>" Z4 s1 [" Y# i; d+ P8 I
#include <linux/types.h>/ {- u* c" Y0 g- @. V9 H5 ~. W
#include <linux/gpio.h>
: C' K& s8 z# Y; r* {/ o$ R5 n#include <linux/leds.h>  P3 {3 h* M5 }6 c, e
#include <linux/platform_device.h>
, \8 o4 ~9 ~# J/ U9 z; _( f- S7 e* ^) p, P+ |8 f
#include <asm/mach-types.h>) q  L/ f8 U% u' H# t2 i
#include <asm/mach/arch.h>% k9 w6 g& G: k! B3 A% p- \$ x
#include <mach/da8xx.h>
2 I) p+ T) e- g; i+ ~5 q#include <mach/mux.h>
* Z; {/ ~9 M; H8 k, [+ G( G" G4 B) d. {/ w( t9 {
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 f- m! W/ v' [4 W, l7 m#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
; }5 {8 A! V8 w# q; o. p1 l$ y5 q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# T, c" ^( T7 {7 M  ^3 y#define DA850_USER_LED3        GPIO_TO_PIN(0, 2). d! P9 ?& [2 a# M, ?" {

1 Y  n- v; j  k' b7 |/* assign the tl som board LED-GPIOs*/( o+ S0 Z9 u# ^" }' k* ~$ b
static const short da850_evm_tl_user_led_pins[] = {
5 Z/ \6 W6 H( ]6 A2 G9 P        /* These pins are definition at <mach/mux.h> file */
) d$ O- q3 M) i8 X. ^& s4 L0 e4 f0 \        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
1 I/ d" W" v, D- Q0 ^; G        -1
" |. y4 J& k& ]/ J* E};. \- x' |6 V3 U  U# Z7 Q; \1 O: m
6 Z: a( E3 Y+ v  i! e% o5 S
static struct gpio_led da850_evm_tl_leds[] = {
8 J$ }; t0 a# l5 J        {  I/ p2 m' G/ W, k# Q: C
                .active_low = 0,4 p. u* B+ [4 f8 C/ B
                .gpio = DA850_USER_LED0,
" a1 f6 x# u) s) M4 o7 n                .name = "user_led0",
7 j7 S7 {1 k0 z1 L+ r                .default_trigger = "default-on",
: O9 K9 L9 d# E6 q5 v& S8 a        },+ L0 \3 `# i" v1 ]! h# ]# s& Q
        {. R: ?8 T* G! C6 F7 H/ c& r: G
                .active_low = 0,
7 N$ ]2 R8 B7 |                .gpio = DA850_USER_LED1,
0 ]( S5 o, s% l* ?                .name = "user_led1",
6 J# B% K; P5 s: |. L2 x                .default_trigger = "default-on",/ T* g7 x$ x6 j' B
        },
' U' K( Y$ ~- F3 v/ O" |        {, y7 D' G: ^" Q
                .active_low = 0,
: T/ T1 h5 c3 \& I. c                .gpio = DA850_USER_LED2,
- [( L0 x8 a4 B5 h8 N6 O2 a$ C                .name = "user_led2",
5 q, j+ q3 ?7 @& F0 R: m                .default_trigger = "default-on",) R/ z7 A7 {: o3 I
        },+ l3 P; n- O/ q* u, u/ ]
        {
6 Z4 i, k* q) J+ R" g                .active_low = 0,
3 }( Q9 ?8 V7 ~                .gpio = DA850_USER_LED3,
  d2 M; ~% N' _, `3 Q( c$ ]4 N# D                .name = "user_led3",# W% C1 ^6 {& q* T) U) b; C2 ?
                .default_trigger = "default-on",
- p* [& U( `; i  V6 Y6 _9 O4 x: p5 g0 s        },7 W; N9 K! X4 ?+ h
};! ~' i8 |, X0 U4 q
4 E  d$ P1 |4 }1 y$ H, a6 r. T
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {. |6 v6 {4 q3 y. z/ Y4 h/ N
        .leds = da850_evm_tl_leds,
2 g7 z6 ~1 `) g6 b. v9 w        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
8 ?! M! h6 \& R' x};6 C9 p  P% N$ U. ]. F) C
9 m1 R% j% @* K& Y
static void led_dev_release(struct device *dev)6 {* _# J$ A" q6 E$ x1 b9 A" [2 t
{
# c% A% _% V- O) J8 J4 Z7 Q};$ J7 T; A& _. s/ y' ?! @6 I8 g5 P
5 `, l! s# K, M) g0 w8 m
static struct platform_device da850_evm_tl_leds_device = {3 E$ u$ k" f! @0 }$ _) j1 T/ |1 G
        .name                = "leds-gpio",7 u, v3 ?6 c7 T/ h
        .id                = 1,/ N2 c" F: `( a0 R2 |4 b
        .dev = {- S4 R. ?" `( {
                .platform_data = &da850_evm_tl_leds_pdata,8 R; [6 \( D5 b; |1 y
                .release = led_dev_release,
- ^# D% t/ C4 A3 _; n  y        }0 I0 {/ h$ u( q
};) j4 e1 h+ I7 A/ H0 g
5 D) F! @# _$ V' V$ c& J! \: c; t
static int __init led_platform_init(void): {* i% o; }# M1 ]  }3 k. T, W1 ]6 ^1 B4 {
{2 k; N, c5 `, f0 a' x
        int ret;
/ y# m4 l, S3 E- d) J  F#if 0
3 a- O" n& f3 L        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  K( J- I+ f4 D2 G/ d
        if (ret)
) t$ b; M/ h# l& e                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 \8 D  q% q5 h3 h* X
                                "%d\n", ret);
$ e+ x- l' I4 H#endif- ~+ w. F1 W' R+ K( v5 @( t
        ret = platform_device_register(&da850_evm_tl_leds_device);
% \, Q$ H6 v" V2 i        if (ret)+ _! u' ^- \& j; L6 Z
                pr_warning("Could not register som GPIO expander LEDS");: ^7 o: R3 T! S( l5 J
        else6 F; w+ u. v5 V( a# g* j
                printk(KERN_INFO "LED register sucessful!\n");* f2 ^5 T5 c9 w$ \; p- B

$ w! n) @2 F& l& _        return ret;0 z; G' U3 V7 Y3 b
}8 h+ {' o; \$ o
  a% n3 [. q& E5 b7 [% `6 q% y
static void __exit led_platform_exit(void)
& {8 f6 u! l9 R9 u2 `, X4 s{1 R- r' x: t3 E! g
        platform_device_unregister(&da850_evm_tl_leds_device);
' b  H* C" [' V; o$ n3 X8 Y4 P
. v/ U% j6 X! ^! Q2 L        printk(KERN_INFO "LED unregister!\n");
' j, O. p$ q! Y" o2 B}
2 z2 s) Q$ R+ g- `; A) b# w* r
& t& ?5 U: Y7 X) y+ qmodule_init(led_platform_init);: m: X4 Z' J( `6 E8 u, N  t
module_exit(led_platform_exit);5 I- Z& E2 i1 m7 g3 P' |) [; B

. {4 Y8 h% {6 YMODULE_DESCRIPTION("Led platform driver");! I. G( K# _- p+ t: }1 ^: _2 {
MODULE_AUTHOR("Tronlong");2 a0 z' |2 O- o6 E( o* W
MODULE_LICENSE("GPL");
' g% |" n& }& o1 R: \
$ w4 V, a3 s. `  t5 J5 c9 G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-24 13:01 , Processed in 0.038074 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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