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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
8 H, g" J( u" q0 S1 ?" k6 E#include <linux/init.h>
0 l; X$ l# I' C, |! u- C5 z#include <linux/module.h>, Z& L9 v3 V2 I" X  y
#include <linux/kernel.h>
/ b, C, d# a9 z#include <linux/types.h>% u# C: T$ E6 o4 ~1 h+ k% C, U/ z
#include <linux/gpio.h>9 K8 l! q1 x4 F
#include <linux/leds.h>
' ?- {" h3 K5 l8 D! t- j#include <linux/platform_device.h>
- {  q7 t6 }* k7 P6 H5 t9 n
, o; G: A% r3 F+ S' U( c7 b#include <asm/mach-types.h>
' P6 B2 A( d& L+ A, y#include <asm/mach/arch.h>1 S* o0 u, P% g0 O
#include <mach/da8xx.h>0 |1 y$ q3 j( W2 ~5 t% I
#include <mach/mux.h>9 G) O3 y, @3 e7 [- R( o

9 u) k2 {: A% R/ e" M1 b7 m#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) }; ^0 ?6 r$ X#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)% ~0 e( U" ~. `! A" }0 l& s
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
; L9 z5 c1 [/ ]$ m8 B) \* }0 {# D#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( J% E7 z6 p. Y$ g
& z4 N3 @1 Z8 y/ \+ C4 {/* assign the tl som board LED-GPIOs*/  A" y% B# U% v: H" ~- B
static const short da850_evm_tl_user_led_pins[] = {
8 y- i2 i% S# R, Y+ h        /* These pins are definition at <mach/mux.h> file */
9 |3 t8 @; `0 h, W: b. L        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,1 e9 E% x5 L3 x* P. |1 C3 [; J
        -1/ p) h( {; [) D, J9 j: E
};) \( @! `$ c, `: f! F( |
2 H+ q" d5 \7 Z, u! ~4 m# A
static struct gpio_led da850_evm_tl_leds[] = {* X( i+ [$ O) \% x& U/ O/ S
        {
4 n% }6 O) {% ]+ l: h0 D; w, J                .active_low = 0,
- L- W) J  g  x3 U$ O1 A                .gpio = DA850_USER_LED0,. @7 G; |, k8 W3 w4 p9 Y$ F
                .name = "user_led0",8 ]3 i' o4 W& p( A6 h% P) q
                .default_trigger = "default-on",
/ l: _, ~# }4 K+ x        },
7 e0 s# J7 x( @$ O' a        {- ?5 \- v7 H: X' M! v
                .active_low = 0,5 G( ]. b9 z  C! B+ k
                .gpio = DA850_USER_LED1,
! i4 S# q/ h3 Q6 t: M                .name = "user_led1",6 h4 _. G9 ~3 |: p) Q9 Q- G
                .default_trigger = "default-on",
/ D+ s6 x" N" f2 h4 [5 n        },0 W7 f& g: y2 @2 F* H  M$ N4 A
        {
/ W  X9 j& Q1 ~0 w$ Y. f* J                .active_low = 0,
6 w5 o( K( x% c: u" J4 C1 I                .gpio = DA850_USER_LED2,3 ^  B  U6 K. P* E4 ~
                .name = "user_led2",
2 L% Y+ k; L4 l* P7 p                .default_trigger = "default-on",% \5 e3 s3 T8 a' C4 f
        },
) H; x) R1 U# t/ P# ~9 s        {
& N# F) S3 g' _5 ^5 L0 x4 F4 N                .active_low = 0,
" _3 H0 u" X- D" X3 J- x+ L                .gpio = DA850_USER_LED3,* r: U+ [5 s, f" I
                .name = "user_led3",) @& `6 o% g% F$ B' w' h- z( Y  R4 `0 @1 z
                .default_trigger = "default-on",
* n2 Y+ p' w2 V        },  R1 L. N) w/ O- j
};
& x: S: J* w/ w+ {. z* n2 `+ l$ g( P9 ?& P6 F) s  I  G
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; N9 {+ ^: X! U! q4 C/ w        .leds = da850_evm_tl_leds,/ k' Z6 f& M, w( \) s$ I8 u5 N
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
; I" p5 X# e2 e2 V4 J. v};
$ Y) n2 F$ ^, c, B+ q
/ d. @  K6 [0 O1 p3 J/ X2 k+ l) jstatic void led_dev_release(struct device *dev)5 p1 ~$ i# X4 C, Z$ c7 M
{
3 J. ]" p4 i) Y9 j};
3 b0 ]$ F" X: |" C
! S1 j8 ^9 q( n4 Q* G: Ustatic struct platform_device da850_evm_tl_leds_device = {
. y$ I0 p8 B) L/ x" {  a        .name                = "leds-gpio",
- W3 R- J/ Z+ t9 B9 |. W3 Z& @        .id                = 1,
) b- K) F2 R5 p7 E0 U4 p        .dev = {8 w+ y% R) [- Y9 C& |# ~2 a5 y
                .platform_data = &da850_evm_tl_leds_pdata,+ ^: i4 s2 `( ~5 |# J6 M
                .release = led_dev_release,4 o$ T1 a/ s+ n. z& D
        }
+ I2 g1 A8 b: T; a/ O7 a};
- d5 b2 q+ n7 N" [" h- {" \' O% w: u6 E# h0 l1 C
static int __init led_platform_init(void)
2 R- x* z8 b) A! W# p* n6 O! p{. F& {' [, Y# C; i1 f4 ]
        int ret;# ]7 V+ D& U* R7 d7 i0 k
