程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
: }2 j4 U+ |7 K/ q+ l0 H; ]#include <linux/init.h>
5 t* k2 R7 ^' Y5 g* j, c8 _# }( x#include <linux/module.h>
& f3 V: ~; C1 q8 f& T#include <linux/kernel.h>
4 `  t: H# ~* \7 f' Y2 X$ Q# |" k#include <linux/types.h>" {4 O- I& y- f% E, u2 p9 [: }" a
#include <linux/gpio.h>+ q( k7 M# V0 \( n! f
#include <linux/leds.h>
, C" A. d' d% `/ ^+ U1 y#include <linux/platform_device.h>
. w( W  W6 C; L8 ~
& U* Z7 g; g8 z4 C* q7 K, x( }#include <asm/mach-types.h>$ f, X4 M0 U7 O5 }* ^
#include <asm/mach/arch.h>! N7 e5 p; W% H1 V5 @
#include <mach/da8xx.h>! U2 ^/ _5 j1 ^: Z4 R3 a/ x- R* C
#include <mach/mux.h>
+ b8 y/ `0 g4 z+ m3 q& L6 w
- n3 A4 n8 B( }! v" ]7 A& W#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
% P( k# v6 c7 s- O#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
7 w  T+ H$ {9 B#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 `0 D  M' g" A
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
* _; t. z6 y' B5 G' U
, a$ R- V0 F. r4 _* g7 S" J* U) i/* assign the tl som board LED-GPIOs*/
1 K2 `5 G" w/ i- L" Jstatic const short da850_evm_tl_user_led_pins[] = {
+ q- M& ~1 G' X# v: t0 r4 B( W        /* These pins are definition at <mach/mux.h> file */( B) R3 N& x& w: ^* _' W5 Y
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,: Y7 a* t3 y. X6 l7 V' P
        -1' s1 o* v2 H( ~7 b' v7 @
};) L+ f/ `1 y1 o4 g

! p/ ~" c4 q8 ^4 t2 i- Vstatic struct gpio_led da850_evm_tl_leds[] = {+ S, n* r$ i2 p/ ^3 U# }
        {
+ z8 a! e, I; a9 z                .active_low = 0,* O5 x0 {1 b* E& _
                .gpio = DA850_USER_LED0,
2 Y3 L' |4 m( P6 F) Z' R1 V                .name = "user_led0",/ v5 ^; a5 [: N" n  h
                .default_trigger = "default-on",5 v/ n: H0 J4 j: ]8 K
        },
3 j. @5 W$ P! ^        {( v4 O1 I* L) B5 s: k) e. ~
                .active_low = 0,5 [" Q' c$ I' t: _$ s8 F% y$ ]
                .gpio = DA850_USER_LED1,
2 B9 O2 r/ T4 K: Y0 N- H                .name = "user_led1",
( }. s! y: q) i' I+ L  q+ H                .default_trigger = "default-on",/ m7 G7 f2 {9 R7 d8 \  O
        },
; f! x/ b7 G( \        {) r6 k3 O2 j2 {2 \% h
                .active_low = 0,) P% N- P1 b8 j$ x5 h, L0 }& h% B
                .gpio = DA850_USER_LED2,
# N& g3 G- q8 p) e4 W4 X5 y                .name = "user_led2"," p5 Z. U+ y7 m% S; ?' O2 X
                .default_trigger = "default-on",
: L4 `7 C" c& v        },8 L5 r$ H  j$ m: {) g$ e
        {
7 h) ]2 ?6 g" ]0 C8 p4 ^. x7 ]                .active_low = 0,
/ \/ Z" q! @( Z                .gpio = DA850_USER_LED3,9 ~0 `# d" g* T, O5 Q
                .name = "user_led3",9 U! L) r8 X/ `2 k2 C; G6 s
                .default_trigger = "default-on",
$ \2 Z1 r% \1 n  r$ F0 |2 Y$ I+ }        },
% h4 P; c' r* d4 c& b: l};
. K6 |: n* w: F! L% E- X6 }/ e/ f; }$ U% [% x# O
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {. a$ y  U* F. N6 R4 B' [, x
        .leds = da850_evm_tl_leds,
+ Z( S: ?! o, M3 H# ]) k- o        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
! Z* m& H9 V% @};$ h% Q! a' g6 g. c8 ~4 E

' x' \5 H4 E& a& s0 d1 n" P% f6 Kstatic void led_dev_release(struct device *dev)
# e* ^( m6 f; o6 f( h6 o, n7 I{; {9 x* D$ m0 ~: z2 w# G/ X
};+ \+ o9 J. U5 B$ r3 d
$ {; T; R+ b* ?- i# D
static struct platform_device da850_evm_tl_leds_device = {
# E0 \: K* {9 q+ F2 Y' k/ J$ s        .name                = "leds-gpio",! n. c( W0 C& ?- o5 k; D( Y
        .id                = 1,
0 k4 j2 y+ u6 `( Z% C4 a" \5 N        .dev = {
, ]: @; O! ~# _) Y6 x! W- h                .platform_data = &da850_evm_tl_leds_pdata,# i, p( {! a, ~2 r) [
                .release = led_dev_release,
