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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。! x5 B! b0 v" D( U6 z
#include <linux/init.h>% Z* U* V# g, q: t2 e8 }
#include <linux/module.h>4 ?" i4 J7 n& i+ ^7 |  l/ M- z
#include <linux/kernel.h>
6 I& a. {7 m5 h4 G#include <linux/types.h>
6 c4 h3 C; v6 m2 @5 u. }#include <linux/gpio.h>
& E  h2 i* ]; v1 C#include <linux/leds.h>0 b( M8 K7 \( Z7 H8 m
#include <linux/platform_device.h>- g, M4 m6 Z, h# A* G" Z
6 R4 z+ U' ?/ u' @
#include <asm/mach-types.h>
5 G5 P: @) N* |3 }+ C#include <asm/mach/arch.h>
& Z; k5 \6 U9 Y) v: `  l) E#include <mach/da8xx.h>! D, ?3 S) z4 G6 B: R. n
#include <mach/mux.h>: O3 b+ ~) t5 L3 }4 R( _

- t0 l' }& |. s3 q; J9 d& T' T& @' E#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 ?5 L5 j7 d, y/ W1 |1 D#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)7 \% P) k) X4 F# p
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
. @3 E3 ?- j  K1 s" W#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)9 W! R' [3 g6 ~, l5 |/ G+ f
/ v$ w( {+ J7 I% i
/* assign the tl som board LED-GPIOs*/
) A/ w; f" b. {' W- Xstatic const short da850_evm_tl_user_led_pins[] = {' c% h% ^5 k: M. S- M# d
        /* These pins are definition at <mach/mux.h> file */  t4 I9 p' C; D! R2 J9 E* b  e
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,) M' e& s: Q( O1 V! h) Z/ ?
        -1+ `1 d- ]% p3 U4 Z4 o& Y9 B0 D
};4 Q" E, {3 _! d  V
6 m, h8 e" _9 v
static struct gpio_led da850_evm_tl_leds[] = {3 F7 |0 J9 S( C) E$ p/ S  X
        {
/ d( T% q2 ]+ x1 }. M6 {1 j$ V                .active_low = 0,
% Y5 \8 T. l: S$ L2 s                .gpio = DA850_USER_LED0,
" ]6 D8 N- C. l- R' `# T2 M' R                .name = "user_led0",( h: w" `% S$ [, A  \4 c
                .default_trigger = "default-on",% x% N8 Q# D! [; Y
        },1 G( N: l3 V" \0 L* ]$ _
        {
/ t* \" t1 A! _- ^* H. N! K                .active_low = 0,
& E0 O! i7 s* s  Z4 k2 H                .gpio = DA850_USER_LED1,
, p5 p* _7 y/ W  Y; P: L                .name = "user_led1",
' q8 p4 }$ f' \5 m/ c7 p  z                .default_trigger = "default-on",
6 @+ f. ~* f* O: n9 h# s6 {4 P        },2 v! A% I0 V6 U. I$ V5 B
        {
/ y1 X8 ?( P" G! V1 |                .active_low = 0,+ n( f# ]# K# C( n; h, a
                .gpio = DA850_USER_LED2,0 `6 p! l5 m0 {& G( l7 V
                .name = "user_led2",9 ]% K) @7 M6 l, r! A
                .default_trigger = "default-on",6 J! d% W2 l  ^; g8 u* y2 [$ G4 D
        },
' W: x. u5 C, ~( R* D        {1 M5 z: n( i) e7 N1 k; @
                .active_low = 0,! Z  B0 X4 X3 [5 w- }0 d7 _, c
                .gpio = DA850_USER_LED3,4 r" [$ A! l) Z9 y
                .name = "user_led3",
: z8 K" N& T  K' _" [: G; ]                .default_trigger = "default-on",
& m: g& A3 [1 h1 Y* i        },8 o: `. @& R, N/ J
};
( Z( q5 D' S/ A7 u4 d7 y* ?* _/ o% ?7 n* I. X  F% ]- I
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {- K3 f, ?  |4 W# f! h. Z, J$ v
        .leds = da850_evm_tl_leds,7 `- ]3 n* g% z# y" ?; m
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),- ~8 A+ W, E2 _8 F8 t
};& k1 z3 `0 _  Z& [- _: u5 K

8 v' E) @8 I/ P8 ]" ]static void led_dev_release(struct device *dev)
2 P) ?. l9 z! p/ L7 f, H& }{2 z+ C9 w3 W& M
};3 o& n& h. `  e7 Y! G3 w. M  U/ }

# D+ A) A( A( P5 _$ g7 u/ pstatic struct platform_device da850_evm_tl_leds_device = {
! l) Z# G! A" j4 G' `( K        .name                = "leds-gpio",
. o3 q- q( T4 C% Y/ D4 P        .id                = 1,5 |  e* x7 R* t& {* u
        .dev = {6 g, o7 X( L, P& \& c
                .platform_data = &da850_evm_tl_leds_pdata,
9 B$ r( W" k5 x( u; B7 M+ T9 [" l) F                .release = led_dev_release,
$ e4 Q0 X. @. w- {        }
4 k) K! G; F3 M8 T$ W/ f};  a3 `8 Z9 E/ c6 H: P7 S

! D- g1 e/ h% @static int __init led_platform_init(void)* p* p6 u( @2 A' ~% |$ T# S
{
8 q: l' n2 I+ w0 j        int ret;
( a4 F: u8 _- ^/ w, M9 s#if 0
# B0 ^% p& M% s# u6 ?: F        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
, r, [4 |! f1 R        if (ret)5 g2 e; ^# `! O, A9 X4 }
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"" z2 F/ q' J1 h1 Y0 q5 S
                                "%d\n", ret);
- H+ K- D3 n! d#endif8 l+ d  L, i8 ~  t$ K
        ret = platform_device_register(&da850_evm_tl_leds_device);8 T& m% \/ U: q; O0 O
        if (ret)( ?$ C' o- t& X* X
                pr_warning("Could not register som GPIO expander LEDS");5 B; `6 L& K- G' f! E. |
        else- v% C4 t3 I- C* f' s: D
                printk(KERN_INFO "LED register sucessful!\n");" Z! R$ ]' ]- \3 i# Z$ d* }
+ i) s% Z7 P( p$ F+ b$ ^5 t9 s
        return ret;- t4 W0 |; ^& H* s
}: u6 o4 a# k% V+ v3 a1 ~
0 F+ b' b( s  P
static void __exit led_platform_exit(void)
  H- H, e- H+ b8 G5 U' ~{1 Z% R  I) K5 m, z- p5 Q5 z7 |: Q
        platform_device_unregister(&da850_evm_tl_leds_device);
( u) \* L& d6 @1 ^9 [: z8 @3 j+ O
        printk(KERN_INFO "LED unregister!\n");- h% h8 C5 e0 d- `. q; V/ P4 T
}9 [9 K4 u; T! K! t; b# n! H; U

- b# {' K1 v; S' w  e4 Zmodule_init(led_platform_init);
3 U+ T9 Z) s: ^1 ]( amodule_exit(led_platform_exit);* o5 a1 e; l5 B3 \) b/ e% J1 q
7 q) X# M: a+ h3 o3 j# V; v
MODULE_DESCRIPTION("Led platform driver");
1 T- b7 p6 V- f8 C% P  _! F  w' iMODULE_AUTHOR("Tronlong");
. B1 k$ i, B* ^" B6 ~6 }2 w. SMODULE_LICENSE("GPL");
" b+ I7 r5 Z, H& E2 k- x
/ C+ h1 L7 G$ m6 ]' v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-14 07:08 , Processed in 0.042601 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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