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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
  Q8 V  F' J4 H$ o/ w6 a#include <linux/init.h>: f6 T0 t! G8 `9 [
#include <linux/module.h>
- @4 @! j1 Y- t#include <linux/kernel.h>
1 h4 \( W7 L$ p- t- x+ u* c% W, ^5 o#include <linux/types.h>
. [4 s) ^: x( X1 h+ E#include <linux/gpio.h>
7 I1 U2 N$ D6 f% c' t#include <linux/leds.h>
& S9 j* t5 ^; b9 R) b! v$ |#include <linux/platform_device.h>
6 Y8 P- s* ^* D' g3 r" n( m  q! E( u. s. j* t4 Y
#include <asm/mach-types.h>1 r: F5 d$ a2 t0 e! o& y* v
#include <asm/mach/arch.h>2 O/ u8 V  M* v2 K" t& }
#include <mach/da8xx.h>7 [- p, A8 M* N, L3 c
#include <mach/mux.h>
# J$ s3 D( c, k( |/ W. Y5 a) y5 X, g, `
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
7 e' c" g* @' z#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)1 A/ a% ~0 E2 ~* s" }
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)" s) ]' z/ Y0 B8 w2 b/ d
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)( s" B7 m+ l3 A4 n! e4 l  A0 R
5 W! p1 S3 U+ T: k. w5 \9 S
/* assign the tl som board LED-GPIOs*/
( N1 k0 ~( B# astatic const short da850_evm_tl_user_led_pins[] = {
" E! f) |# _! _. F+ D( m        /* These pins are definition at <mach/mux.h> file */
+ }, y$ V/ B; O, s/ d: V! r& {        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ l9 ?3 W1 \" @3 Q, }* q5 I
        -1
- x# F5 z7 x( U: U};( r3 y8 u7 H& t8 R! n% n

' L( W) `+ v8 |* j3 vstatic struct gpio_led da850_evm_tl_leds[] = {
9 e. I( P: t0 I( K! v% U* L3 N4 y. a        {
1 x  I. f+ D. J0 v8 C2 p                .active_low = 0,) C, l0 v* G. X) l0 V4 v
                .gpio = DA850_USER_LED0,
+ p. N9 I7 M+ F6 w4 f                .name = "user_led0",8 {% ?+ c7 M/ p( K/ j/ T$ B, Z
                .default_trigger = "default-on",4 G% Y/ }/ r% A# E* F: v( O
        },
: M& j8 ~% T1 W1 K9 y0 m  j2 f        {( p  I# E( M- h4 G
                .active_low = 0,3 t* ?% L3 x# p+ P+ H, z8 E
                .gpio = DA850_USER_LED1,$ q1 j" S# g$ C- E. v
                .name = "user_led1",# I/ w6 A! a  ?) d6 @: G* a
                .default_trigger = "default-on",/ Z% G3 E5 O; C# S
        },
0 G7 \2 k4 `4 M  J, h        {
0 e. w. g7 P3 c  ^                .active_low = 0,5 x) p, p" ?) r/ p; O
                .gpio = DA850_USER_LED2,+ b4 z5 @. P# y" r
                .name = "user_led2",
1 l5 M# m( M. L. a* P" D                .default_trigger = "default-on",% k8 i$ @# g; x7 B! I: U: U
        },
& i8 W; Q0 z9 I. d/ K5 M8 a        {
- T5 }) @( P% q7 \) N+ f                .active_low = 0,8 a( d' ]8 D1 C4 j
                .gpio = DA850_USER_LED3,
; V2 u) J5 c' U* {                .name = "user_led3"," ?- i  ?  M: W1 A/ p
                .default_trigger = "default-on",2 L: n5 S# C) @8 k8 k' H
        },. t  `4 u8 v) d0 i( w0 A
};
( Q; G8 `( C2 Q" x5 J' m5 p0 z  g3 g' j! d1 A7 E
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {4 X* m/ l8 s: W5 x* i
        .leds = da850_evm_tl_leds,
' ~& T9 I) U0 _- z; J5 g9 H        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),9 H" ^5 p( z( z2 X% f& q: j
};3 }8 V  {% P; W9 l* a# m
. w5 @' A2 Y  W. R) K& O5 o
static void led_dev_release(struct device *dev); D8 p3 J) D( R) k1 O
{
, K3 m1 S3 j( j5 Z) A3 M& c& y9 b) p};9 z& ~" F% O; \( K! `
! h7 A3 F* ^$ F+ p! ~+ q
static struct platform_device da850_evm_tl_leds_device = {
. z0 ?, h! }% G5 Z        .name                = "leds-gpio",: D' s2 g( L. L* Y/ ^
        .id                = 1,, W& z) O6 O- A. E5 |$ y+ B
        .dev = {# Z! X" m6 Q7 R! g1 H1 x8 O
                .platform_data = &da850_evm_tl_leds_pdata,
0 g5 `& j6 Y! C( Y- H                .release = led_dev_release,
" z/ [$ s* B9 F4 g) ^/ d        }/ |5 e  g3 R8 |2 }$ `+ e* u
};
) \$ x3 i- z' F0 d( I! t9 M. P( v) G/ c0 m: Z# g
static int __init led_platform_init(void)
! s6 M: ~4 S- n8 {: ?4 i9 V{- Q6 G* O( Q0 a0 Z( R; t
        int ret;
- B0 m$ A1 O2 s: M1 w/ Q#if 0% I$ N0 i; J9 j! P" D
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  f7 T0 L! ^& [9 r& E
        if (ret), |' K: z, s& r9 R# Y+ g2 C
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
& C& d* t/ r! I; S% K, o; _                                "%d\n", ret);
5 ~8 U- |  S' v+ i#endif% U" O- Y! `' E$ k% x6 n
        ret = platform_device_register(&da850_evm_tl_leds_device);, @% m8 {( {! R" P& v4 ~/ E
        if (ret)1 Y3 c4 s; B' S5 {8 R
                pr_warning("Could not register som GPIO expander LEDS");
9 e; a, P: e! l5 Z* ?' M! z! x        else- q) Z: d$ L$ H' J* H4 W
                printk(KERN_INFO "LED register sucessful!\n");0 g2 s0 k( w6 C3 X3 g% ~& q/ p  \8 _' Y

& o5 P/ C+ |+ |% I        return ret;( {# g; J. V; T" ^  b: @
}* R; {; Z* ?5 }- Q8 M9 E

) P1 ~' r0 R2 ?3 [$ I. jstatic void __exit led_platform_exit(void)
( H; A9 a; j/ M# ^: V+ r* s9 S{. x* T. p3 H4 [" ?, Q, E9 U
        platform_device_unregister(&da850_evm_tl_leds_device);5 K$ r6 C0 U9 n& b3 |, u
' H! w, p8 u' ~  L% D) _
        printk(KERN_INFO "LED unregister!\n");; a, s* a" ^: H0 h. c5 o
}
3 l9 z' o$ V* T/ U+ }' v7 I3 ]3 ~& ]' w$ D
module_init(led_platform_init);
7 i7 a8 C1 ^8 fmodule_exit(led_platform_exit);
% {( N/ h: x! F; Z/ |$ ~* h7 t8 C& r( ~1 g0 E
MODULE_DESCRIPTION("Led platform driver");3 S0 F  v3 z5 y1 d, o( `# |/ @
MODULE_AUTHOR("Tronlong");
6 Z3 W: k: ~3 @2 J3 m  V) NMODULE_LICENSE("GPL");
# y& Q9 k0 D% A
- x+ N5 m9 {2 Y& e; Z: U8 j% Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-17 15:46 , Processed in 0.043725 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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