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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
5 d) a! @% g* ], |7 O5 E& H" Q#include <linux/init.h>3 B3 d+ z' q) l0 R0 L
#include <linux/module.h>
  U) P$ g& j) S8 S, g#include <linux/kernel.h>
2 M9 t: ]. P. @  X#include <linux/types.h># s$ F3 {& W7 l) K4 A
#include <linux/gpio.h>+ h' v, E* t$ \& }$ l# |# G
#include <linux/leds.h>. @9 w; H2 f! p( g3 C% n& }  F
#include <linux/platform_device.h>
& X2 I4 d6 \) |8 D8 m; g$ m/ g* P
2 D5 y9 G2 A2 }$ I6 r+ U( k8 X6 H1 ]#include <asm/mach-types.h>% w8 W. Q" l/ ^2 i9 C
#include <asm/mach/arch.h>! T+ ~2 z0 m0 M+ I3 j9 E/ g
#include <mach/da8xx.h>4 k) S8 x' f$ I( \
#include <mach/mux.h>
/ V3 i  G* m$ `" x$ i2 m6 P0 q
) _9 A% z1 m8 a( o3 w#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)( a4 x: T3 Y* w: j( {: E, ~
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ {5 `1 S, O) d# r#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)! t  R; s6 P! d+ ?+ F0 v8 d$ m
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)  i9 \5 F# D( u1 A) M% r) i- U
; h. p1 [, y6 y
/* assign the tl som board LED-GPIOs*/
/ Q4 T, I1 t& V3 q) n& }static const short da850_evm_tl_user_led_pins[] = {7 f$ N5 e' ]& k6 k
        /* These pins are definition at <mach/mux.h> file */
- a. N; K1 r& w1 E        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,* J: Q  f' O" r) @; |  c
        -1; P7 P4 g9 N7 V% X7 b+ x
};
' D, C# X1 P6 H3 y" ^: a  S. C+ U& S* P6 c. U, i" h
static struct gpio_led da850_evm_tl_leds[] = {6 {0 q8 g( J$ a: J2 _1 z5 }
        {
0 z* H+ y) a4 _, h                .active_low = 0,: @% |; T' ~( l) q; K
                .gpio = DA850_USER_LED0,
% S9 @) ]' j2 K1 T& F                .name = "user_led0",
7 M" Y* {& y6 y( x1 e                .default_trigger = "default-on",
6 d. D, e. d0 [, Z+ t7 z) Z* w8 ]        },
# H  A/ X7 {2 o; D9 h; q        {
9 c  p2 D: H8 U; u; w- \9 \/ N1 c                .active_low = 0,
8 G. d$ k8 v& R( d2 ~& F! v                .gpio = DA850_USER_LED1,8 J& |9 ^1 D" d4 T8 Y5 N# l5 t% e. ]0 A
                .name = "user_led1"," H# H) g( w/ x% e4 H! Y, U
                .default_trigger = "default-on",
1 F5 `7 F1 B  A7 K& ?) R        },/ K1 g2 a7 z5 I' F' Q2 d! {& h
        {
0 A3 e5 H9 z. a. U                .active_low = 0,
/ Z( [) z1 e9 q6 o9 ~( }4 ?                .gpio = DA850_USER_LED2,
. r' y9 F+ G4 V! A' U. `                .name = "user_led2",3 B: H( Y1 K9 m3 y2 ]$ Y
                .default_trigger = "default-on",
9 p0 i8 @% Z6 G  g1 \4 h* B        },7 ?/ l2 J& S; p! h4 B
        {
( m/ {& o" {) A* s( J3 Q% G3 k                .active_low = 0,& J; h) x! e; h$ @6 _6 E2 \3 p
                .gpio = DA850_USER_LED3,
7 B$ K7 }4 z3 {+ Z                .name = "user_led3",
1 r- s  K- D# r  _' A                .default_trigger = "default-on",! ]- n8 r  ^4 w: ^
        },$ O) q# A' C4 G/ y5 `. z6 |. A
};% c0 W8 Y4 b5 v  j8 y8 S5 n

