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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 U- M3 a6 b' B4 u2 N#include <linux/init.h>: ]/ o9 ^% j. g" p* P
#include <linux/module.h>( W0 i( f# h3 p7 T7 ?9 I6 b4 c
#include <linux/kernel.h>+ e" w, p6 `0 W! H: h# k/ `' k* g
#include <linux/types.h>" Y, j6 H- Z: n8 O' e# A7 x  J; F
#include <linux/gpio.h>
& l5 P9 X2 o$ Z! U#include <linux/leds.h>
; g" i7 l- `1 p. ?/ ^: Q#include <linux/platform_device.h>
# w9 t& e& Z, u' x  g4 m( h* J; M+ t* s8 N
#include <asm/mach-types.h>
$ Y! ^5 m: Y0 l; W4 ?& T#include <asm/mach/arch.h>
7 M. m* l+ Q/ c#include <mach/da8xx.h>$ ^( H& [! H/ k
#include <mach/mux.h>
$ Q! H' P3 r$ y/ v
* ?0 U! l3 \) {- F  h' o#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
. b3 ?$ Y1 J$ `3 K" b- E- ]" I#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)7 ~8 [1 F5 ]$ x
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 b/ u1 w8 n5 w5 [+ C* X
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)4 x4 n. ~% }5 l' U2 a/ \; c' f

- a7 ?! W4 v0 ]. [, u0 s/* assign the tl som board LED-GPIOs*/
0 h% i& w/ R* l  z% O' b" pstatic const short da850_evm_tl_user_led_pins[] = {
+ d- U  J, [0 I, K6 W' h        /* These pins are definition at <mach/mux.h> file */8 h; w5 Z8 e& H5 J* N7 }+ Z
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
: E! e1 h) {" P. \8 e& |        -1
- z: w2 y: ?# k};5 k, _1 e( J3 J& O
4 }% u" ?& q$ w+ v$ S
static struct gpio_led da850_evm_tl_leds[] = {3 V( }4 i# g0 q2 {
        {
& K: w% g9 B4 m  I" M5 C& |, p; P                .active_low = 0,
" _% y' p. l9 R; [                .gpio = DA850_USER_LED0,
  v% ]2 U+ U8 d                .name = "user_led0",
  w* e2 ?& h0 J2 v                .default_trigger = "default-on",. x  l9 g2 B/ R; N9 r5 }
        },7 E5 ]' W( q: n+ y% V4 M, x
        {, F! L, `2 _5 o
                .active_low = 0,, ^7 B2 y4 s% @; h$ n
                .gpio = DA850_USER_LED1,& X* D5 ~- R7 \, D
                .name = "user_led1",
2 z1 b1 f+ u0 e( a, f7 d                .default_trigger = "default-on",% {& B, }6 c: j. B
        },
" B0 U% p: @2 Y& v' O        {
) U# G3 t' L, N" P                .active_low = 0,! [$ J: _! ~. \0 N1 |+ l
                .gpio = DA850_USER_LED2,
8 m5 R. N+ Y; G( n, }8 U5 I                .name = "user_led2",. g8 A  Y# T3 ?0 ~2 D4 U
                .default_trigger = "default-on",9 F( }0 y( q9 G# o9 m2 j/ o. @
        },
5 L: B- s6 B( e8 f        {+ b7 h9 Q. M; U" K& X; Z  a% o/ L
                .active_low = 0,& M, L. C/ g3 @' a# J' D$ d
                .gpio = DA850_USER_LED3,/ `: X6 @( b! @( a, E$ f9 j
                .name = "user_led3",
( Q, P, o& [: W" t                .default_trigger = "default-on",  L' `, v. S, X5 q7 o7 r% M8 D
        },
. q' S0 }" {6 x/ t2 S6 _};
: o* {# ^1 k$ F* {; G: ]& |8 p+ |# z5 f) F9 W$ S" \6 J, K
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {3 ]3 ?) |5 W$ o4 g5 Y
        .leds = da850_evm_tl_leds,6 l9 g* c4 U  K
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
/ @# [& M. o" \# V/ ~5 c- o};7 ?* l. l% U" r# ?3 A3 U) |. P
5 r. z' p, s6 q) u6 v3 j
static void led_dev_release(struct device *dev)+ K5 ^) C, m2 K: `" u0 ]
{: A- e* D+ s" S; b+ g/ E4 w
};
: j& U- b0 t( |9 |: z& P! q0 g/ g
static struct platform_device da850_evm_tl_leds_device = {6 c" _& [; K) H2 E+ S  D
        .name                = "leds-gpio",
' A! {1 u% `' m9 h1 X, C        .id                = 1,1 @- [' O- P  w1 Z$ m3 C) e% k* D
        .dev = {
' h& t' k+ }  {: v9 Q5 _. X                .platform_data = &da850_evm_tl_leds_pdata,
& b7 Q' ^' u+ {; i% X5 q                .release = led_dev_release,
$ O/ G: H: q5 q# F$ Q: r0 \/ Z        }
( B" x9 [1 D3 A7 C7 Y8 ^};
1 V' S) U6 z0 N" M# n; z7 D: \7 d- C/ o  w! N% _7 }
static int __init led_platform_init(void)
. M* l) Z- F( Z3 n1 x{
# i7 H- }( I( I0 q7 F6 \, A' ], j        int ret;6 `* K5 V6 ^; E, P" a3 o( I
#if 0  e( h8 p  q9 t
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);( y" _7 \: k8 s  `" p' |/ s
        if (ret)% U8 k& q1 X- F% i
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"$ a# u( r0 R$ q" W' R
                                "%d\n", ret);
' b0 x' d8 x5 g+ C5 y& _#endif
' ]2 `; r( C: k9 @4 v; B1 j/ J1 b' v) ~" c        ret = platform_device_register(&da850_evm_tl_leds_device);
0 B  g) W8 d6 K        if (ret)
& @& l2 q% g9 q+ c' A                pr_warning("Could not register som GPIO expander LEDS");+ ^$ t$ n3 l  ]! A3 |8 `
        else2 J- \; m0 b% [4 o1 ]6 K2 f# n
                printk(KERN_INFO "LED register sucessful!\n");# U2 C4 G& }& u) A# t0 n2 S

/ R6 e5 K% z% M( U3 e' c        return ret;
+ j1 y, |7 d% n6 ?}
. W; y. n& y, @6 f8 x/ ^. T- N. {- @) k9 ^* f' n
static void __exit led_platform_exit(void)
4 V; a+ S7 }$ I  S& j4 D: ?{
! @# k# I8 j) R# [3 @; k        platform_device_unregister(&da850_evm_tl_leds_device);6 V: B4 P3 @+ ^. |$ X- J
% H  N/ P' z2 ~5 a0 z. I
        printk(KERN_INFO "LED unregister!\n");
8 z7 M# v) l7 I' a: B1 }}* p% g2 p- M" D  l& G. o
( x% Z$ {& T# A8 ~1 ]: u& Z
module_init(led_platform_init);% P1 z8 p: C" o8 R
module_exit(led_platform_exit);
: B& @+ ~5 D  c7 v  X
1 _7 t$ m6 w$ v' C, T) f6 y" y; tMODULE_DESCRIPTION("Led platform driver");
: l3 L/ \/ U7 b, m& pMODULE_AUTHOR("Tronlong");
% R) y6 }4 e: R/ q+ ^9 |MODULE_LICENSE("GPL");- j3 x- Q4 k. v* |& [
  V: P( o: {# K6 [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-18 07:05 , Processed in 0.038975 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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