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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。& t4 v, u; w- {  s! V3 ^
#include <linux/init.h>+ U( h5 @# Q! Q/ x( C6 E8 T. s. E
#include <linux/module.h>
7 |" J' c/ m- H5 y- ^* Y#include <linux/kernel.h>
5 `/ ~3 \- ?5 g" x#include <linux/types.h>
: Z0 X6 F7 g+ Q4 m#include <linux/gpio.h>
& _( F+ e  C$ S. o#include <linux/leds.h>
9 s6 e# s" U( M: b' b2 S#include <linux/platform_device.h>
+ T& d3 y3 p5 ^6 h
2 v5 F& m1 n: v1 L5 F#include <asm/mach-types.h>
& o# U* d' t# b7 \  M/ D#include <asm/mach/arch.h>7 P# ~2 W3 r% J6 I& [
#include <mach/da8xx.h>
: ?8 G' U# C/ t3 v7 S( k" H#include <mach/mux.h>! S0 X" T  u( t% q& p# }

+ C7 j4 D  o+ G+ [3 R6 n#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
% O/ q; M( K* D  A1 P#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ s. l. x* B" ~#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)" C- z$ H& @9 S, w' Z# A4 ?$ `
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
* @1 @# C; [- T
) Z& ^+ |' P% U+ ~; T0 D/* assign the tl som board LED-GPIOs*/
) T& l. h( f# O" Kstatic const short da850_evm_tl_user_led_pins[] = {
& z) L" H1 j5 Z        /* These pins are definition at <mach/mux.h> file */
* D, K& s( ~' U* g1 {' f        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,. @1 o4 Q5 t2 b- H1 H! f: q7 D
        -1
! ]# I1 F  O: S4 T) j5 n};+ ]2 q# k& X) _8 U3 H$ }1 z% p/ z* E

  N0 C; @& t1 e. L9 s; \5 tstatic struct gpio_led da850_evm_tl_leds[] = {
3 }1 p6 g  r% e+ E  d- m; t3 C/ k% S        {
, A* {: T$ s' U# m8 K                .active_low = 0,5 Z8 A5 o' b7 I' O& n
                .gpio = DA850_USER_LED0,) [6 f" I* S  h1 [- e# r. w2 o, a
                .name = "user_led0",8 }" @3 Y1 T2 j' U/ Y4 y5 u/ K# p
                .default_trigger = "default-on",
& J( Y1 d, b, Q        },
0 f" B2 ?6 }* Q& }        {
. C2 D( p: ]# @1 _3 g! ?2 Q4 c                .active_low = 0,+ J# ?3 n* `) u) R
                .gpio = DA850_USER_LED1,: ~: ~0 ]* r* {# z0 w$ P7 g1 p
                .name = "user_led1",/ ?3 j- Y* ]& ^% d
                .default_trigger = "default-on",
/ B: ?$ w2 H: i4 ~( H# [        },: f7 ]) {9 I# }( m  y
        {
% p; Z8 j- e! k) Z! V1 l                .active_low = 0,
, A+ i. Q6 Q0 p0 X+ Y                .gpio = DA850_USER_LED2,
7 q% x: |2 u8 K9 M% O/ V6 }. B                .name = "user_led2",2 r# D. d7 S6 H! c0 |! d5 t
                .default_trigger = "default-on",