, C* e5 f6 e$ x  F- V        }- T4 [# Q% j+ ^% i
};
* O' ~- {; t% X9 ?# A- N- e5 X' E2 m! f% F0 f. |5 b
static int __init led_platform_init(void): w5 h( a* U# f1 ?' B
{8 _2 f7 P" w( b$ R
        int ret;
; ]7 `, a4 s0 s+ T; `" P% V7 f/ u#if 0$ l: F1 O) Q* H  i8 L  U2 `0 J
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 D! |7 R1 M5 q3 d
        if (ret)  u5 Q$ @" F5 |5 R$ X
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"# J$ v9 e5 L. x% w7 X" G  s
                                "%d\n", ret);7 h1 d9 a2 k8 ~5 Q
#endif- @& Q& e$ U2 Q1 U
        ret = platform_device_register(&da850_evm_tl_leds_device);4 K; {" v' \: y  d; B
        if (ret)
& {4 [/ m7 l9 s( {5 Z  M# _+ U                pr_warning("Could not register som GPIO expander LEDS");8 }- h$ |0 o% r" J
        else
4 I$ d% j- F! p; X+ e; M5 Z7 D                printk(KERN_INFO "LED register sucessful!\n");
0 P; q8 \8 [; i% s  R4 f2 B$ c- E  d% n( ?6 E
        return ret;' i7 w, x  [7 R: `1 m
}6 ^6 D0 o% _/ B8 t

( b6 ]: a; F8 c- w( z- istatic void __exit led_platform_exit(void)
: `8 {, W% J9 a7 v* G3 o; }9 S5 n{
$ }6 A* J- B" [# N1 V        platform_device_unregister(&da850_evm_tl_leds_device);
, s5 C: b& @# m* d7 F8 y4 A; E- b) z0 y3 ]0 r! O9 f( |8 k. J
        printk(KERN_INFO "LED unregister!\n");: A' N6 r, \' t7 ?, w% j! l. l
}8 k2 C4 P9 o% L; P( y, X" X
7 U1 e9 _. [9 P. M* x3 F. L
module_init(led_platform_init);3 `( V& B( S3 T8 d" X$ L
module_exit(led_platform_exit);1 ^! a# Y  M$ ~2 A7 r
' H) A1 T/ i8 @7 F; a6 a
MODULE_DESCRIPTION("Led platform driver");6 e: `0 V9 p. V% H& l8 y' \
MODULE_AUTHOR("Tronlong");- D" h6 t5 v5 H& r
MODULE_LICENSE("GPL");
0 l) l5 x" _5 ?# x" @/ s/ k# |+ K7 }! E& U9 T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-7 16:37 , Processed in 0.036999 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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