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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
- N( o$ \& I; g#include <linux/init.h>
+ K2 w  n% b% B, w& k- F#include <linux/module.h>! V" {: D, B  f) @
#include <linux/kernel.h>$ J! K* y9 J  `# S: y
#include <linux/types.h>
9 F0 ~5 i& T2 K2 b* s. h( z#include <linux/gpio.h>
6 N9 l) |, {3 e1 a- y2 Y#include <linux/leds.h>
6 f  b* f" x6 O  z4 w  d8 F3 S#include <linux/platform_device.h>
7 L  E. Q* m  C4 W+ c1 H- Y8 q; l! K4 n
#include <asm/mach-types.h>2 I3 Q! F, A4 W& X% g
#include <asm/mach/arch.h>
+ |3 B! Q; l% O0 F5 _7 E#include <mach/da8xx.h>0 y. M" i! ^; }6 c# d
#include <mach/mux.h>  y+ n! o0 d1 i& c+ b# q7 X

9 X4 v% k/ u/ K6 h  G/ t#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
7 v6 b" _: h2 {% l#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
) Q( O5 _" R+ C9 `/ v7 ~#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
* R4 q, s+ U/ v6 `! B- A6 J#define DA850_USER_LED3        GPIO_TO_PIN(0, 2), i2 b6 c3 p1 w, M6 r

: l( D. }3 z3 M9 B' |; T2 E; J& z% v/* assign the tl som board LED-GPIOs*/) f2 L6 l; R5 i3 ~- H, O
static const short da850_evm_tl_user_led_pins[] = {+ j8 U# S. P  J9 s9 L
        /* These pins are definition at <mach/mux.h> file */3 |5 o$ q2 o0 L2 d6 Y( H( h: B  ?  n
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,! [  |1 v& g) W! [
        -15 ^/ C4 q9 p8 g2 q" @+ F
};3 G5 P- _1 I% j9 C2 [

$ f  T2 O- Q2 Tstatic struct gpio_led da850_evm_tl_leds[] = {
; l) k+ ?2 g4 y* }& y) R        {" s0 L! o' `7 c; G+ l, Q6 Q
                .active_low = 0,& L0 _% h* z/ T$ h; c3 Y
                .gpio = DA850_USER_LED0,6 B& H# n# x4 t2 d
                .name = "user_led0",
6 d! v* ~- ^5 z1 M! K: ]  b                .default_trigger = "default-on",# N8 v. \1 s8 ^# ~
        },2 d2 V6 e( \$ B6 @2 A
        {( i. D* w. }- n4 E) D
                .active_low = 0,
7 ?/ G3 Z+ p0 h( W- d2 [0 x' K% Z                .gpio = DA850_USER_LED1,
7 x  n, y3 u+ }+ z, f                .name = "user_led1",
+ V2 J+ B# o$ f                .default_trigger = "default-on",6 m  ]. j# S! @" ], M6 n
        },6 D% }# e- n9 ~! k; c) ^
        {8 Y9 i6 j! }! S4 l/ B% h
                .active_low = 0,
