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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. ^2 ?8 b6 ]: Z1 Q' ]* x5 t#include <linux/init.h>7 r0 ~2 _& Z0 O( Z- i, ]
#include <linux/module.h>
7 W9 o5 p8 b2 n#include <linux/kernel.h>' z% i9 I7 y2 P
#include <linux/types.h>
- L# a0 ]# {5 V2 Y) D/ P#include <linux/gpio.h>( B9 t5 o  o5 A& b$ }: \( h1 X
#include <linux/leds.h>
: M0 `8 a$ D& g& u. T) i, N! T#include <linux/platform_device.h>' F. b; p8 l/ S; p
' h5 i( {( f4 X8 z
#include <asm/mach-types.h>6 @4 u4 j+ D; ?- G3 r' ~6 ?
#include <asm/mach/arch.h>
* i& y! R% t$ n4 J#include <mach/da8xx.h>
" o! f1 a6 M: X: }7 S! j4 v#include <mach/mux.h>
& Y4 Y. H& k1 n1 m) y2 i5 d
$ d4 u! H4 S3 }( o' _#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' ?% F: S" s& @% D8 v' `$ \
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" E; {% m# u  C#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
) g3 |1 j# B7 Z- e- }& F: |1 w: M#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)7 q2 ]0 R' z1 H2 o+ ~% ?) l7 Q$ L

4 O3 y* \- Q( x8 o% N; z/* assign the tl som board LED-GPIOs*/
  m0 o+ b! M4 m/ T! xstatic const short da850_evm_tl_user_led_pins[] = {
- ^  r1 o* s: p" n" m" _        /* These pins are definition at <mach/mux.h> file */
  s7 s: c$ l4 N, T3 b* \  J4 P        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
/ ^3 ^, X, |2 P+ I        -10 t' I& K" B+ ?
};4 A; ~% v; |) c. R

4 L0 ~$ x' E+ q4 _static struct gpio_led da850_evm_tl_leds[] = {8 l& I% [4 a( h3 G5 E0 w0 @# ]( a
        {( ?; V& {5 `+ N4 I6 l7 V; z
                .active_low = 0,, N) V, h9 H9 K: A* ]  N
                .gpio = DA850_USER_LED0,
3 R' E* T6 p* O6 a  ]                .name = "user_led0",
7 d+ z/ q4 ]* E1 |6 _                .default_trigger = "default-on",
8 p  u' T% |4 w. j        },+ N: K, s& i& q( Q! f$ Q
        {
  u( [# O6 C# s5 v; L                .active_low = 0,$ D5 \3 K" M) }3 j$ M; C
                .gpio = DA850_USER_LED1,- g  B/ V. |: D5 K- N! H
                .name = "user_led1",
1 a5 T, I. |2 g2 X, J! c                .default_trigger = "default-on",) H$ o- @+ \) l8 G$ @  w
        },
2 e8 {# i- i2 Q' F! w6 b, f        {
& p0 V* [- _# N: p8 i4 I% v2 Q0 [                .active_low = 0," e2 R& B0 m6 T2 }4 ^% U
                .gpio = DA850_USER_LED2,
- e* h+ m6 G1 ~& u* v                .name = "user_led2",$ {4 Y" y0 f7 k
                .default_trigger = "default-on",
: b- s! z( K, z# L        },
% R$ c! }6 {- y& @9 C; d$ W        {1 A6 Q) v7 O* j) n- w
                .active_low = 0,/ |- B0 Q1 z, d- z
                .gpio = DA850_USER_LED3,. E: h. F3 r0 B( W' g3 S3 M
                .name = "user_led3",* o& F/ X' R& a. C+ W
                .default_trigger = "default-on"," D/ f5 P% a* z5 l
        },
( }  D$ L! T' z2 M2 C9 ~; ~) p};
1 C7 t% d2 H) @% w/ t" W" |
; n9 @3 X: X# N) X1 }+ o% `static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' \! ^3 L& N) c. o; u7 F- ~
        .leds = da850_evm_tl_leds,4 r3 k7 L2 g/ g, x) V. ^
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),* [  T& ?* r+ a* Q! q
};
- c  K  Y( v! v6 x3 R4 F' e
2 H# _' K( w3 j8 d/ kstatic void led_dev_release(struct device *dev)
  o9 }! ]1 m* i; a: A{
  K, l8 M. S; X; n};
" e8 B% D2 @7 ]" Q8 f# x$ U3 _$ f  K" n' {, H0 w
static struct platform_device da850_evm_tl_leds_device = {* P4 ?$ P( e8 ]" o
        .name                = "leds-gpio",
- j# |6 W2 h2 j' X( Q        .id                = 1,
# H, I; u: s! ^* l        .dev = {8 h1 j# t' I7 a  j# b3 \0 [9 u* N; A/ r1 \
                .platform_data = &da850_evm_tl_leds_pdata,; z- R: v0 j# v6 V; w6 o3 n
                .release = led_dev_release,
( j, I8 s7 ^8 K  O8 r$ N  j, J) `        }3 ?: [: x6 e, Q& ?6 e
};/ o5 c. L: U4 M" Y
6 h$ w7 p* {/ L5 V* V. q
static int __init led_platform_init(void)8 G6 a4 V3 Q) O* q, I5 [
{
0 z3 @; V" e! u+ R        int ret;4 C  I7 n$ {$ R: f7 \, q
#if 0
# K6 M+ G1 W1 j6 T8 [' ]% O        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
4 i8 \6 k9 a6 h2 n) I( r  P        if (ret)1 @  C' O/ f8 U# o" V
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
& ?! N$ ~* p9 m                                "%d\n", ret);% N8 k1 |% Z0 F% p5 M
#endif2 Q% W) S/ A' m. H8 ]7 e
        ret = platform_device_register(&da850_evm_tl_leds_device);
2 H* `0 f9 W1 s6 w9 y' \8 ]        if (ret)
4 y3 V8 l+ F) a! r                pr_warning("Could not register som GPIO expander LEDS");% H0 I# ~) A9 t3 I; ]8 z. F3 w, H
        else
' X+ r1 t; z) t5 n                printk(KERN_INFO "LED register sucessful!\n");
( I! D5 k2 V+ U. e' O+ R. g) y# [/ D6 E; y
        return ret;' i) f4 j! S4 H: _
}
" w2 J) n5 [8 U& Y% |0 P5 E+ e" f& F, k% a% N; f+ S
static void __exit led_platform_exit(void): t; w1 ?" ?1 ~5 w( |5 L0 B
{
2 e( M( [2 m* q. W1 t        platform_device_unregister(&da850_evm_tl_leds_device);
7 C: J( z: u  L, @1 {4 T
  p( d2 z1 r! v6 V$ Y6 K8 |        printk(KERN_INFO "LED unregister!\n");# Z( ~$ _3 w. Y3 }
}
2 s: c% K1 ^$ g$ X: j( S
/ t% j* P; o2 @: z% N/ p6 G4 Emodule_init(led_platform_init);
; U; q, P$ j9 @" Imodule_exit(led_platform_exit);
$ z! Z" u# c2 y- T/ A/ D% }9 H9 Y4 e& x% C5 I; `3 d- e0 M
MODULE_DESCRIPTION("Led platform driver");
3 y% ~* n) r/ }3 [0 ?MODULE_AUTHOR("Tronlong");" u- l" f) [3 K+ K. D, l
MODULE_LICENSE("GPL");
. L# {# @! X& R
8 r& y' `, m) V6 D% |% l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-29 03:21 , Processed in 0.038371 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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