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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' L$ T& X$ Y$ L0 @4 v: J#include <linux/init.h>. T( J5 m1 u5 N, j
#include <linux/module.h>
# _" }* a! C, V: b#include <linux/kernel.h>
4 I, k1 f% ^* S) J$ ]0 T8 m#include <linux/types.h>$ ?9 n8 V. g+ s0 C; W* J/ F7 q
#include <linux/gpio.h>
9 h6 N8 V* v' Y3 ~: X' g* H6 _. F#include <linux/leds.h>
" C; P+ r& P0 M" l3 B5 a/ N9 r#include <linux/platform_device.h>
% u" T' y( n8 k5 e: C9 L8 ~) x( f2 \3 o
#include <asm/mach-types.h>
% A5 P' U/ _2 _) W% Z. b8 R, r#include <asm/mach/arch.h>
* y. p: X9 A. J# f, k7 ?#include <mach/da8xx.h>) R8 H. G2 a* l9 ^5 h$ c6 _
#include <mach/mux.h>
$ W* @0 a+ p$ x9 T) \
& T" l- w( J) w3 }#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
: n; h, n6 h$ Z) R#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)5 i. v6 S  w# C5 q2 E' C) o6 U
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)9 g! v4 y! J2 ]* M
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)) v9 p  d/ l$ l5 O" A
2 p: R0 r# o: a# R" p, q) ?
/* assign the tl som board LED-GPIOs*/
& m2 L: Y2 s0 w& C1 [$ b& D( ustatic const short da850_evm_tl_user_led_pins[] = {+ Z+ N/ m+ a3 {  G/ K" J
        /* These pins are definition at <mach/mux.h> file */
4 j( W) B" U6 F8 B+ t        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
7 P4 s* j5 n7 X        -1
4 D$ Z7 m3 C  M' ?3 U};
; k) `- [( s# t9 o! N$ d
- H2 e3 s- P! _( B! V& Vstatic struct gpio_led da850_evm_tl_leds[] = {
) X/ X5 w0 l9 U$ `/ [" A! i        {
3 N7 m3 ]- O1 c* ^- _' N0 E( G                .active_low = 0,5 x% v: Q' N" {& C
                .gpio = DA850_USER_LED0,1 t4 X2 U) R$ @
                .name = "user_led0",9 \. t* n# `. Y1 S4 c' N, V, m
                .default_trigger = "default-on",- y% r0 C" g3 T9 r% i
        },
9 G. {3 j" g9 w' r        {& `, L2 D6 B2 q3 [& }4 Y5 z* ^
                .active_low = 0,6 t' B4 K+ y. }2 z. ~
                .gpio = DA850_USER_LED1,& }( N% @: {5 z9 R! _! V5 U5 K
                .name = "user_led1",$ x. @7 G# F1 [/ e' E" m
                .default_trigger = "default-on",1 l2 ^: M! g5 X9 w
        },* r, c3 S3 R0 l0 I* K" @' s
        {% B7 `6 q$ m- b& Z( l' _1 w  z
                .active_low = 0,' F) B1 J: z% _6 V0 B* e' u
                .gpio = DA850_USER_LED2,) h$ N: b7 G* {
                .name = "user_led2",5 ?) ~8 g- @6 m- C
                .default_trigger = "default-on",& T: n' G. p& [: v, K' F
        },' A9 p& P8 A1 y/ i6 ^! H
        {
2 r' e; m2 x! R0 o! F' i5 a( W- ~                .active_low = 0,
8 l: Y6 C& q0 j! c* m  G  S% @2 \                .gpio = DA850_USER_LED3,
9 U1 r, W" L/ Z" ~                .name = "user_led3",
$ N; w* `% z9 U4 _                .default_trigger = "default-on",
7 [- [& Q) v- g1 l; y3 E5 J$ o        },
. b/ O% B  x3 e3 X8 |( M" D};
8 D% [4 h$ |( }; o3 [" t1 z+ I! S: x- v3 l5 u
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {( o' l* N6 K) \' o; a1 e, G
        .leds = da850_evm_tl_leds,
) f0 a* o+ `6 T  _        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& j) P' f; w$ \% h" q( Y
};
9 H6 O4 n- `) u8 |( F. h5 S' Q  u6 |0 d9 s
static void led_dev_release(struct device *dev)+ v3 s+ D/ [, n: a! u
{! |9 ]1 j! j( s# P$ |
};
- Q: U+ n  i1 |  S
* W; r7 `! Z( q$ }& Gstatic struct platform_device da850_evm_tl_leds_device = {
0 ~: I1 l0 ^+ S, D9 t! U* E! V        .name                = "leds-gpio",1 h/ X. L; @, W% U
        .id                = 1,8 I# H& N+ m% ^% K. F/ {8 `
        .dev = {6 ~/ q0 Z/ C- y( M
                .platform_data = &da850_evm_tl_leds_pdata,
; A$ T$ k1 O  R1 d" F3 D$ J                .release = led_dev_release,
3 Y% Y" g8 u9 K9 X        }) _/ z# j) `+ n+ Y: ~+ \+ e* ]
};2 r2 G. B: b* E& m

% z# B0 A5 C9 r! V) ^8 M/ Ustatic int __init led_platform_init(void)
$ e5 C/ D5 B: d6 q+ X- c3 ~; d# O7 |9 e{' x+ b* C/ p: K4 `+ p, ^; S
        int ret;) X9 _: C/ d1 n3 ]8 k
#if 0
! U& Z. Q( c; r+ w        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 n2 J7 Q  d) N# \. O# i, g, e3 m        if (ret)
0 |& U3 r+ U& j7 q# U& ?7 q) B                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"3 \% V+ l+ E. S2 E
                                "%d\n", ret);* [/ A6 E9 S* }" i0 S4 {+ q) o
#endif
8 W, P4 }3 r6 X  ]0 i        ret = platform_device_register(&da850_evm_tl_leds_device);
, H! D) o5 j; k        if (ret), I0 u. @9 u1 f8 X/ |
                pr_warning("Could not register som GPIO expander LEDS");( i; n+ t( r4 S3 e2 [# q3 s, w
        else0 b; i" V" A) |1 v
                printk(KERN_INFO "LED register sucessful!\n");
6 E+ e4 B7 |, }! [$ \: ^3 k
) I; G* m7 J( ?( T% T        return ret;7 v$ A  [8 f& v) {
}+ e+ A' k* v! ]7 L. x% Z

% K/ a% c, _  ~2 h" G! Hstatic void __exit led_platform_exit(void)
& S8 ?5 S: Z; O$ x{% g& B3 Y2 t/ P+ {8 B! T1 R; }
        platform_device_unregister(&da850_evm_tl_leds_device);
) d3 J0 _9 Z% ^/ E; l& x7 P; O
) D3 a' H' j1 w" X2 O1 e+ ~        printk(KERN_INFO "LED unregister!\n");5 r: b3 E  B. ?$ d  [) `
}' M2 V8 v. i) k! {

, {, s! a! H6 h& [6 hmodule_init(led_platform_init);) X6 ]- ~2 Y/ ^$ f0 P( i5 i
module_exit(led_platform_exit);: G4 }- g3 Y) p1 [. ^

9 g! I! I0 k, d6 N" P9 O+ d2 QMODULE_DESCRIPTION("Led platform driver");
% |" n" B+ }9 {1 i7 e' q4 qMODULE_AUTHOR("Tronlong");
  W0 f' q) I( b! ^& ]MODULE_LICENSE("GPL");
0 o7 \) a1 {8 h" F/ Y7 s3 j: X! B
& f7 t6 `, Q) {! I* L: i: G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-12 22:00 , Processed in 0.037693 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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