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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。8 [! O2 v5 g0 z* J* M
#include <linux/init.h>8 B, L3 B) E& E( h+ c
#include <linux/module.h>2 {; z2 k9 s: J1 ?
#include <linux/kernel.h>
$ L) }5 t5 ~% z, @2 a, M#include <linux/types.h>8 P1 B! P1 I% P8 w6 d! F0 z0 Z
#include <linux/gpio.h>8 @, d8 i- l# o4 Q, n6 Y
#include <linux/leds.h>
" g' c" i' j1 r9 N. Y#include <linux/platform_device.h>! k0 j# S+ e$ T7 \# ?

6 Y+ P* r% I; }3 L#include <asm/mach-types.h>
9 Q$ L9 z2 I2 o% O0 ~0 }7 f' Y#include <asm/mach/arch.h>8 u% J- H1 u$ q& u# y# D
#include <mach/da8xx.h>
  B. P7 A% t( J, H#include <mach/mux.h>
6 U! k9 d( r4 P  ]) w1 u7 p& c) I% ?1 c6 ^: f; [
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)( H) j$ q9 r7 q+ S- F, L3 G
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ x9 ?' s- Z6 }4 O- m0 A; o1 p#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)1 V; C+ E- s" C% o8 l& R1 B% ]! X/ |
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# M' l! E: ^/ @% C: J" g, C# m# e& c# `5 U6 ?1 l8 ^" a
/* assign the tl som board LED-GPIOs*/  z4 N+ ^$ }: S% G, ]4 e
static const short da850_evm_tl_user_led_pins[] = {
. ^: U% S, R" T0 J( n2 d        /* These pins are definition at <mach/mux.h> file */
& v+ K7 N3 U+ s; q3 ^        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
* F* ?3 q" l; E) W/ V$ `        -1
: m! P5 m8 U! Q/ J};6 k3 A5 U! q. O( G9 `4 `
+ \1 b& @( M/ U% u$ R
static struct gpio_led da850_evm_tl_leds[] = {
* r4 Y/ A: o- a; F) _        {
6 ^& G/ U; Z, H0 I* |# X                .active_low = 0,4 I* d+ z  m: Q( [( N/ [5 w
                .gpio = DA850_USER_LED0,
9 ?2 I8 d8 k4 F  k                .name = "user_led0",2 `" w; a/ e1 v  a: D
                .default_trigger = "default-on",+ S/ `- ]# k( v9 p! f* p9 A
        },
0 T' R2 X2 m2 j, g1 |) n4 F2 |        {5 G9 ]: {4 N& h# K; g
                .active_low = 0,/ c  t1 ^, g5 {% u3 p
                .gpio = DA850_USER_LED1,0 J9 ?" N0 L7 Q
                .name = "user_led1",
. P. P& \. K5 ]0 Y! V; t- P                .default_trigger = "default-on",& a) s5 f' B) j( j" G( J
        },
  m! W% u* m3 Q  D. m        {
3 _2 J' V9 _: W, F                .active_low = 0,
! G$ Z" Z! v& k  e6 N                .gpio = DA850_USER_LED2,4 v$ {$ P# h& @
                .name = "user_led2",
1 v, ?* e2 Z1 u                .default_trigger = "default-on",
3 v4 F# P! O8 d5 W        },# f) z3 h; ^7 i+ n; w2 v9 r
        {" B. m! P0 Z# i; y- \0 n
                .active_low = 0,! E8 L3 d9 ?: }) m9 T) U
                .gpio = DA850_USER_LED3,
3 W. i3 C0 N6 T1 P3 X4 Z) A# W                .name = "user_led3",5 ?2 {2 G- C& W! ~' x: E4 B
                .default_trigger = "default-on",1 S9 g0 a6 `) _0 N
        },
& j/ q' j* j& P$ _* w};
/ ?$ L: m) W( `3 {+ c8 q, V( o1 P5 ~3 t" D. |1 m
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {: q' @$ P" ]( J" v3 s8 s% }
        .leds = da850_evm_tl_leds,& l' E' g+ i9 J+ }4 O6 Y
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
8 o# M6 C5 h6 ?0 I6 ?8 o6 g};
8 e2 o/ x& L* H. b, Z2 t3 @- b6 @, r4 n; p0 s; q  y, x
static void led_dev_release(struct device *dev)
# |8 A; i. S4 t. j; e{' f! M( E  H! b$ n' O
};
) F4 ?; T, S, D8 a# X+ ^7 k9 {+ t6 e7 e) Q& J4 O& A5 |
static struct platform_device da850_evm_tl_leds_device = {
. O7 c7 l, T8 Q" R        .name                = "leds-gpio",
6 S( t% R5 a; i/ v& R1 @        .id                = 1,
* r4 ]+ O) O4 l7 q% w+ _        .dev = {/ {# {& o+ k4 n: H4 X3 D
                .platform_data = &da850_evm_tl_leds_pdata,6 d: a! G+ \) B6 K* m0 [; G
                .release = led_dev_release,
8 z0 J4 z/ ^6 y7 f8 m        }+ K: [% C+ h$ g& N  F* Z
};  Y" `% a' {$ @# _5 |

: j) i/ q5 k7 ]% C3 I9 S. H$ Lstatic int __init led_platform_init(void)$ @8 T. ^% ~6 I- @) @: x- w
{
9 W2 O: a& l% g5 u1 S% V/ x8 S+ d        int ret;4 [5 U! t* q: x. u
#if 0
0 P: z& M# r6 ^3 m; a& P" p! P7 \4 }        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);4 W; d2 @' {) X' c
        if (ret)
" F! p9 |4 T* z+ [" v                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% K0 |: f$ J. m8 q. c0 F' l                                "%d\n", ret);+ d! d) Y, I7 k9 _
#endif6 g) Z% u& g2 r# z  T8 g
        ret = platform_device_register(&da850_evm_tl_leds_device);
, L. [7 n% U& n: |) u        if (ret)+ z6 c% H" ~5 q) J
                pr_warning("Could not register som GPIO expander LEDS");
* W: S. j+ ?* d/ K        else" `" ]4 E) Q6 h. \+ i: j5 v2 L
                printk(KERN_INFO "LED register sucessful!\n");
# @$ I1 h3 e% ^# M' X
, {9 c; s$ z& G0 W' H% d        return ret;
6 L; Y  O) b' i}
+ q. ^7 e0 c7 p' H9 t
6 o5 ~6 f3 {, ]: {; }! g. V8 xstatic void __exit led_platform_exit(void)' F7 h: h  Q' X
{2 B& N7 s! i! J& v' ?
        platform_device_unregister(&da850_evm_tl_leds_device);
: Z2 M$ R0 c2 n+ a& z, y% P  Y, }$ B$ h3 r
        printk(KERN_INFO "LED unregister!\n");
' n# Y& U8 {5 y; P4 X, p" x  v}
# f; Y4 \8 W0 A8 I5 ~" N
. E3 W- U" G5 z! smodule_init(led_platform_init);
4 u, A% h, Q' ]' I: B5 ?module_exit(led_platform_exit);1 O% v( Z  D) j' |' T

- S) j2 B* D2 r' i# HMODULE_DESCRIPTION("Led platform driver");
1 O, G* o$ F/ O8 UMODULE_AUTHOR("Tronlong");% U( E$ k, `5 G/ \! N5 U6 ]$ [
MODULE_LICENSE("GPL");2 M* X# H3 J) k2 F4 U

/ p& w8 f, J# B+ |6 R; `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-19 16:03 , Processed in 0.040755 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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