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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
% j) j$ {9 @6 ^% n0 n#include <linux/init.h>
$ c3 A- z+ p: W3 s" @#include <linux/module.h>
% L5 s' `# }8 u- q! {. z* f#include <linux/kernel.h>8 w* n' _6 t. B7 V$ K& A$ B; N; x3 o
#include <linux/types.h>) q3 O8 H% N& g/ z7 ~
#include <linux/gpio.h>/ N; a( W% z4 `# L( u4 }5 X; Z# ~! g4 `
#include <linux/leds.h>, w, N$ Y1 C( m; l
#include <linux/platform_device.h>  U7 x# {: I' S- w

/ i& K- f( ?0 y9 {4 Z#include <asm/mach-types.h>* R9 A% ?0 v+ z5 M' m( B9 @9 B4 @0 F( `
#include <asm/mach/arch.h>
2 T& `( O% K4 ]7 E#include <mach/da8xx.h>0 L7 G1 e$ s3 b- I) A3 P- w4 S
#include <mach/mux.h>
& d, _8 X& j% x% J- F1 w7 c) X
) M: Z  v. k( Q5 q2 n+ V5 y& R#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)8 p: Y. p, \+ e( f2 y
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
% M2 ~0 W% I, U#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)9 [7 r3 |/ }$ C6 c
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
" n. Z: y) G- q/ q2 ~8 z% T1 C& J' H8 g
/* assign the tl som board LED-GPIOs*/
+ e* k; Q* }2 g" Z% y6 c8 |$ e! u, kstatic const short da850_evm_tl_user_led_pins[] = {; [; ?0 I+ m) |- n* _; A$ \
        /* These pins are definition at <mach/mux.h> file */6 w6 \3 Z7 f  s  v
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
: I$ ?1 ?" o# `  x4 Q        -1
! t* E( \  y. z};
% L4 S9 v4 }3 |$ T  ]1 I, n. [' q/ V% R! T
static struct gpio_led da850_evm_tl_leds[] = {5 d: r. k- C. h% m
        {
* _2 O) P% T! ?" R8 m+ t. i                .active_low = 0,2 e+ m! K7 m9 j# m
                .gpio = DA850_USER_LED0,
/ c9 |! E, u* B1 Y" G6 ~6 D                .name = "user_led0",
$ e6 U/ s, _( r4 r! |                .default_trigger = "default-on",* D% V0 P. u/ U! `
        },8 V* u8 @5 Q' L
        {
, i8 d% K6 G" u+ H$ c9 u: B+ w( _: @$ o: y, J                .active_low = 0,( R! B2 d0 V, D* v# \" M1 h
                .gpio = DA850_USER_LED1,
# ]% K6 Q  s( |3 b                .name = "user_led1",
6 ~% M$ {; a4 _( F                .default_trigger = "default-on",
0 R" e+ Y, V. S0 Z; z3 Z. D# a        },
" g% N! ?# Q& K& Q5 s3 N        {% o0 h8 {* h/ q- I
                .active_low = 0,9 a+ |- T7 |8 E. B
                .gpio = DA850_USER_LED2,
+ U% A" ?! ^8 \. X                .name = "user_led2",. p0 {, S  e" J3 j
                .default_trigger = "default-on",
5 i5 ^; i8 q, r" |! L        },; q8 w0 \) V" Y3 b+ N' v4 Y! H
        {
! d8 S9 H. D$ q, B+ P/ Z* N+ R1 _                .active_low = 0,( }. ]' S1 M$ G. K2 C6 \- l
                .gpio = DA850_USER_LED3,
3 h; N& a' l- X: p; ^9 ]                .name = "user_led3",, M% B% o/ P+ J, M( `: I
                .default_trigger = "default-on",
& r+ n! M' e( J6 F% p        },; M' ?& O) K5 d5 E6 }- Q! I. @/ N* a
};- c: g$ q  _, Z2 Q1 C/ z5 I+ r

; }2 o1 W) x5 X# x9 Vstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
  K. n2 a  O* c; L4 l0 V        .leds = da850_evm_tl_leds,
3 F0 s# U* L1 g4 G* m) p        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 N2 X( n7 g2 @/ M2 b- e0 g3 H};, F0 u3 r* z( F3 @
( ?% c$ z+ a0 L
static void led_dev_release(struct device *dev)
2 t0 U" B5 V0 u* M% }5 v{8 t$ u- z+ ?7 U9 H- z7 Z
};, ?+ Q" E; Q+ D: @

6 m5 P# t; A* {) n3 Estatic struct platform_device da850_evm_tl_leds_device = {- L6 I, o% G. w
        .name                = "leds-gpio",8 c% m: ~* s" a, O6 |
        .id                = 1,; M& U$ z# |9 `9 A
        .dev = {3 H  ^4 q. x- W) c5 R, }
                .platform_data = &da850_evm_tl_leds_pdata,
% G. S( a0 U+ u9 p4 N7 q  q                .release = led_dev_release,2 G0 C% a: U2 g
        }
9 B* h+ `1 N3 b, b};
; \3 p/ a( F2 n7 g- R
' H% X& o2 ^+ g9 y" Estatic int __init led_platform_init(void)
' Y# U* y9 z5 |: Z' \7 o9 g/ D* x{
, @3 s3 B& y  T7 O: d        int ret;
* k7 O" G, g7 ?! E- K$ W' X#if 0, e" U( b' t9 A+ T3 n/ Q3 F
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
6 C* W1 |) q' m$ H        if (ret)7 u* H% B# F3 R8 t( y
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
* Y+ W2 K" k) S3 U                                "%d\n", ret);
4 _8 t0 q' ?  _0 C#endif
) r3 R) N! l" x2 ^/ Y& h        ret = platform_device_register(&da850_evm_tl_leds_device);
* p& B( t$ w* U2 J3 o  }        if (ret)
+ {6 H4 X$ ]# J7 b                pr_warning("Could not register som GPIO expander LEDS");
$ F* h. c/ v9 [        else
! e8 ~8 N, m& h4 i                printk(KERN_INFO "LED register sucessful!\n");
0 |0 G$ Z. T' L2 k% r6 N/ [( G+ ^& C+ ^
        return ret;
6 E! K5 P5 I; X}
  }7 }; T" z8 h1 ]1 R' o' f" n
+ N  S' U8 G% w- Cstatic void __exit led_platform_exit(void)" P0 f6 z9 W% j, f& N% o8 L
{
9 I: |1 G3 C6 {1 r; f% G' m) Z/ \        platform_device_unregister(&da850_evm_tl_leds_device);
9 ^3 O/ ], A, P% `" c& b' ^
" e/ Y1 T/ }. R& Y        printk(KERN_INFO "LED unregister!\n");4 E8 L0 z6 Q* f$ Q2 N9 ^& v' |
}# |" D2 o* y7 x0 k* J
: Z2 T( \' [7 d% x" \! r
module_init(led_platform_init);7 Z# W3 h) m' _
module_exit(led_platform_exit);0 F" T  v' S! u2 {4 O

" b8 v- I& _7 G4 e! lMODULE_DESCRIPTION("Led platform driver");
8 E2 H0 {! n6 g9 f6 }5 ?/ uMODULE_AUTHOR("Tronlong");- d" t4 }' p8 u  I0 S0 v' v: u9 d
MODULE_LICENSE("GPL");
4 p- f. |& z* o) K
5 M$ G, `4 f9 t! z8 F: J3 I9 R% Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-8 10:15 , Processed in 0.042298 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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