#if 04 a9 t2 B- m$ ]! p# k# y- q: q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( a3 e3 Z3 [! r3 j( `        if (ret)
+ @' F5 B* ]8 ?  n                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
. A. I6 p3 G; X  t  l* Z                                "%d\n", ret);
' L! Z: {: r' a. N  m#endif6 p  C" C0 n) i8 ^, [
        ret = platform_device_register(&da850_evm_tl_leds_device);1 x/ d+ G  O3 @
        if (ret)
) U& T4 a6 K$ R9 m5 s                pr_warning("Could not register som GPIO expander LEDS");2 {7 m5 r' v( K  R' h
        else6 y' o$ Q/ B7 _2 r. t% L
                printk(KERN_INFO "LED register sucessful!\n");
2 L$ `8 }& |" O3 q% \2 [7 |* n% g4 u0 z/ M7 ~7 n  D
        return ret;% V1 J$ Q$ L& E, i, X
}. _2 {4 W( B& X. a$ v$ Y' [9 o/ k
+ ~5 @; l4 Z& P$ a! D
static void __exit led_platform_exit(void)
& {, v6 \/ @! x4 r; R! |& V{
1 i7 A0 V1 ?$ Z9 o' X  i/ q6 ]- I        platform_device_unregister(&da850_evm_tl_leds_device);2 L& j/ K; q3 Z/ A

' T' s/ J4 v4 \2 H% C  k8 f* S/ L        printk(KERN_INFO "LED unregister!\n");  a! O  {3 [, b: J$ ?
}
. Q/ A5 y; V6 |) ?5 ?
0 l1 J, l! v6 m: _* V* B- N4 omodule_init(led_platform_init);
! l2 b- z& B0 }" |( K$ Jmodule_exit(led_platform_exit);
% X, L8 j% r7 c! o  Y4 R3 T3 R- C, H& a) \& l
MODULE_DESCRIPTION("Led platform driver");
' s- y/ m6 T4 Y* q- P2 _7 k* wMODULE_AUTHOR("Tronlong");
: s( w, f5 U# Y9 HMODULE_LICENSE("GPL");4 X6 X. b, ^+ u
8 Q" T! |6 E( a) h
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-17 05:59 , Processed in 0.039182 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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