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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。" |1 _; o9 ?' v  z
#include <linux/init.h>
" ^/ u! _7 O  D0 O#include <linux/module.h>
+ B+ g5 S1 M$ l/ M% i% x9 @3 W#include <linux/kernel.h>+ L1 V4 B7 B. e8 @: D! Y$ g
#include <linux/types.h>  }6 X0 W( g5 T. w, Q7 C6 F1 d
#include <linux/gpio.h>
, p+ B4 b8 B5 p+ r& I4 a#include <linux/leds.h>9 v* @6 ]' |7 k! n
#include <linux/platform_device.h>6 ]% p  J: N. c3 h1 ^
9 H0 g+ c7 X* P  b; j
#include <asm/mach-types.h>2 s$ p$ s- O: T' p' Q" ]
#include <asm/mach/arch.h>
" U" W+ Y  G/ u#include <mach/da8xx.h>
: X/ k: m  n5 s1 c- O6 `* i#include <mach/mux.h>' C: \' \: ~, N3 ^
8 ]" |9 H1 A+ r$ z9 g, z
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
" l0 R$ @4 x' G: ~, m6 w. N6 ~#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
7 f: H' X" @" W0 e#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( E% U" }% R6 w7 S) |9 T1 X#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): c$ p% K, s; d7 N
; \, `" w  g' {& m1 E7 p( c
/* assign the tl som board LED-GPIOs*/
: b5 F" d; K! J2 ^7 j  Q$ M* Dstatic const short da850_evm_tl_user_led_pins[] = {8 b+ z  ]$ Q3 A* U5 a
        /* These pins are definition at <mach/mux.h> file */
' `6 V' c' ^3 h: z/ _8 T! b        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" K+ O% D& B9 t* O        -1& n  L( Q) S8 ], o
};  K8 u! D1 n# t( A! k
. J  `, p5 d" G& L0 V
static struct gpio_led da850_evm_tl_leds[] = {1 \- {  O8 ]% b7 _3 ~( o$ E4 j
        {
" B- {* W) @% a, T* o* [* Q" J7 _                .active_low = 0,
; S. f5 y  B) g6 I2 s0 k4 c5 C                .gpio = DA850_USER_LED0,
+ @3 q: u2 _, P/ R4 T& p  h' _4 o& `7 l                .name = "user_led0",
1 [9 M, M) _7 b# J                .default_trigger = "default-on",; I) ^6 z+ S4 ?* h" L! p8 `* r2 R
        },& t& n2 q+ I! B1 E6 B2 C! Y$ G
        {# h: B  G7 K0 t& k! |1 Y% b2 }9 h
                .active_low = 0,4 m- k: @5 W* L4 o) p# J" a
                .gpio = DA850_USER_LED1,/ D" O& _, F/ A$ c# m/ M
                .name = "user_led1",3 i3 y$ d. w& h  _' z" o, X8 H
                .default_trigger = "default-on",
