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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。5 V0 |; l9 v) q7 B1 Z+ f
#include <linux/init.h>; |8 X( q& \' T& J2 q5 t1 o
#include <linux/module.h>3 D4 u6 ?1 p: t1 _% C0 J$ N
#include <linux/kernel.h>
1 N8 P" k; G2 [' o& }# J#include <linux/types.h>
8 }# d0 e1 |4 X#include <linux/gpio.h>
4 ~' t5 z7 N; T+ Q1 Z#include <linux/leds.h>
9 a+ ~1 l$ M1 O  W4 c2 U4 C#include <linux/platform_device.h>
7 _9 d/ M+ n: l& Y+ f" \' ?* a5 c- m5 q, l: H% G  J) @( q" x
#include <asm/mach-types.h>
7 s9 u2 @% t7 }; F#include <asm/mach/arch.h>( V2 C1 k/ z6 H% _: x
#include <mach/da8xx.h># H1 ^7 w, m" t& f2 h2 k! L2 R; l
#include <mach/mux.h>
: m  P% m" b0 h2 S5 t0 `2 ?: B0 b# ^- m* O8 p
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
/ C9 Y# y" D" V0 ?#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)! m9 H% n9 y$ a4 Z' F
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
' i. Z3 ^( H/ K. j* v! }: N6 _* p: w#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)* W, ?: O! ?+ z1 n' g$ v3 {6 P5 X
- Y" e! o$ x/ v" l5 E4 g" |
/* assign the tl som board LED-GPIOs*/
- z+ l6 l1 U; T3 @' P- \. Fstatic const short da850_evm_tl_user_led_pins[] = {! o$ `, b) j8 d; ?
        /* These pins are definition at <mach/mux.h> file */
7 A. l5 _8 s8 H2 c/ W! u  S        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,2 c! j! D/ t  A6 F
        -1& `3 x3 o6 {" a
};
% j2 R  _. Y- O2 ~0 V- H# `
5 K* t& @/ u# w" W& T& G: Astatic struct gpio_led da850_evm_tl_leds[] = {8 O# U" r# L- O
        {
8 j5 X# e  g0 W                .active_low = 0,
- ]) C0 N/ ~4 @; W                .gpio = DA850_USER_LED0,
0 n  O* }' g6 O- d+ C4 F                .name = "user_led0",
/ x& S! z4 F2 p/ h                .default_trigger = "default-on",$ `7 S# L# k: i# m7 z8 X
        },
6 c% |! k2 x9 e        {/ H! m% s  n. R
                .active_low = 0,
- \; M6 g. E% B* i6 K                .gpio = DA850_USER_LED1,2 t8 A  g: _& t0 X) o
                .name = "user_led1",
; O) s5 c7 Z+ }8 a$ E' C/ _2 ~                .default_trigger = "default-on",
% P1 Y+ g/ o, q9 @  J0 ~        },- r" T- w2 p+ E4 h! |
        {5 c% w8 \# r2 ^: f; B: q
                .active_low = 0,  y. v3 X6 R# U% C# }) b. o, ~. \1 o2 d
                .gpio = DA850_USER_LED2,8 V* U, c/ I: L% G
                .name = "user_led2",; w8 S- ?. E" D" y5 R! i6 T
                .default_trigger = "default-on",
0 _6 d2 j) c' P& t. p2 q, n/ f        },$ ?2 Q5 [$ k% H, P2 A6 S2 c, _$ k4 }
        {
4 x* @8 H6 c* c) `2 Q1 e0 F0 T                .active_low = 0,
1 R$ Q" O% Q$ S8 G                .gpio = DA850_USER_LED3,
$ X6 n+ l+ A* `) h* o" J! X                .name = "user_led3",, D; h$ Z1 X5 `/ X: ?6 A3 Z( S
                .default_trigger = "default-on",
* k! \5 P- `$ O7 V. \9 C! U! d: k) ]        },
" D$ J" N9 o/ \+ R5 j};
. z7 X) z' P9 [# B/ a" J0 u* k6 m9 K) k! n7 M
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
) Q* R6 q/ y' x+ x+ ]        .leds = da850_evm_tl_leds,/ A2 {0 e& F) M# t# k5 M0 X' h( l
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
4 @  `3 o8 ^& o/ B! P* ?. m! H  ^/ J+ P};* Y! G( \' T; g% m: R
) z. ^& X3 p# t4 |7 x3 ]2 U
static void led_dev_release(struct device *dev)
# V+ y  ~) @. P% m{
- }; o# B% B" \+ F};( y. V, S' `/ l, Q0 r
4 v! P1 N$ O. [5 \8 ?
static struct platform_device da850_evm_tl_leds_device = {
7 I! g  L* S8 q7 M: \/ B        .name                = "leds-gpio",
. s! ?3 `% L, I& k+ i+ l) d        .id                = 1,
7 l) }4 X) k- V& _; d" k- r$ B        .dev = {
3 x7 n, H! C9 q2 k; E  I" L                .platform_data = &da850_evm_tl_leds_pdata,
8 U: g  p  E$ {% Q! \                .release = led_dev_release," E7 i( m% K6 L9 m/ W! e
        }
& U# [, q' |& q, g8 A( ^};$ i' m+ o7 T/ }0 ?$ F& x- O
+ L& `1 k% k7 U. Y  B- a/ S
static int __init led_platform_init(void)
* p) f6 X1 L  @{5 H, J- ?" k  H, G
        int ret;" p! S6 m/ a: l( i. a, B+ h; e
#if 0; C/ u' I/ I: H! {: P) S# O% J" x0 q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);& J* e- y2 `& H1 W8 \' I
        if (ret)
6 t8 `+ |, ?& }) ?5 W( Y                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ g  D5 P- u* G6 T; |0 k" P' R' }
                                "%d\n", ret);2 E8 d6 u4 f: P+ x9 _4 P1 \9 g4 a
#endif
4 Z; D' O' z0 _# ?        ret = platform_device_register(&da850_evm_tl_leds_device);
5 j) P% S, _; g# q+ |" M        if (ret)
& o8 ~7 o- N9 `* i2 D8 ~                pr_warning("Could not register som GPIO expander LEDS");; B( _) Z/ T" @1 c9 v
        else
2 ?# m& m0 L$ @* v                printk(KERN_INFO "LED register sucessful!\n");8 J$ h/ b% _# @1 W8 b% B

# A! c2 R9 a3 p" O/ F5 X! l( _        return ret;" M% T& U4 z( w: H  a+ ~& E( a% v7 M
}
2 P* [8 [) {! @, ~9 Y
$ u7 J" G% V, e! a8 ^0 D; o& kstatic void __exit led_platform_exit(void)
% E. O: |$ l2 B. Q0 V3 G{  q0 G( |& m/ _' ], s. V
        platform_device_unregister(&da850_evm_tl_leds_device);
9 V( z" S0 I: n7 U& {- M+ l
+ C8 J) O4 Q2 R, E; q5 D) x+ z4 L        printk(KERN_INFO "LED unregister!\n");
/ |8 v$ z  m4 J' T+ N" a}8 X3 r3 b* z. n' y( W6 a. x$ m
3 |, t% y9 V0 M  q: @. u8 L6 e
module_init(led_platform_init);
+ d1 X2 r3 l' zmodule_exit(led_platform_exit);
5 r: B  h) I8 O& O- b- {% o
+ a5 X4 j( H" m3 E7 q0 _: LMODULE_DESCRIPTION("Led platform driver");* x3 x) g/ L1 K, q1 @
MODULE_AUTHOR("Tronlong");
) U" n* t" L5 ^3 {. cMODULE_LICENSE("GPL");
/ b. Q  {$ \( x$ m! i" a4 _+ p3 u( x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-12 23:18 , Processed in 0.038524 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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