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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
) t- l5 L) @2 t- l- F7 e#include <linux/init.h>
# D6 I% ]5 Z) ^/ j+ s5 R+ s#include <linux/module.h>
" q- o- `- v7 t* k- u4 L* {4 F2 d#include <linux/kernel.h>
: p7 F. y4 E; f#include <linux/types.h>4 f+ f) F! @4 i/ |
#include <linux/gpio.h>! P7 X/ [) x6 }' y1 b
#include <linux/leds.h>
; ?; e# l- m5 E2 Z0 u  W#include <linux/platform_device.h>2 j6 o3 f4 f% ~4 f

; s" w. O; D. H* j1 [0 u; G#include <asm/mach-types.h>
8 ~9 B- }+ c2 Z#include <asm/mach/arch.h>
% N9 B6 Q# |7 G/ ^#include <mach/da8xx.h>
  U6 @8 ^* d% E8 J#include <mach/mux.h>& O6 @7 I0 M5 {; D. S. `  f8 q1 g
/ z8 z* w, }+ Z& N! {- D
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ j/ \( H3 [1 \: \2 v4 D  b
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)3 j: Z* O) M+ |6 i. B3 J2 m' E3 L
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 Z* n7 K/ ]+ w% [#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
8 [$ v0 d! V+ a/ e5 X
: h5 {, G9 E7 s: }/* assign the tl som board LED-GPIOs*/
- N. h# P9 U9 ^static const short da850_evm_tl_user_led_pins[] = {- P7 K, x/ k/ A
        /* These pins are definition at <mach/mux.h> file */0 j1 j+ V* x- @/ g8 B3 r8 y
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
; y& K: C7 y# g' Y+ F        -1
9 w" I+ e: T+ b" q0 u};& E0 ^6 X+ p: v0 }8 u. E
+ U1 t) f+ b! m2 u
static struct gpio_led da850_evm_tl_leds[] = {# a3 W. j0 y; f! b/ Z, A
        {
" h# f$ k; ^' y: A! {                .active_low = 0,
; p4 S8 Y2 a; l; z                .gpio = DA850_USER_LED0,
) I( [- _! E9 J2 y% i# p' Y  d. y8 I                .name = "user_led0",
/ E( G1 I5 j8 n; ^9 _7 G                .default_trigger = "default-on",
# F4 k/ X4 X3 H( p4 A& ~, V        },
# z3 o$ t5 ^: S9 C        {4 r2 U  M" C; [) s
                .active_low = 0,/ \8 d) j3 t' r6 E6 I8 g
                .gpio = DA850_USER_LED1,
8 Y3 Y, K- w5 }                .name = "user_led1",
1 F/ a- z% H# v. `1 h1 G8 z                .default_trigger = "default-on",5 C3 n0 j; y- A* y" \4 {
        },2 c, U/ P( B9 |- x# q
        {* _# Y0 y3 ^; F2 [4 Q  ^
                .active_low = 0,7 L. r/ i" f) y  X$ d
                .gpio = DA850_USER_LED2,
* \7 A! f# t5 G                .name = "user_led2",
$ C, K3 j  a1 U4 _9 K                .default_trigger = "default-on",
4 D! S" f: _6 r* g1 [8 f$ B        },  K9 v7 {6 I, L! h" O4 |
        {
/ D* V! W) l& J3 B0 K) m. ~. r                .active_low = 0,0 ~5 `# D% W( h- Q+ ]) U) y
                .gpio = DA850_USER_LED3,
. `) D: M5 N# t4 ]8 V                .name = "user_led3",
2 X, y& f5 i3 K                .default_trigger = "default-on",
6 }& q- ?, |5 m1 w- o        },
8 r, t. C9 T' L};  x" E( f' t% w5 T) b

% T& X! E8 \8 w4 Hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {. [8 ~0 O3 K' p6 g
        .leds = da850_evm_tl_leds,
" _8 n3 s2 U1 |. s( c  @& e; Z% s  I        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),% B9 C5 p9 [% ~! z' R
};
- j3 V) d1 G% s. b8 k
. g# H* \7 b9 ^, {6 \static void led_dev_release(struct device *dev)
1 ~  N8 M3 N4 r6 ~$ h% E9 J' v& i{# s# d. }2 q6 S0 x
};
1 J6 G' t* Y9 d7 k6 s& Y# H/ J! o9 f& g. K' d( a; J: }
static struct platform_device da850_evm_tl_leds_device = {
, |& v" y1 m4 k: f) I2 W$ _        .name                = "leds-gpio",+ `4 k7 d/ r/ L) q/ ], N( ^) L9 }
        .id                = 1,
8 V5 w; s- o7 S        .dev = {$ ]  V7 x) I  R9 F* l7 a9 |; r8 R
                .platform_data = &da850_evm_tl_leds_pdata,
$ B' G+ [# U- K                .release = led_dev_release," _, L6 x. r* C' u; o- b
        }
' y* j1 w: p& z( B5 g};
. b9 j' |, j" n4 c4 _6 Q9 f- ^  V9 Y9 J7 }( P
static int __init led_platform_init(void)9 z$ r4 M6 y% }- [3 R) k* W
{1 l/ x! n+ ?9 P) f2 f  I
        int ret;
2 Z5 c/ z1 y; R#if 08 R8 u# ^- U6 c  v$ e6 K0 z
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. ]1 V2 F6 i; b: N0 Y8 x% }! F        if (ret)" ?3 n& c- @& F/ _: e1 r9 H
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
' |* Q: \% F; H' T                                "%d\n", ret);
: Y2 y* X, l7 k1 x( R" Y7 H. [#endif1 f" P7 u2 E3 t1 s& d
        ret = platform_device_register(&da850_evm_tl_leds_device);
2 c. K+ U8 x: M, _  r        if (ret)1 {3 u* f5 J! @8 N* ~* a! y
                pr_warning("Could not register som GPIO expander LEDS");" N* n4 M7 U4 [$ C
        else, ?: i4 {" J  O7 c7 D
                printk(KERN_INFO "LED register sucessful!\n");
/ ?! n) H: Z3 o) |, V- g: k5 b
: V4 {/ M; @& u7 C+ ~  I; f        return ret;0 i4 w' p1 N+ R7 G+ Y5 R! Y
}" M4 e6 n7 H7 U) v" E
  t6 d) N0 ^. U
static void __exit led_platform_exit(void)' Y9 B- f/ Z8 ]( X
{+ N# ^. D2 g$ q  q* T- o
        platform_device_unregister(&da850_evm_tl_leds_device);$ ~. L) V/ |! R# P1 x" b  R

4 ^  K& Z' P* H        printk(KERN_INFO "LED unregister!\n");8 X. K$ F5 I8 G
}
/ n7 ?; R% m5 U2 ^# S! I; N9 P2 K
module_init(led_platform_init);2 c* e/ B% G/ @# `3 Y3 B* s1 i
module_exit(led_platform_exit);2 ]" }4 ]4 E9 p8 {

$ @% A; F; ^+ ~# D. IMODULE_DESCRIPTION("Led platform driver");
. q- H. {  I3 Z) W4 o* j3 F* ?MODULE_AUTHOR("Tronlong");
% ~  a( N# v, P  w0 B9 ^MODULE_LICENSE("GPL");4 }, ^2 g5 V9 l& t

3 I6 G7 ~7 v0 T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-15 21:56 , Processed in 0.052922 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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