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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
3 Z- G: U$ S8 {#include <linux/init.h>
0 g& i- q4 ~/ V% h2 ~#include <linux/module.h>. ^9 R! u2 k& d
#include <linux/kernel.h>- z) Y" p3 D  L8 y
#include <linux/types.h>
4 I; l" f& x3 f* I+ |#include <linux/gpio.h>) m) a% I# R$ B' K. a# ^5 T! r
#include <linux/leds.h>1 l7 N% u( [. i3 F) g3 j, u* ]1 O
#include <linux/platform_device.h>( |! o+ S, g2 Y" |& R
; k9 t7 H5 g6 a8 n, O& B, d
#include <asm/mach-types.h>. v# x' l$ L& x. j) |. L/ N0 {
#include <asm/mach/arch.h>! h2 Y' X& i0 p- x
#include <mach/da8xx.h>& O2 J& F  c; p5 f# _5 F
#include <mach/mux.h># v6 B0 Z, D8 E
/ j( }0 A+ b% `; _% }
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
7 {7 }: b0 X6 t#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)* C# q: u( L9 J5 o
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
% q7 w" h+ A  n# H# }" w& t#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
0 \5 x+ i+ _/ v3 c& ~$ u8 U2 l( T) M* I
/* assign the tl som board LED-GPIOs*/! J4 N" f( Y0 s1 w
static const short da850_evm_tl_user_led_pins[] = {; o8 K0 q' M( Y0 k! g/ |, L+ z. J2 {
        /* These pins are definition at <mach/mux.h> file */
& i8 I1 r8 L6 V        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' t/ u0 q( I- g; n        -1
% Z8 v+ j& t) {};& n0 J( b: L" ~

( M& p) ?0 \0 M% D( ^& Zstatic struct gpio_led da850_evm_tl_leds[] = {/ f, O; ]# r9 `5 H
        {; p1 z! U! ?  j0 s5 S8 T# q
                .active_low = 0,
7 p5 U$ S& c2 L) l6 A( c% `                .gpio = DA850_USER_LED0,
1 D  ^' U  A& L8 C7 v9 \* t% H                .name = "user_led0",  |7 {" g$ G  F0 r
                .default_trigger = "default-on",
4 M& `/ ^( s& ?  z: g' k        },/ T8 q" Z& w( x0 A5 r4 I/ ~
        {
0 v' i9 j3 ^, y2 C                .active_low = 0,
7 K/ w5 O1 \# E2 _. b% m" J$ [5 t                .gpio = DA850_USER_LED1,) \, z) F9 i7 q  U: p
                .name = "user_led1",/ t: B8 q% x: @8 {7 S
                .default_trigger = "default-on",
% B& s3 ?8 r7 z+ z        },
/ L" h! ?# I& m  g- x( ]        {
: D1 y5 u' v9 }                .active_low = 0,
: q) n+ I: P; A  d8 \/ N; d                .gpio = DA850_USER_LED2,
0 a9 f: W0 Q: H( d1 s+ x# U" g( ?                .name = "user_led2",1 ?( l/ J  A7 ^6 a9 ^* L) O5 G
                .default_trigger = "default-on",
/ B9 r& H2 `! t( v7 d& G2 G2 W( k        },
  L; n$ b. ~6 D& {$ [# K: X5 i        {
4 U) s( m% X4 _4 ]# q                .active_low = 0,. g% {+ J3 r) I* r. j( {5 }. _
                .gpio = DA850_USER_LED3,
6 K0 }( y# Z% I  T$ s) u- Q9 i                .name = "user_led3",2 Q& _' M# f5 H9 j
                .default_trigger = "default-on",7 `! e+ K3 |. |( s
        },0 E5 B2 j6 V" }: B* y6 {
};
# m; K/ z: e6 N" }. ], |
( O- N- h: ^6 b7 q  G; Dstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {4 u( P, z2 ?/ O9 L; e$ ^3 A# S7 e
        .leds = da850_evm_tl_leds,
0 U4 f5 r, q) S+ `8 K' T+ _+ B        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),3 R8 i9 W, M6 j) W2 ?8 K  ?: A
};
# m2 Q! x% f/ t/ @/ O: _! V2 d2 Q9 o4 n* g% D- x9 X& P5 ]$ V# J
static void led_dev_release(struct device *dev)
" X# z- w5 J3 \+ a{
% N6 d- B% z) }  K/ Q/ g};
" n9 ^- Y: d% ]" |  u1 ~- o! e. V. }+ O+ ^
static struct platform_device da850_evm_tl_leds_device = {8 H) K/ j, ]! Q
        .name                = "leds-gpio",
: k4 `# s, V, f* z" |( Y        .id                = 1,
# ~$ }9 A. S. A% c0 j- _9 E6 d        .dev = {* |0 [! d; Z8 Q+ F: N+ R& g/ C" Q
                .platform_data = &da850_evm_tl_leds_pdata,3 t$ V8 k( i( D( k" `# M: S% m" V
                .release = led_dev_release,) i2 T, C8 A* @6 H# C: D
        }
" p0 m# Q3 G- f3 G0 r};0 E5 W, T! O; @7 u9 b1 n, s2 }' _, [

+ ^8 l4 u2 a! D6 x  l- e! b5 Pstatic int __init led_platform_init(void)
1 M, b! q3 m' M# z3 [0 T9 a{7 n) `& q. S# Q! t  D
        int ret;
- b) z4 E* W. x6 [6 f" n  o#if 01 R) l0 v- P6 ^7 l( w
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 `, g/ P2 z5 Q. W8 S3 C( r6 M- ^        if (ret)  N9 j; O' o/ r/ D# s: C
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"% x9 L+ I' O5 j$ v7 `/ L7 L
                                "%d\n", ret);
# Z. W6 F3 g( F#endif
% E+ J' R- f) ^  d        ret = platform_device_register(&da850_evm_tl_leds_device);
2 ?7 Z9 W4 t- t* [- l" s6 h; y/ @        if (ret)
: ^8 J* Q# a9 c0 E: z! Q+ q3 d! |+ Y                pr_warning("Could not register som GPIO expander LEDS");
. l5 X+ I/ e7 T        else  H( n$ o( @1 M# I
                printk(KERN_INFO "LED register sucessful!\n");2 c1 c5 f! H, S0 |, P
: E9 c7 K) Y8 ^- [) }) }7 s2 R) i
        return ret;
0 t( |: |. K- W' R* j6 s}7 L( q* i$ A; ]! [; N
" t6 N4 q) ?' I+ a/ m4 P
static void __exit led_platform_exit(void)
( Y; j4 [  j- Q1 y{
' R3 u' Q- g) _        platform_device_unregister(&da850_evm_tl_leds_device);- F" A0 [$ G+ X) J0 h
& ~. d1 I0 W9 n' K& T4 I
        printk(KERN_INFO "LED unregister!\n");
: l, V; k* x+ z! H1 k}
- s* r+ |* p+ X" l. j! R/ c- }1 K
9 X5 W- G* m* G- `# W& g2 `module_init(led_platform_init);( _( l' h9 U& G
module_exit(led_platform_exit);
) A( v: m2 _# r* K" c* I; @5 e3 H9 i9 T
MODULE_DESCRIPTION("Led platform driver");
2 z. w3 O8 ]" N0 ?4 mMODULE_AUTHOR("Tronlong");4 s. I# [& [& U" i# |
MODULE_LICENSE("GPL");# f/ a+ }. e  D. G8 k) a8 d
, d& ]! y( \; c/ d; \  l+ l, A+ ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-24 21:43 , Processed in 0.039585 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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