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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
- p; F* f6 q. X, ]' s! O3 y#include <linux/init.h>
( h1 P" |* j  N0 p4 N1 V#include <linux/module.h>' T# }% h  P* p2 }  w
#include <linux/kernel.h>
# C9 K6 [; Z2 S4 |+ d  u#include <linux/types.h>
( h, |  X% Y! E1 B#include <linux/gpio.h>5 R+ o0 @3 X  t* d( Y
#include <linux/leds.h>
9 {7 E7 H% g9 B+ O0 [5 M4 y9 ?#include <linux/platform_device.h>
4 @! {$ l5 A5 x  c1 c+ e' W
  T9 y. F: e* e4 q#include <asm/mach-types.h>' Y: ?9 S: r/ F1 A6 N7 |$ l
#include <asm/mach/arch.h>
8 T6 h; E; ~8 Z# q) E( d#include <mach/da8xx.h>0 x9 |9 B& U6 ^! G% s
#include <mach/mux.h>- A2 \: e: M" C; n- z8 Q
4 `" c* J' G1 _9 f; d% U
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- E. L4 D. j" y. G9 M
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)$ ]8 N+ h% [. l5 x6 M- u- _
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# f& h/ }& L! U% s0 m4 }#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)7 f( }8 V- z1 m$ G
. A: y5 K, {, G, k# H6 [* {
/* assign the tl som board LED-GPIOs*/1 S% C, M+ V7 E) F
static const short da850_evm_tl_user_led_pins[] = {3 Y4 W1 M3 s: J' Z0 j0 G! f2 z1 I
        /* These pins are definition at <mach/mux.h> file */3 h' U) C$ z# r
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,4 w0 Y* V8 o9 o8 j- e# }+ p
        -1
. M4 M6 R6 D: {, M};
7 N) l! K9 f8 Y1 {0 p3 w1 s5 g- ?/ B2 |9 U; o  S2 L
static struct gpio_led da850_evm_tl_leds[] = {
: i. n0 [; k# Y7 r) d        {  Q7 ~6 p3 q9 }& [4 @- s
                .active_low = 0,
$ g/ T6 K% N. X                .gpio = DA850_USER_LED0,) F4 ~; `6 i- \
                .name = "user_led0",
  L: V7 _1 C! C) s+ H' i) n( j3 }                .default_trigger = "default-on",6 t* |/ T& U: W4 {# P( B4 ~
        },, ?* q1 k) m3 D
        {, j  d0 g) Z9 r6 a
                .active_low = 0,
; V4 v9 v  d. n( _; X                .gpio = DA850_USER_LED1,
1 Z3 v! `: e' p0 f  w. Z0 W                .name = "user_led1",+ P) e( Y& |! p- Q0 [
                .default_trigger = "default-on",
' E2 h# h# \) f3 Z        },
2 o  E; j6 g! i: x1 V/ r) v        {2 K3 p- f: y* R  ^) b& ~! p9 @
                .active_low = 0,
' c  S3 ?8 h% g0 L. o+ b& S                .gpio = DA850_USER_LED2,8 e$ G; M5 {0 ~7 M% x& d$ u
                .name = "user_led2",; g: n1 L3 c1 r
                .default_trigger = "default-on",
, g; X$ \1 t/ l* s4 u' l1 |1 ~        },) W- S) x2 E$ v- F% ~( I
        {# e/ w- _' j/ h2 k6 _
                .active_low = 0,
, l9 K5 j7 r4 z$ F                .gpio = DA850_USER_LED3,% I$ P/ {1 p3 Y; @
                .name = "user_led3",
0 n$ m# @; Q. O7 r  n2 c0 s' F                .default_trigger = "default-on",
1 y9 k0 E$ ~" i. F, P! K  P  a" u# Y4 n        },
6 {8 z: P8 u5 s* M# r* i};
! p2 |. h4 S% {) L% u, t' D! f/ S5 V, G! s
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {- K) v7 ^1 a! r1 O. d% m, L9 l
        .leds = da850_evm_tl_leds,
) I; p0 e7 b$ Q% c- ]* z        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) ?: }; F' a4 A" ]};+ U3 j0 L; c3 `  h
2 b' E7 z- R4 ^) J
static void led_dev_release(struct device *dev)
3 [0 |3 ~( w: n& K1 R{) [, P3 v) f% A6 a6 b% x! {. N6 `
};0 E4 V% c( _7 H: [" Y

! t& J* e$ W* _' Ystatic struct platform_device da850_evm_tl_leds_device = {; V. _% q( R- |' ?0 n) x
        .name                = "leds-gpio",
' N6 @) L. v0 I0 C        .id                = 1,
. p" g% z2 ~- M+ Y) h# e! r$ o/ z1 E        .dev = {$ G; u/ M0 A0 J
                .platform_data = &da850_evm_tl_leds_pdata,( Q% z4 Q4 u' G7 q2 @. i  z
                .release = led_dev_release,9 `3 d/ t  P+ @+ C' V; a, w
        }' c. w( U5 ~8 Q- Y* R8 l
};
+ z1 G; m$ \) m" p' c+ C% r8 g0 ]8 D2 O+ Q
static int __init led_platform_init(void)
9 b  b$ o* R* V1 ]{1 T; ]9 u/ A/ g3 b( ^2 V
        int ret;" V/ |7 E& e$ T
#if 0
) ^3 O, d7 I( Q5 L2 `" L        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  e) Q$ R9 m: A- F! J& r
        if (ret)( F" [, ~3 j5 \" q1 _
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  K5 n1 n, a# |% H: ~
                                "%d\n", ret);
: Z( d- Z* Q0 B# ]  `#endif+ o7 P- E3 h0 [# d8 h( t- {, W
        ret = platform_device_register(&da850_evm_tl_leds_device);
2 G9 z: {7 B5 M        if (ret)
, f4 X& M# }3 T  v+ {, N; V# B                pr_warning("Could not register som GPIO expander LEDS");2 J% g+ S% |; N
        else; U0 T# @) \2 }( j  d8 A
                printk(KERN_INFO "LED register sucessful!\n");
8 Y" b) O' n. Z' I6 a# ?/ ^- ?; Y- v& t+ Q7 Z# ~& r- B' f7 p3 v
        return ret;+ {& I3 m1 u% @; H
}0 h5 o2 F! U8 ]' W7 k
$ _3 h. i7 h; \7 _0 y1 W9 h9 a
static void __exit led_platform_exit(void)
8 Z& U/ b$ p0 J  h  o  u{+ L8 @( `. j. E7 b) c
        platform_device_unregister(&da850_evm_tl_leds_device);
7 e2 [# C$ a) \. d& g; h& i) p! m
* V0 h6 a( V" S: L- l2 I' E& S, r" x        printk(KERN_INFO "LED unregister!\n");9 L6 o+ T8 F8 m: w$ u2 p5 d
}$ _; w5 i! }2 B6 o5 R3 X

0 G$ J- o, W$ Q' S9 G1 zmodule_init(led_platform_init);
, }" [$ V! k/ z* B& Imodule_exit(led_platform_exit);
2 X/ J2 n/ A" I$ K5 }# X+ C
6 j, n8 O8 a- `$ o0 UMODULE_DESCRIPTION("Led platform driver");
5 b9 f7 r: \" J1 P5 Y% z% B8 \* GMODULE_AUTHOR("Tronlong");
1 i/ A) d: `$ ^+ p6 sMODULE_LICENSE("GPL");$ y3 w9 \! }) U6 C/ q, v
5 s# I: M0 W* d- y  g* `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-3 00:47 , Processed in 0.039583 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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