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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。0 m. v! o- C; P2 R! l3 Q
#include <linux/init.h>' c) V4 Z3 m, I5 T' V8 O1 J
#include <linux/module.h>- R+ g' F- ]& q) g
#include <linux/kernel.h>
, ?& `8 T6 c5 q' L. v#include <linux/types.h>% @: i2 @+ N% m/ {  |9 ~8 _
#include <linux/gpio.h>
  g  s8 x1 [3 W8 j0 f#include <linux/leds.h>
0 X  \) `% V5 t+ y  Q#include <linux/platform_device.h>3 ~- v" D# P) R2 B
9 q, {1 e" B1 ~; E# d
#include <asm/mach-types.h>' j0 h7 n9 `! U
#include <asm/mach/arch.h>
: ^" ~$ A- D/ P" ]2 f#include <mach/da8xx.h>% O! N' B0 P+ }4 R0 H0 E) F
#include <mach/mux.h>
, }5 l9 z7 x$ O+ i. n
7 I) q5 W% Z/ d* a& c, K- V, M#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
" S- R7 g/ n& q: X0 I# `. k/ J; r#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)! O/ z; O9 e. `) f% V
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)7 I; J- P% L: {; y- D
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
+ c2 C* A! L* d: E/ d; ~2 |7 \9 g
2 ^9 W) U! P; Y6 J7 v6 D/* assign the tl som board LED-GPIOs*/
. p+ `$ _, C3 `( }static const short da850_evm_tl_user_led_pins[] = {
' e& p, I3 }- e' I9 n  Y3 F        /* These pins are definition at <mach/mux.h> file */
( l' s9 `8 \0 F6 U4 D. \# w9 C        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
  ]2 F# O9 a( {$ ~* r6 j3 c& c        -1
5 I: A* q5 r/ g};1 C! ]$ x* }& a+ f$ ]7 \0 Z
* s, {& s7 q% _" S/ d2 f% a
static struct gpio_led da850_evm_tl_leds[] = {
) z" d' d1 S# }8 Z* u        {% F1 r4 P$ @- s+ L
                .active_low = 0,
" y+ @$ j- g2 ~& d2 `                .gpio = DA850_USER_LED0,
" H. n3 P2 V3 a' G8 X  V0 @                .name = "user_led0",+ _6 C# O% f# |, y
                .default_trigger = "default-on",
, ~1 Y# w' ^; X        },
: O6 ?: F2 |. w7 r- g        {
4 h3 y/ z( P% [& v                .active_low = 0,
$ t" d0 R; H) }                .gpio = DA850_USER_LED1,
9 z3 i. E6 I' y/ V9 K. \                .name = "user_led1",: O, g( Z7 u: t
                .default_trigger = "default-on",% Q6 S$ {  t5 ^3 q0 J$ |# o" b4 C
        },% `$ W5 w+ p4 Z) J0 b
        {! n1 z. Z* B/ O) [5 t
                .active_low = 0,, a( c" }3 R6 Y- W- ]+ L
                .gpio = DA850_USER_LED2,9 X# u8 n' B- J6 |
                .name = "user_led2",+ T2 d7 G) a; m; f
                .default_trigger = "default-on",
9 b6 R3 ~& o5 P        },
7 o' g5 y* B+ b5 Y9 g        {
7 \4 B4 s; }) i2 }/ L4 u                .active_low = 0,* ]1 b( T5 B0 s, v
                .gpio = DA850_USER_LED3,7 b% W" \; L+ q, a0 ~7 X0 m% P) v
                .name = "user_led3",0 I) w- E/ A3 R' v# x# a& ]
                .default_trigger = "default-on",
! u& Q) c- A& e+ v* R        },
; X, y) x3 z7 O8 E$ z};* d1 Y( a" j" n1 F- e- a, H

2 ?+ O: i3 N/ F$ w1 hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; L/ R1 \5 k3 o7 Q+ }) E) O        .leds = da850_evm_tl_leds,% |1 X) i+ [1 \
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, J6 Q9 |9 K/ ~& Q};) ?2 c4 b& K8 [% M

/ G5 u7 u9 u. R9 R5 Jstatic void led_dev_release(struct device *dev)
) r! z" m0 V: Z# u/ U; v( [{4 e% u/ C, H2 J$ O: y* e9 j7 b
};( P9 x+ |/ H1 U5 ~% i6 P

8 f1 i# b" C& ]/ P% C7 [static struct platform_device da850_evm_tl_leds_device = {
( X. _! s0 {- M! A/ w$ ?7 l        .name                = "leds-gpio",7 s. A) I) r# j& D0 R2 \
        .id                = 1,
# W2 m/ D8 a3 y" K6 {" d6 ~        .dev = {1 j% f2 C+ y# h! |& w" c* R
                .platform_data = &da850_evm_tl_leds_pdata,/ U7 m! ~. s* {( n- a; ?8 A- }
                .release = led_dev_release,8 _5 @$ P/ y% x6 ^4 F! w
        }* j/ g" A/ C+ `5 G: t: c
};6 {& Y- N- y/ D  A/ L( I  B

6 Z1 s& Q1 V; |/ d* o, cstatic int __init led_platform_init(void); {# Z$ h$ _# ^7 H# q% N
{# E- U+ \8 @) i
        int ret;4 H7 r/ `. n$ R+ z5 q
#if 0% v. S8 `3 Q* c) R  h
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 H, _- v+ k: ?        if (ret)
5 M  g2 P( J- S                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"9 m: }) ?$ [( e! R# N: T/ k, @
                                "%d\n", ret);
8 P: _, G6 r  u" P0 n9 D#endif
# e2 H) [, M0 K( _- ^! Y" ^2 c        ret = platform_device_register(&da850_evm_tl_leds_device);
! B+ V5 Y  [: V; s( F1 U+ [4 f& y; L        if (ret)4 q; G5 w% m  j4 Q+ V
                pr_warning("Could not register som GPIO expander LEDS");' e/ A" A- k9 V
        else0 [4 }6 L1 e0 n" J8 b, J
                printk(KERN_INFO "LED register sucessful!\n");/ [( L3 H8 \3 X( [8 n& r
8 i! ?8 }0 @( m
        return ret;* Q( o4 W/ D- v  F( c; Z1 f  x
}
! U* r6 U( U) s( @3 y; \- c  |2 Z' e4 H
static void __exit led_platform_exit(void)
5 }2 j7 l6 b& P0 j0 J. `{% O" t- ^3 D& M  V3 p7 z( W( I
        platform_device_unregister(&da850_evm_tl_leds_device);
9 \9 Y3 b, [, i" K" y/ j
, f$ D$ L* _4 ]/ f) @5 K' W# y        printk(KERN_INFO "LED unregister!\n");2 R7 l: Y. A% X4 S9 u4 g
}, K! i0 @4 A, g4 v* `6 l& t
" @1 K# e) i& L# Q
module_init(led_platform_init);* F) T4 j) d( t- S+ c# Y& F
module_exit(led_platform_exit);
: Z9 J  j) ?7 P' l
. b6 y3 G( t9 C# eMODULE_DESCRIPTION("Led platform driver");
4 ]1 a# W2 P" A6 {+ x. EMODULE_AUTHOR("Tronlong");
4 r5 h+ n6 E: C& W0 oMODULE_LICENSE("GPL");
9 O' p6 u& _" X) Y* ?9 l: i) d$ e- N6 p7 Q( g5 U( a+ }- B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-31 16:01 , Processed in 0.039786 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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