4 A; Z. d% U7 T. b1 O. S& ^+ S        },( _; s& J6 V. {% d! o2 O3 S7 Q
        {' E7 W8 H/ z" x6 m/ _
                .active_low = 0,
$ V6 E4 m" c. {) i                .gpio = DA850_USER_LED2,. O8 B6 s6 E& [5 Z
                .name = "user_led2",
0 u/ k9 u8 u6 y3 H0 b                .default_trigger = "default-on",3 i( k9 |5 @+ b9 j
        },
$ g' U9 v- d* }, h% R+ B4 `        {
2 M9 k% F" [! ], W) K) {5 B5 E$ b                .active_low = 0,
+ }8 X1 u  H. O9 Q- ]: D! l                .gpio = DA850_USER_LED3,
; ?* B+ {2 A& `" m+ M                .name = "user_led3",& ^9 D& M  h7 E/ b2 L
                .default_trigger = "default-on",
4 n( K7 [6 d8 m- H4 r8 N        },; [3 f8 m( c( s) A5 w
};
1 s* U2 X  V% ?2 u6 V8 U  k9 R4 w5 N6 W" R$ ~$ c  N4 G
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; i. ^% x" F4 e# M. j        .leds = da850_evm_tl_leds,- R/ @+ S: a8 G# C8 ~' H/ X. i& J
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),8 g5 ]0 w( t* j2 Z% V! g/ x" s4 [
};+ d$ Y% L6 P5 J* h/ O" }, F
. ]( n) u4 r+ b" w2 S+ y, ]
static void led_dev_release(struct device *dev)
) \. s( J" R' j  I/ k1 d# H{: f7 c1 h+ M! t3 q/ L; q9 y, T
};; v; r) |5 N: D% h$ `- D" r$ q
4 |. J& j  {6 T
static struct platform_device da850_evm_tl_leds_device = {2 k. b% L) O, D; Y
        .name                = "leds-gpio",
- l' ^. V) H2 \        .id                = 1,' B0 q, D5 n8 x  ]$ ^" `
        .dev = {  B% i" m; ^# g2 B2 Q
                .platform_data = &da850_evm_tl_leds_pdata,
& q, ?. ~" Z/ ?* `                .release = led_dev_release,$ o/ e5 ~/ k6 y8 g/ I, o% q
        }
$ }, l" \' n+ \! _- e7 X};) F( d- A0 D9 I8 h/ p

# q7 s0 C) y! Y- pstatic int __init led_platform_init(void)# l# B' W9 i( i" E
{
* Y+ B- w& j' E3 ~        int ret;' w/ G9 u; _( M4 O% d) \  y
#if 0
% E$ h, k! O$ }' ?6 b        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);3 ], C6 `1 g2 p1 }$ H6 N
        if (ret)  v* O* {" S: v! L# t  V
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"- X, k# t( Z6 G. p, x$ T8 g
                                "%d\n", ret);
1 {; X7 }/ |5 ^3 z( q/ K7 u#endif, K5 L& E- G1 ~1 A: v
        ret = platform_device_register(&da850_evm_tl_leds_device);
: Z/ s8 \7 c8 `        if (ret)& ~$ A2 c+ t% ?
                pr_warning("Could not register som GPIO expander LEDS");
% C$ K9 \" J, B        else7 d5 u( @8 B) h9 [8 v
                printk(KERN_INFO "LED register sucessful!\n");
0 G5 `2 O  Q. |4 z! s, J
0 c; `& F6 w: Q. S2 w: @/ j* H        return ret;
; W$ F# S+ W9 Q+ N}5 o4 n) I' `" U* L1 e; B$ H
4 w3 F9 b& s! r: h8 R  c
static void __exit led_platform_exit(void)1 z9 M; }  M% h# k3 Y! A: i, I/ c3 o
{4 {5 u: {& D2 Z* E
        platform_device_unregister(&da850_evm_tl_leds_device);
( ^* [* f8 _' |3 }7 \  A+ e  y* E# P: o" x# ~/ ~" S( T: b
        printk(KERN_INFO "LED unregister!\n");
' m& J* H% L! ?0 B9 D  j- J}! ?) y8 v& U+ [: J/ p4 H5 X
3 j' W/ x: d/ _* W/ T4 j1 c  I: L
module_init(led_platform_init);
+ z/ E$ e. r- O  B9 bmodule_exit(led_platform_exit);
* Y4 m) B$ _6 `- Y# ?! [2 O9 T, f5 O5 v( Z  J7 T
MODULE_DESCRIPTION("Led platform driver");. y$ ?* z4 P+ m4 i
MODULE_AUTHOR("Tronlong");: r- f& u' m+ `9 H
MODULE_LICENSE("GPL");" Y( g% T# \+ a, E- i

$ J) i. I+ k! P, i7 P* O& w; D
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-18 09:45 , Processed in 0.040311 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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