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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。7 Y) Q  O+ q2 k( Q5 T' U4 }
#include <linux/init.h>
$ p) J8 D# T" F5 v2 ~* [#include <linux/module.h>% M/ o$ J- Y2 R$ E* `
#include <linux/kernel.h>
; t* ~) _* |% I/ W% I; |, P#include <linux/types.h>+ v) r' }% z, M1 d
#include <linux/gpio.h>  s2 M% s# r6 D  g9 e
#include <linux/leds.h>
( {8 w* O. Z; N3 A; H* B9 y#include <linux/platform_device.h>
1 r4 S  A. S; f( F7 t" n" v6 R! u( f: T; m$ q1 n
#include <asm/mach-types.h>
+ j- t0 _' E2 }4 F#include <asm/mach/arch.h>$ Y; r" A" g8 M9 j: `
#include <mach/da8xx.h>; z3 G( E# j8 ^. k
#include <mach/mux.h>
  l. K# B; C) r# N/ G! ]# }' x! P
; ~9 ^; v1 s# N6 d8 i8 K#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, ?6 g/ i- O, c0 [% f5 A#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)3 Y/ {- |: k, Q6 i6 f
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 \  {1 p/ E6 C0 K3 x" f0 B
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
, t0 Y7 @5 l' c% ?% ^* a* W
. d) a1 g! \- x" R, g/* assign the tl som board LED-GPIOs*/
% t; S3 B0 K2 ?, D+ J- G& j6 Tstatic const short da850_evm_tl_user_led_pins[] = {
+ p6 f) \* m0 y) E" v% d$ |        /* These pins are definition at <mach/mux.h> file */5 B9 O5 p7 [5 z: A4 U! v) b
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,% P. z) F  t1 E- [# a: D  p/ q
        -11 v' S- A& @% X5 e6 z% m; u
};% Y9 o8 r% H. d* i7 U5 n! d) l3 B
6 v, f' [9 ^3 T/ W+ K3 \
static struct gpio_led da850_evm_tl_leds[] = {
* l+ M; |% o$ w/ x% p        {8 I* ?3 N  B. x0 Q
                .active_low = 0,7 H5 C' P1 U: k2 W3 M
                .gpio = DA850_USER_LED0,
+ u. w- l4 Q& c* F2 h  c5 ^! k( h                .name = "user_led0",
9 b* W8 S$ B" w* t# n9 V$ v4 ~                .default_trigger = "default-on",1 a2 D1 m) s5 M/ G7 E2 B% Z
        },8 t' J5 p+ k" i
        {
$ v3 f+ ^" a* f, S                .active_low = 0,
+ ~8 J: [  n6 s+ ]                .gpio = DA850_USER_LED1,* e/ n! s4 I) v3 m8 h. {
                .name = "user_led1",3 S9 p" z5 a3 {! h0 E5 X0 F
                .default_trigger = "default-on",
7 a/ C/ C9 c! m( O3 ^. c        },8 W: c9 j4 U+ p: b
        {4 C! l1 X+ q( [4 J
                .active_low = 0,0 i$ j4 |1 j# {: v
                .gpio = DA850_USER_LED2,
# Z* c& C$ h& H* i$ \8 g4 j/ P) a                .name = "user_led2",
: x  \- j" L1 U7 C' u; H" P# \) J                .default_trigger = "default-on",
" f! z7 L- S& U5 m3 a        },% I) J7 m& u6 E- n# b
        {
7 H" V6 `7 p- u; q9 {( b/ k- ]                .active_low = 0,0 G5 q; A2 G3 S2 P) h# ^5 N; b  n
                .gpio = DA850_USER_LED3,
: w- X" x7 K8 e                .name = "user_led3",7 p% L/ `' P8 \/ m
                .default_trigger = "default-on",
+ B4 t5 e$ T/ U' T+ V' O' q        },1 r% `, A1 ?  a
};7 d1 O  N4 Z2 u$ a; w  y
4 K+ t7 _0 d: y
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {# X' r6 k6 Y  ^1 J
        .leds = da850_evm_tl_leds,3 T) Z8 ]  b9 t  D- k: ^0 G/ u: x
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),/ e% Q  u: a3 K' b) M4 Z4 }% k4 u5 _# {
};" z4 O: K) f$ {& s
  M' X2 o1 P5 @0 _
static void led_dev_release(struct device *dev)2 u, y" p& c9 Y- \1 m( m
{
8 E! V% k3 L( G: r2 `};5 q2 Q; i- p; i. |1 a

# J% r, v  K9 s+ i* Nstatic struct platform_device da850_evm_tl_leds_device = {4 f$ V" d3 g& R, U3 ]5 d8 x  T+ |
        .name                = "leds-gpio",5 L$ ^/ y. J+ G0 h3 \: r9 d
        .id                = 1," `  d3 E/ o6 F
        .dev = {
' W! z2 V% ~6 a3 K& g6 l6 O# ], @                .platform_data = &da850_evm_tl_leds_pdata,
8 w& S0 E5 B  K                .release = led_dev_release,
7 p& y7 f8 h; B# q6 S: L        }, K: |6 u& M' Q
};
- }, I; c& Y# I* B+ f
, H3 T" O% B6 u+ cstatic int __init led_platform_init(void)
1 Z: U0 x, J( t5 A8 F5 W4 [{
4 Z; F, D- v: C7 N; h) r        int ret;
2 W( G/ C1 d$ G$ R#if 09 R: L: P" V% h, P# x8 b3 {
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
2 X/ J' G% d% a3 l- d; t8 `& d3 J        if (ret)" F0 b) H1 E" }1 W
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
1 E& P- u" D% K5 y: l8 s                                "%d\n", ret);
1 ?1 S- n: B* U3 d#endif
( O! Y/ z& j  h% e! ~8 r        ret = platform_device_register(&da850_evm_tl_leds_device);/ |  _; M( G5 I5 i9 E: D
        if (ret)9 a/ K; \  u+ E& s7 \$ d8 e! r
                pr_warning("Could not register som GPIO expander LEDS");
& b# n5 \' X2 E3 K" A% V1 V        else
% [0 W. ?9 U* Z$ o$ x1 H* C* J5 b' W                printk(KERN_INFO "LED register sucessful!\n");0 r9 i: s5 z3 ]% ?* {* l( P% V: ^& a! Y
& N/ s: O4 m) j7 |1 h/ S! u
        return ret;/ Y+ y0 {: r- U' e6 w: S& K
}
" D4 g7 V8 K$ r: I5 Z- Y- @/ e; v% S4 m; ?. O
static void __exit led_platform_exit(void)$ U4 y6 v+ b0 A1 a, U& P; w  s
{+ h! D) R. n; m! b; t
        platform_device_unregister(&da850_evm_tl_leds_device);
( P& @1 q# Q8 A/ y% ~+ e
3 Y. T- K; p$ M* E( c5 R        printk(KERN_INFO "LED unregister!\n");
# Z8 S& `) D9 O* _}  C- l) p: }$ K. E7 S( C4 \, a9 U' n' K
! K$ L% L- P0 P& Q5 a
module_init(led_platform_init);7 s; C' y* o! P( X+ i5 P
module_exit(led_platform_exit);; W6 }) n7 h3 D# K: x

) q: l5 Y' b+ h! J7 }8 I% p& {8 K- IMODULE_DESCRIPTION("Led platform driver");
% k9 D0 I( Q* {: _+ a/ w+ mMODULE_AUTHOR("Tronlong");0 Q' b2 d4 b, B2 |
MODULE_LICENSE("GPL");4 D9 b6 z/ v( k* }; q
+ b  c) r( v6 [! ^' T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-25 17:52 , Processed in 0.038005 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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