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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
) F5 m/ x' o3 w  C0 p#include <linux/init.h>% }% t$ Y7 v# n: b- t5 {0 @0 \
#include <linux/module.h>" |. n3 Q! \% d% D% y5 ?) X
#include <linux/kernel.h>
2 E! m4 o7 M$ {% `+ i* ]+ i#include <linux/types.h>" Q' f3 }+ c9 i' R
#include <linux/gpio.h># g9 F6 `) `" F' ~6 i8 `" ?3 Q
#include <linux/leds.h>
" w2 {: d4 L/ c8 Y8 W( p#include <linux/platform_device.h>& _& |# z+ i# X( J/ i
% d1 x- E9 K1 {4 F! I6 H  A  Y7 z
#include <asm/mach-types.h>4 _6 G8 L9 N" p% W
#include <asm/mach/arch.h>
" M8 m6 e! w0 ]#include <mach/da8xx.h>
% [# {  M$ D3 y0 k# n' `! W#include <mach/mux.h>
& L. W( h( j; k( X$ F- s  t6 |3 F, h3 l. r
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
: ~8 `, q4 H; c7 V; r& P9 C#define DA850_USER_LED1        GPIO_TO_PIN(0, 5); ^9 W% h$ \  O! ]: {
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)7 B( X; q$ E. ?% m: h3 r- m
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 e: @. Y0 S( B( V! X( x/ n) w( Y& y+ H) u
/* assign the tl som board LED-GPIOs*/
: }( m0 z- E& a; ^* a9 lstatic const short da850_evm_tl_user_led_pins[] = {/ c4 h' c% o* S4 i# f! l! `8 _
        /* These pins are definition at <mach/mux.h> file */
# ], l, z4 F0 Z( f' \7 L        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,! P$ U1 T4 ?- d
        -1
$ \5 N% D0 z1 _" \: Z( S};2 h4 d& m2 c; y) Y

6 s; g% q8 }- y4 x! P2 @5 Gstatic struct gpio_led da850_evm_tl_leds[] = {
. S7 L& }" Q' |1 r, }4 D        {
/ r3 h9 d) s* U3 O9 U- ]* g/ E                .active_low = 0,. a! }3 p; D9 A/ _
                .gpio = DA850_USER_LED0,- L) B& m$ X7 ]' \$ A
                .name = "user_led0",
* p! h# a+ d6 C* R2 v                .default_trigger = "default-on",8 f  q, G# D* B
        },
" p- e8 j" N1 G5 H        {* f7 H2 @) K: a* i- A( F5 A7 D, {
                .active_low = 0,
* _7 H2 s$ V5 c& u, V                .gpio = DA850_USER_LED1,
( j! `" O9 i& O7 q5 M* ~                .name = "user_led1"," ~& I. X9 z* Q) `
                .default_trigger = "default-on",
2 i4 V/ t7 o  W' R6 |        },  u& E3 h0 E6 ^# J8 Q
        {
: \) b) v8 M( r. d                .active_low = 0,$ I: K+ z, t, J3 Q* Q! e% j6 R) a+ \
                .gpio = DA850_USER_LED2,
/ ^$ p' M% [! V) t# _+ C3 Q9 f                .name = "user_led2",- P- ]" U0 h- H* o( r2 p' v
                .default_trigger = "default-on",
, t- b) K* B$ o3 v. Q        },
7 d4 i8 d8 M: d  y7 z8 L) g        {+ t* q# d2 o- c
                .active_low = 0,
  d1 D) A" v2 I0 Z* x; a                .gpio = DA850_USER_LED3,
% R: V& w' ^4 |& M  `9 `: X8 x1 F                .name = "user_led3",
; ^# x; v3 u! d6 e                .default_trigger = "default-on",$ J  Q" X) P1 K; g  W
        },. p( _( A8 ^! R  R5 D
};- @3 t9 J9 d5 U* _
7 J1 @7 Z6 e! u4 o/ y/ u
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {; o) i$ s) d3 E
        .leds = da850_evm_tl_leds,
7 ?. J1 ~' F! @2 @8 n( m. ?, s* J        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),! K8 L- T/ O" \& T9 @; T0 }
};6 h9 i6 I8 T2 d0 `( e0 f

4 r- h; a7 h8 b* G) |8 G' dstatic void led_dev_release(struct device *dev)
7 }8 c! @8 O8 Y/ T{
0 g: x4 n0 ]- w9 m};$ J% x1 I8 [  i- p

/ \' r% B3 G. k1 D& L9 }- pstatic struct platform_device da850_evm_tl_leds_device = {
) r; q' [- H* f% Q        .name                = "leds-gpio",% q9 S1 {8 a  z( p& C
        .id                = 1,
8 R+ G! b: K! q! h' Y7 `: G1 B) m        .dev = {
/ e' [5 z; C+ l  f/ _! h8 u" }  d                .platform_data = &da850_evm_tl_leds_pdata,1 l( j& Z+ Q1 s9 z4 ]6 s
                .release = led_dev_release,
4 \! b  F6 ~2 r% d* W0 i- e7 j        }$ T/ E* K% B" T( C5 y9 l
};
+ d; \. z6 ^( @7 s
6 q1 P7 T5 O. ?9 \) I% ~: Y7 [static int __init led_platform_init(void)# k: T7 ~3 A7 Z8 L- L+ w: x
{# J2 }- z" u- @$ A. a
        int ret;
# b, I+ j* X7 F2 [* A, t: C#if 0' o. `  T! I4 O  V9 p9 X/ x
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
0 `) l8 o$ K8 y5 I2 N! D; R        if (ret)
, k; D' m) b2 Q; [* `) w* R7 y                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"- C( p" u7 e0 [+ D5 }. N
                                "%d\n", ret);4 d8 b" t; s3 h- a# ^# M
#endif
# O* M8 r) @8 O) l/ |        ret = platform_device_register(&da850_evm_tl_leds_device);
1 M7 I" l2 D1 s        if (ret)
% K& @7 H# A5 s1 C6 H( B5 S                pr_warning("Could not register som GPIO expander LEDS");
/ [6 ?; |" o) e! ?3 |& _        else
  l7 x0 ~7 R9 J                printk(KERN_INFO "LED register sucessful!\n");% y' D1 V2 o" g. D8 |

" S& ?* A5 h  B7 v1 K5 `        return ret;  R6 i$ ^* ~3 ~9 H1 g1 K% M
}
  U2 z. V9 F- V& u# I2 s. z) D- I& f3 @+ S- z9 I
static void __exit led_platform_exit(void)
7 i3 T& W4 M3 C4 P# w/ M7 n{
( g/ J9 {2 X" j4 D/ y5 G- b) b        platform_device_unregister(&da850_evm_tl_leds_device);
( ]9 K, R  b$ s! c8 b, q4 L7 o: j# i8 k& h
        printk(KERN_INFO "LED unregister!\n");' |$ N! T, r4 v- h& f7 t
}/ w3 u% h' R  p% ^2 [8 D
  k0 h' b+ \  L& }. R
module_init(led_platform_init);" w- K% Y( j3 A, J( A! U' N
module_exit(led_platform_exit);
" V6 R4 _  N1 F# e& t8 V! b3 r( B6 I; F8 k" z$ @0 b
MODULE_DESCRIPTION("Led platform driver");6 c; a- x9 v, s
MODULE_AUTHOR("Tronlong");
* P: i1 X: G- VMODULE_LICENSE("GPL");) R5 y; S% R: P1 |$ L; o! d

5 ^" `& n* ~( }8 j  G- e7 }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-13 09:51 , Processed in 0.040721 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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