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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
  {% w) R5 x8 y& F! N#include <linux/init.h>
" @2 G: b2 [) X8 d/ F#include <linux/module.h>6 M2 K( g( _* d5 a; J6 m
#include <linux/kernel.h>
) o8 Q+ ?- S+ D) y#include <linux/types.h>
/ s4 u+ B; j7 \* c8 v; F& I#include <linux/gpio.h>
4 V! x7 d* {3 C2 f0 G#include <linux/leds.h>
$ ^* w1 K& k$ k+ D, g( E#include <linux/platform_device.h>) X! _3 l) W- V- h% r

3 ]6 y# s. O7 N. |5 T) Q. R: R#include <asm/mach-types.h>
; ]2 Z/ ~0 ^) {) b6 b4 b  k#include <asm/mach/arch.h>; s$ w0 h/ ~! l: Z5 b; S+ ]  a, r
#include <mach/da8xx.h>
" Y& j" h/ d. n: Y7 ]& m1 R#include <mach/mux.h>' c  s! X7 Y- F8 O* H9 M
7 g! C2 M$ j$ i
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 [6 J$ N( x, H. q" v- ?
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 g/ C. o6 i3 D$ q+ E$ L$ @$ @#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)9 w9 H& H8 F% ~+ d* B4 d6 M
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)2 X+ l6 ?, c- p" l- N( X
0 _, o4 X; r! s1 z) l4 G
/* assign the tl som board LED-GPIOs*/+ L+ ]- P( e0 [6 W. T
static const short da850_evm_tl_user_led_pins[] = {
. P) a* K/ C& x) ?' r        /* These pins are definition at <mach/mux.h> file */
) x! Q  s* P. H, k2 v# T        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' T/ s" c9 ]+ K( O        -18 t- w( S- a! @% M$ ]0 g* G
};
" u( M2 E2 r6 W, }- n  ?  T
/ s- a/ \: F& H( cstatic struct gpio_led da850_evm_tl_leds[] = {: G/ _& U; p7 F2 Z
        {
" V5 m( [& ^  f& x& m                .active_low = 0,
* T& f/ h/ ~0 L+ T                .gpio = DA850_USER_LED0,
2 Q+ P3 ]9 X5 O% }% K! H                .name = "user_led0",$ t& t2 E- u* v8 c! a2 H
                .default_trigger = "default-on",
0 r! b! D8 o: A3 G        },& \) q& T" c2 |$ F9 ~
        {9 \7 Y7 |8 ~0 D1 l, R! g- c  l
                .active_low = 0,
& p. D: R! z& F                .gpio = DA850_USER_LED1,- W3 p/ ?7 |8 k1 s% c" ?' m, F
                .name = "user_led1",: G5 P" {# |  m1 ]; _5 B
                .default_trigger = "default-on"," E5 I  \" m' o/ Z5 Q( i$ ~
        },# r5 D! `  a2 `* M/ a
        {8 a3 v, a6 X3 k) k" g. W3 J
                .active_low = 0,& y0 [' Q4 r; ?. y
                .gpio = DA850_USER_LED2," q1 ^* `$ a1 G; x1 ?. y3 d6 ^
                .name = "user_led2",* X7 b) q8 e& D, k  E' B5 Q
                .default_trigger = "default-on",
; W0 q  J4 b8 M+ ~, J        },- y" F+ S2 p) \/ Q3 o/ I7 S
        {3 Z' N/ k* c8 ?- n" C
                .active_low = 0,
4 R; W4 [) q# Q. a                .gpio = DA850_USER_LED3,3 [' Q2 k& _+ ^
                .name = "user_led3",
( B+ h" s: E) L5 j( {                .default_trigger = "default-on",
! W/ T* {1 R  w1 c" L4 Q        },
6 z7 C( p6 o5 b' `; I. J1 X1 P3 C  U};
  P. |( b# c; j2 i. f9 L3 d3 R. ]. D. `! l. T7 {# R
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {- e& N6 d: L$ p9 e
        .leds = da850_evm_tl_leds,& L& t2 x2 G/ U# b! Q& g) b
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
& Z2 ]7 b: K0 C' i4 ]! O$ H};
3 P4 s% P" j5 I% F, ~+ A/ u4 O
) D5 s0 _! k* C5 \static void led_dev_release(struct device *dev)) K- q0 U1 u% V5 F) I7 c+ \
{0 B7 ?. S9 ]4 b3 Y0 u3 h9 u
};. Z0 X) N& q+ F! N7 Y+ ~
4 G2 @2 n, y6 I% k% B: m/ x
static struct platform_device da850_evm_tl_leds_device = {  T# w  E/ ^" k& ^8 i$ B2 V4 {
        .name                = "leds-gpio"," C1 H$ {3 G) T$ a
        .id                = 1,
" C; H5 F6 ?8 \  G2 X7 m. p1 e        .dev = {6 W( O% S/ H' k+ O% T: F' R
                .platform_data = &da850_evm_tl_leds_pdata,
+ @" |9 n/ Q- N* e% T) M5 w                .release = led_dev_release,
% S! ?2 L9 G! h9 g1 U        }5 Z$ p: K* N2 F9 T  _: R
};
) K" B" T( n+ R* y( ~8 R: L7 j9 {6 q: g8 `5 L
static int __init led_platform_init(void)( F2 x0 M+ a- y& k  d
{
0 v0 H) F' }- j  d8 k        int ret;" b! G0 N  H2 u" g0 t
#if 0
$ L% G# N) Y; @        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" W3 Q# h% U7 f; `# ]4 v
        if (ret)
$ ~) K- V7 o9 |                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
* x7 {, ^) m9 F8 k: [                                "%d\n", ret);9 m& e/ w7 s. y$ f
#endif9 y' v! y; J: A2 [) M( A
        ret = platform_device_register(&da850_evm_tl_leds_device);8 ~6 _- _# t& ]& @) ~+ s1 r+ k( Q
        if (ret)
. O. O* ^6 D& X1 j# p/ ~0 A/ G                pr_warning("Could not register som GPIO expander LEDS");
9 P7 L! g, Q2 |& h; f0 R        else
% @1 b; s: `9 b& A/ J                printk(KERN_INFO "LED register sucessful!\n");
  c( g3 C5 O8 t) j) g8 ^, k- k4 k# {, R% @7 X) L) Y, b7 L
        return ret;3 n# l8 |4 ^, D1 j
}
$ M9 u5 d6 D5 n% m1 ^) v. I+ W/ Y8 I2 L; O- B' W" z
static void __exit led_platform_exit(void)# T/ Y2 B, w5 ], r9 W  g
{+ o; n# Q. n4 x! z5 \1 t2 U/ M
        platform_device_unregister(&da850_evm_tl_leds_device);5 E6 V! g% C% t

' f5 H) D$ D" T$ n# W        printk(KERN_INFO "LED unregister!\n");/ I2 p- L* [' x) D, I
}% g1 w2 S( Y# H
2 J; A/ [" E' G3 [
module_init(led_platform_init);( s% u. h2 n& i6 Q  O; z
module_exit(led_platform_exit);
' j9 D( N. ], i& O" v7 ]. e# p, D8 W6 q6 e$ [6 G* b% a+ e
MODULE_DESCRIPTION("Led platform driver");4 H& W  ^+ E3 S. C5 z) x
MODULE_AUTHOR("Tronlong");
2 V; g* W4 L1 W! @% zMODULE_LICENSE("GPL");
4 y; U3 b* i3 {0 I0 `+ o$ w9 _) O( u3 ~  @3 v- p) K5 K9 U& t$ A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-10-8 10:02 , Processed in 0.043737 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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