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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
$ o% T- d+ k! C- a' B% o#include <linux/init.h>
- \& {  |. R: E; c) _6 n#include <linux/module.h>( j2 k8 @5 D! Z" {5 D
#include <linux/kernel.h>
9 _/ |' k: k% d* X9 e2 z0 l#include <linux/types.h>/ P3 a' x# w# M0 o
#include <linux/gpio.h>
  U2 w% v0 P! H1 f! r3 _) I#include <linux/leds.h>4 B0 [9 h5 u+ I) _, A' H
#include <linux/platform_device.h>
- l- R2 h1 p' K- P+ B. Y: M/ T3 D7 h5 K
#include <asm/mach-types.h>
! S( q' ]) G7 U: R& p; @# O, i# }2 m#include <asm/mach/arch.h>
6 e8 B2 ]# V# i% C* w3 a#include <mach/da8xx.h>
1 j8 V% x% q' d! r  L#include <mach/mux.h>% w1 [; x4 Y% |& U; t

( o& C# I0 u! g) L: `#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 G8 F# _  O) K+ j
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 f! {2 F; g) N# Z! i! t; [3 N5 _. P( h#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
- V; r- U6 h, Z& @. e/ w' q7 V3 ?/ e#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)9 @% R2 ?/ P( p5 b. t# I

; u4 E+ ?+ f% g/ J. |) w1 p/* assign the tl som board LED-GPIOs*/+ X& |4 ^) K9 x, h. \- X" H
static const short da850_evm_tl_user_led_pins[] = {
! o% |% `$ v% W# D  `        /* These pins are definition at <mach/mux.h> file */
, q5 U, X+ |8 Y8 W! w# V5 N0 h        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" L- ~: r/ X" ]7 i2 }: O- C1 m& c9 d        -1
6 W/ _6 x. k+ k2 ?' z( t9 h0 q};4 e* U+ S. b8 S5 r5 B
( l( i9 b# G! K/ P* N4 _
static struct gpio_led da850_evm_tl_leds[] = {" w% m9 _$ Q) B2 J/ p# A* J
        {
: s7 V  w6 V1 x+ }. q  g8 w9 q/ D                .active_low = 0,
5 E7 E( v& ^) Y$ J                .gpio = DA850_USER_LED0,
& ]/ W  @" ?# f- G- m                .name = "user_led0",
, H, J0 [9 F4 E2 g" ~; W                .default_trigger = "default-on",
! d2 Y3 c/ L4 z" U( {& \        },% L& q2 `. s0 Q) T% l  I: t
        {( @* C, ~5 N: }. S) z
                .active_low = 0,+ h5 O' I1 X: I- u
                .gpio = DA850_USER_LED1,9 E2 g  Q3 l" ]! e1 Q
                .name = "user_led1",
8 L& W3 o1 S) d                .default_trigger = "default-on",
6 G$ h* `2 C# p9 C, `6 T        },% f7 h4 k1 }4 C+ N- B+ [' T
        {0 m8 B4 s" F& h1 F( f
                .active_low = 0,
: \# {$ j% e( x2 T                .gpio = DA850_USER_LED2,
( }$ {8 f& Y- A5 V* Y                .name = "user_led2",8 ^, q4 D5 P* r/ L7 z! |
                .default_trigger = "default-on",) q' C* E* W' v- H; J
        },
# D4 I$ ~: K3 A' w5 X7 ~5 p7 W% Q        {9 x' D) E, N# I
                .active_low = 0,
% n: \/ B7 i" \" h                .gpio = DA850_USER_LED3,9 O' a5 t- B7 c
                .name = "user_led3",; |  _. i! e6 F+ x. d
                .default_trigger = "default-on",8 F, R2 _: @4 q1 Q( D
        },
% q3 k. n0 K$ Q# _3 o};
; c5 c8 j3 `! D% b' J' a& ], Y7 b! ?: |4 w# _3 G2 [; l
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; f5 P6 T3 W1 i" Z# T4 u        .leds = da850_evm_tl_leds,
( j* P4 O: q, ~  W, B        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),; Z6 ~+ y. c7 R/ H# i
};
$ p5 S# R, T& Q( J, N& V% ~6 P; _+ l9 Z+ ?4 C5 w8 Q
static void led_dev_release(struct device *dev)
1 T, O$ c: \: y: c4 E) ^{
- E. B0 g3 u- O# A+ @};
5 J# h+ Q' n5 g% h' a% u% O& B8 @) G- i5 G( G7 P0 C
static struct platform_device da850_evm_tl_leds_device = {2 x; M1 U) ~/ A0 i7 t8 R5 E
        .name                = "leds-gpio",
* R+ I1 j/ N5 @9 b6 o        .id                = 1,
( h% A/ n, m- k1 H        .dev = {
4 V6 z/ r5 S  y/ b6 i. S6 G( H                .platform_data = &da850_evm_tl_leds_pdata,
3 q: Z: ~! T) I& a# y                .release = led_dev_release,
- D! O0 T3 ]( |  q. {% U& i, u        }" A' r: |/ q/ z  s* ]% p
};! P: c9 _: D  N7 Z

8 Z, S* l8 O5 G! ]3 u! L* Y) I4 U+ ustatic int __init led_platform_init(void)
4 Z1 \3 ^/ H( ^& L1 Y5 ?( D{) o+ ~! L$ F0 O+ m$ n
        int ret;
2 H2 L# H; Z4 v. t* I$ ?9 g#if 0
9 f( j* ?" q& P        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);: C$ Q8 g* d9 `6 I3 t1 o: v1 ~
        if (ret)1 u9 u. J+ E: M% G9 K- r
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"5 j# |( s  I% p* P1 k5 R
                                "%d\n", ret);1 X- @4 J2 c6 u* Z' k/ {1 `
#endif
5 G7 Q9 h! J' I        ret = platform_device_register(&da850_evm_tl_leds_device);( n2 M' F7 y; }4 v' d+ b
        if (ret)1 T' Z" k, i7 V* B) r
                pr_warning("Could not register som GPIO expander LEDS");! C2 j- Y' I8 I: {
        else2 E) s9 b5 U+ |$ Q7 W5 {
                printk(KERN_INFO "LED register sucessful!\n");6 `* K: s7 s; O
! ~& T! d* }/ o" _: o
        return ret;8 m0 @# q; p6 B6 L5 t! z. M+ n9 x7 z( m# Z0 Y
}
4 G% T! U0 ]0 w/ e8 p  ]6 [$ B- w: a& p- g' {
static void __exit led_platform_exit(void)
; q  U6 N2 T6 B{
' m1 M( W( z# M7 J8 W' [        platform_device_unregister(&da850_evm_tl_leds_device);
( @) S- e  L- C# {5 I! d
2 l+ V7 A2 W. S2 `: I. l1 w        printk(KERN_INFO "LED unregister!\n");( |# k; `8 L. v) I, [
}, Y( i/ i- B1 ~% P

) [* b9 G# \' [7 s. q4 w6 kmodule_init(led_platform_init);# d0 `; _' q# [! o2 V3 l+ ^3 N
module_exit(led_platform_exit);
+ @, h' s$ }2 G# B6 r! b/ I6 \. z4 }6 t6 N
MODULE_DESCRIPTION("Led platform driver");% _- d- p- Q0 M: F$ p9 Y- W& E3 L$ R7 _
MODULE_AUTHOR("Tronlong");, _/ m7 C+ |* ]5 t" x- X
MODULE_LICENSE("GPL");, ?) J' w, i) R/ E
% J  h. V% b5 a5 H  t$ m) }! O) `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-31 06:11 , Processed in 0.037440 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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