1 p" d! \9 ^3 Hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
0 u/ e2 N: d6 _: K8 i) {        .leds = da850_evm_tl_leds,
( N) B5 c/ |. U1 K4 d6 Q        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),4 P* Z+ v, m7 ^. ^# x+ i7 N
};5 g$ Z9 j8 V+ z. M
1 n: j/ u. Z1 m- M9 _
static void led_dev_release(struct device *dev)
2 O& M* R% ]: O{
4 p  |5 o8 K7 `};
3 z. v& }* P1 d/ U0 y% |' A4 c0 J$ S4 ]7 R/ L
static struct platform_device da850_evm_tl_leds_device = {9 V8 Y: z" Y3 @" t; y' m
        .name                = "leds-gpio",
5 y6 j, y0 a# f2 H6 h1 T        .id                = 1,
9 q- v" F. Z. s( q: U( r        .dev = {
# Y8 {( L8 ~. ?, Z1 C- W$ q                .platform_data = &da850_evm_tl_leds_pdata,
8 ~2 d' V0 d% d% u2 k1 t                .release = led_dev_release,
. x4 H3 b5 {4 ]( r: p! o0 M* h1 Z        }  Y: \& ]1 @6 R
};
7 k, K( U: p0 a7 ^4 ?; q# `5 U0 A2 N. J+ y' Q* _1 \! E
static int __init led_platform_init(void)
$ T2 m/ L. U3 d6 I  q$ i0 Y, ?{
* V: F, ~) \7 S0 A+ e; z5 R3 }* v        int ret;+ s2 R: s( a: g8 \
#if 02 ]! c2 I& G7 y! g2 y
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);) k6 T# Q4 Y3 q1 z6 r  A, f
        if (ret)1 Z  @" Q+ i+ T& I1 X  X
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"5 h# Y. D- v( x: Q% y3 G
                                "%d\n", ret);
: Z. H6 R" F: j) x( N3 w#endif
. J7 u+ n3 P( d6 V: @        ret = platform_device_register(&da850_evm_tl_leds_device);
  Q- s# i8 n* G: H0 \        if (ret)+ O3 H: [/ z$ g" F! R
                pr_warning("Could not register som GPIO expander LEDS");
) S' Y' h- W2 g* N( s2 E        else7 Y: N2 X" U. ~9 ], }
                printk(KERN_INFO "LED register sucessful!\n");  }. l' y& [  w5 C
2 W1 c' T1 a8 {, J: r" k9 K5 A6 E
        return ret;
: F4 ]" C, `' @" `5 E}
3 @1 ~" w! L$ \8 h. V( u. ?  T4 n: I  z1 P- z) q
static void __exit led_platform_exit(void): N% K( E2 X: Q6 Z2 P
{% B: h; i  [8 {0 T
        platform_device_unregister(&da850_evm_tl_leds_device);
0 x' f% q  r+ G' c, }: G- S# O$ N) o% o( }: n* T/ o, _
        printk(KERN_INFO "LED unregister!\n");0 _6 a/ ^5 z8 X; V: L
}* [+ t4 [% Y* K- I0 |
: `/ b9 y4 q! \/ C
module_init(led_platform_init);
- m& W( s1 k" Q5 n! `) Cmodule_exit(led_platform_exit);
. S/ G1 n9 w& T1 R. v# u$ R: p
9 c1 O7 Y4 Y& L3 uMODULE_DESCRIPTION("Led platform driver");- c9 V0 c2 e. m* j# L
MODULE_AUTHOR("Tronlong");! I; _# {* X8 m
MODULE_LICENSE("GPL");( t. M. S0 N! b- E
& F2 w4 a2 D: N$ P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-4 06:02 , Processed in 0.039853 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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