; S) I+ H* J/ b. T                .gpio = DA850_USER_LED2,0 z" ]9 W1 A! _) @0 A- \! u3 r; |
                .name = "user_led2",: b  e8 }+ J* f/ O! V' Y) X# U! Z
                .default_trigger = "default-on",6 N' H+ A6 s$ @! s* C1 _
        },7 w' a. l1 F" d2 F
        {# S( |" \2 D+ n
                .active_low = 0,7 s7 h" N) o* k$ v. j+ ~" K! j0 |
                .gpio = DA850_USER_LED3,
+ e3 F4 L  U4 Y: h3 [                .name = "user_led3",
# k: B. g. ]" k+ T* p                .default_trigger = "default-on",
% m0 `. [! K) H3 W3 z6 n7 Q        },; x* m& E: B: e5 [! A- \' Y& D6 x
};* l6 h" _+ N# s$ f; Q
/ }# T3 \# P8 Y4 H- \6 n1 h
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {  c! d/ k0 ?' v9 N8 v& V
        .leds = da850_evm_tl_leds,% w. ?: d! e" J7 A3 `4 |
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 Q1 V: g! j2 _  G% K
};
: S8 j3 p  M# @' m0 B7 Q# k8 W2 T7 J' `  \5 P5 C- X
static void led_dev_release(struct device *dev)
4 v# L4 s! A. H. l3 _% f' P1 n{
$ a) J7 v1 ^. p: E7 |! ^* S+ |};  H" b" ]; R9 _' ~1 f
. Z  x& ~$ r5 x/ M3 w
static struct platform_device da850_evm_tl_leds_device = {- C1 f. b, t& I% C5 C" m
        .name                = "leds-gpio",* x) i3 }2 M7 A7 P& g6 H
        .id                = 1,; g* P0 g( O5 y2 u4 l
        .dev = {, E6 E- {8 ^$ v3 `) z& w
                .platform_data = &da850_evm_tl_leds_pdata,4 L+ V5 o3 R! Z  v) o
                .release = led_dev_release,
$ U4 p3 R% N" w' B1 Q7 m        }
& c3 z6 P+ l- X2 s8 g, h0 O, M1 P! _};9 S, K0 Z& ]$ d; |& c1 r3 w! c3 H

0 q) Z) G- j6 G! ]6 kstatic int __init led_platform_init(void)( T* k5 E7 G$ \8 L5 k
{
& a+ c2 i7 @2 K" l  i        int ret;
- x+ N  N" _  J#if 0+ i9 \6 _6 p" |# D+ I
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);2 d7 R6 s3 [2 R8 j# q& u
        if (ret)* h* p) v- L2 v3 u8 }. ]
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
  M$ }: l. c  h3 i0 A% I7 m) g. h                                "%d\n", ret);5 j& h2 M' a- V3 ?! ~  L4 O- j+ e
#endif
2 \! Y  b8 _) e; H+ Q        ret = platform_device_register(&da850_evm_tl_leds_device);
% j5 }' C  P6 y5 M7 ]3 @        if (ret)$ `9 R, E/ R5 s
                pr_warning("Could not register som GPIO expander LEDS");
; l8 P! L( j( x        else8 o! M& w# e$ q& U7 c( m. y
                printk(KERN_INFO "LED register sucessful!\n");+ s! b! p) i0 G9 k9 Q! ^* W- h' [

$ i; m+ h6 a# m+ b, ^! K6 t        return ret;1 [" p+ Z* J, V  q% _9 b
}& X: _& w  i5 _6 E
0 x1 n0 `6 a$ h; e; `8 U: L* ], {6 T4 I9 @
static void __exit led_platform_exit(void)
0 T! p& H$ `/ g1 J* f# k/ l{
9 c& I2 P3 G8 d) g" {) I        platform_device_unregister(&da850_evm_tl_leds_device);
4 s6 {5 G! Q% P! ^9 A7 d5 J
; K& P. |& r$ g5 q# d        printk(KERN_INFO "LED unregister!\n");4 K& C' S' _9 [6 z7 b
}
4 p9 O3 ~' v$ r3 R0 c3 P; |. i6 ~+ Q& F2 g, j
module_init(led_platform_init);
$ L5 c! c) y0 S  imodule_exit(led_platform_exit);5 k& H9 U) h$ m2 F

* }! m/ U4 q, F  yMODULE_DESCRIPTION("Led platform driver");
9 `: a6 I  x7 _# C- j3 `7 A- u% HMODULE_AUTHOR("Tronlong");  W) q2 p! e+ V6 f0 e4 Q: b0 b7 v
MODULE_LICENSE("GPL");
* e3 L* h: Q& t7 T1 {
% }, d* R( B$ B0 N  V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-25 01:52 , Processed in 0.059584 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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