- e1 m% ^- l+ n: d) M$ \  N        },% ]! h! W  c1 A: K. d9 F' F( Y" Z
        {
/ E# i' C7 o& _1 m* y6 h                .active_low = 0,
' a  p% l+ C& Q3 U                .gpio = DA850_USER_LED3,/ g: V) C$ Q; a
                .name = "user_led3",
$ O$ A' S# c) ?" l" v9 X                .default_trigger = "default-on",
# ~! I1 X% l/ d+ A$ j( u        },. O' i3 z3 u3 F% _' a; j/ r
};: Y+ \. c' l# p- L7 Q) r0 S6 O; @
; H' v: P% g  z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
9 D' D+ m+ s& V        .leds = da850_evm_tl_leds," s6 P1 c' Z2 q: H, ~
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 T2 J, _/ H: W7 T% D5 w};
0 O  E+ I+ \$ i# |& R) i, u
# }) t- w) H5 F+ X6 }$ Bstatic void led_dev_release(struct device *dev)
3 Q( Y; J  }* z/ W- b6 e) L{8 v# u8 Q' E$ G  g$ `6 K: Q
};
3 s4 W; m2 ^6 z; x# C" B
: H$ v3 Q  ~& o8 j( y# v3 y# C, Q/ Dstatic struct platform_device da850_evm_tl_leds_device = {0 l% S, ~) U# A/ s5 x' D8 D
        .name                = "leds-gpio",5 V& i+ m& d  ?" b/ L, \
        .id                = 1,
( j3 b& A6 f- C' f( A3 ~: q4 h1 \+ g        .dev = {$ z* q0 r9 N, S4 A' p3 v
                .platform_data = &da850_evm_tl_leds_pdata,6 n1 R2 L) D' G
                .release = led_dev_release,
2 @4 W' g' ?; L) \% Q* J        }
: g5 L4 v/ x& X};
$ ]0 i% p. m. t- T6 }  v
6 o( [9 D# X0 P" a( Y3 kstatic int __init led_platform_init(void)3 F) H1 w$ O' Y4 T9 w3 I& z
{
. C/ F# E' [6 a5 ?# C6 D3 Q        int ret;
0 U# v5 k  z1 ^4 E9 i#if 0
7 ~) m0 U; _2 H! @        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; d" W: f7 z) w! o2 V
        if (ret)
; y0 r* p, w6 @: x3 m1 t9 L                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
. X4 `8 w  U1 O8 B                                "%d\n", ret);
" s" G2 ]% T% X9 H- c$ y! P#endif7 p' K5 {) X! R, q8 u
        ret = platform_device_register(&da850_evm_tl_leds_device);
3 @, E: o3 ?% W" T( |        if (ret)
- W# B9 _3 P7 j# B. {9 K                pr_warning("Could not register som GPIO expander LEDS");
. L& t( l5 Q( u. j: o! S' H+ f        else9 ]" T7 K7 ^& g) @4 O9 U
                printk(KERN_INFO "LED register sucessful!\n");
8 |9 N2 a3 D/ R! P1 y/ Q6 a3 E0 Z; W  @: Z: l: K* Y" F% M
        return ret;+ `" ?" E0 N. y1 N
}
% l$ J2 C8 i4 i7 A! o, W& f7 j
& H" v9 W" o6 u" C/ H6 jstatic void __exit led_platform_exit(void)% P( O& A+ B, d; T* P- L  \. o. t
{% B( e0 a! k6 Y1 s& V
        platform_device_unregister(&da850_evm_tl_leds_device);( S& Y- Z7 p9 L/ r) l

' _% n+ O) V% w: m% j/ y6 t  y. o        printk(KERN_INFO "LED unregister!\n");/ Q9 k( i2 l8 ?: L
}* [" s0 t+ G, C& I; V$ A
2 {/ r. y9 s# ~  K: I* }
module_init(led_platform_init);- R" [/ }/ V7 k. Q8 J. ?2 N
module_exit(led_platform_exit);
3 R% B( v0 I# G' }9 j+ M) }) Z6 g5 R+ _, u" K* c8 s5 ~
MODULE_DESCRIPTION("Led platform driver");
. }8 @' Y1 V! Y& q  s4 I: GMODULE_AUTHOR("Tronlong");
; a( m0 u/ n0 a! ]MODULE_LICENSE("GPL");
. J" @% o1 d# b" H
$ \1 _, e& f  @  x% Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-24 06:58 , Processed in 0.039664 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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