程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
! G) v# k. |0 C  c#include <linux/init.h>4 u0 G: t" Q! g; [5 W9 @+ F1 W) T
#include <linux/module.h>6 C! y9 ?% `4 b# g/ Y
#include <linux/kernel.h>, x8 g8 O1 A* N  d9 d- a3 B4 F
#include <linux/types.h>
- W9 _: v; m9 r1 D* R% p7 T2 x#include <linux/gpio.h>' Z2 A; l- u. q+ O2 k
#include <linux/leds.h>% Z( m' X# O: [/ R# x% ^* M
#include <linux/platform_device.h>3 M& x+ ~% M: J+ F

+ _; `1 \, W" @#include <asm/mach-types.h>" h, j1 d( H& A" w9 I) g7 f8 h
#include <asm/mach/arch.h>& G. I- q2 M; O/ G3 I: T
#include <mach/da8xx.h>
9 O* F/ n/ ]7 r- v% I  t#include <mach/mux.h>1 q3 P) I7 z$ ?/ m) B: A! }) Q+ ?
/ k; m) d& {- t2 X: K9 ~4 P
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)& b; M! _, |/ F1 G7 C# ~! w
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)$ Z1 q! P1 w8 {) g  \# M
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! L  |" M0 |. z, F% V#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
- m" K4 c* m" I4 C% h1 U5 e# E; L0 T! x# N$ N: J8 s6 Y
/* assign the tl som board LED-GPIOs*/
& o$ j! I. K$ D1 R9 |# e3 Q. G' Cstatic const short da850_evm_tl_user_led_pins[] = {
. r2 A' H1 X2 G; D& X        /* These pins are definition at <mach/mux.h> file */' U( \5 R' M1 L) D
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,7 S8 r2 z* {. z
        -1
3 C, Y' k* v) s- `& U};
0 n0 n  h$ X- o* w
( ]! U1 Q7 O. p" astatic struct gpio_led da850_evm_tl_leds[] = {
' [8 I: \1 O% x7 f        {. r4 s+ }, G& ]( R/ a2 H
                .active_low = 0,( T  z) n: E9 e2 m9 e7 R" Q: j
                .gpio = DA850_USER_LED0,
! V% X' c7 N6 L0 K- J& N  \                .name = "user_led0",% |& _9 h5 v. j( d* z
                .default_trigger = "default-on",
3 T9 p+ `; u- N& M: {        },
& z' _: F1 [* e! q! q& s        {2 g0 H2 S* `5 r, m0 n1 z6 r# Y" h7 T0 D
                .active_low = 0," W* b9 D+ P7 q4 y6 E
                .gpio = DA850_USER_LED1,
) B/ W! l. T! z; a                .name = "user_led1",
! q) ]; g8 ~  D. |; a; V: ]                .default_trigger = "default-on",
6 W7 H2 u: {" p) H8 P        },5 W2 X, K$ E7 q' {& L1 ~; M9 ?2 A
        {3 E6 f7 J1 x; l/ b
                .active_low = 0,2 K7 [' Q9 R- K8 \7 H. O) Q" D
                .gpio = DA850_USER_LED2,' k( n  {% V6 Z0 J' n. p6 ]/ k
                .name = "user_led2",6 b  f  e, G4 G3 n" q4 O+ j9 x
                .default_trigger = "default-on",% u/ _3 O9 j0 i9 M8 e8 ?1 q' w
        },
% i2 S) _/ U* \' W. \        {
( \8 t( E% Z& W- A                .active_low = 0,
( r: e9 x2 Z2 J9 |5 k; t$ Z                .gpio = DA850_USER_LED3,) ~# C1 L6 w; g4 |$ \/ e
                .name = "user_led3",3 @' W+ Q# S. f3 Q& |% G, F
                .default_trigger = "default-on",
0 q( f( W+ |+ F( Y, C        },! U" Q9 G0 `" x' T/ I
};$ c1 K3 {2 t3 }7 c

+ W5 b  P  U9 O: c# Z4 Vstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: V, z, c& A1 i: q* n        .leds = da850_evm_tl_leds,: x7 Y4 A9 P& V0 [* i
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 }5 i2 [- F8 q" \
};4 }+ t7 W: v  m
& ^" x0 j' J1 a% @
static void led_dev_release(struct device *dev)
  |1 J1 ?8 K9 I9 p8 y3 c0 Q{  ^2 M9 E, b7 B
};% f6 f* Q; {) ]/ z
& s% E; T' T% _% P
static struct platform_device da850_evm_tl_leds_device = {
3 t% T9 y7 D( h& I        .name                = "leds-gpio",
  @8 H' n- c0 s, O+ T$ d        .id                = 1,
; d  _( h/ W6 A        .dev = {
- T4 m9 k( N' m                .platform_data = &da850_evm_tl_leds_pdata,8 P2 d6 ^( R% |* c
                .release = led_dev_release,
3 X  q" ^. V  N9 o" b  b) Y3 F; P        }( z* n2 ]% K$ h
};+ ~5 v9 t: `" \$ I
+ b" k/ X: o& W9 o
static int __init led_platform_init(void)
5 D9 g# }  ]" s% S9 _$ p{' \' U# R6 K  a
        int ret;
. D( O0 o  E( r#if 0, I1 ?6 {" Z# o% {- N2 U7 }
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);( I9 p, ]* b/ o" p  u) x4 W
        if (ret)% R. H2 b9 [  O! Y. n, u
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
" s! |5 d9 a; ?                                "%d\n", ret);
8 T3 M; r% W( H! |9 F/ R0 A% H4 N#endif2 z) U2 G" i. X- B$ L
        ret = platform_device_register(&da850_evm_tl_leds_device);& A/ y+ n0 `7 e9 f( m# h
        if (ret)
0 ]; z5 `" |+ u3 Y                pr_warning("Could not register som GPIO expander LEDS");
- u0 E& n3 n) ]+ u4 F        else! f: c' h* E4 N
                printk(KERN_INFO "LED register sucessful!\n");# h( i( I0 ]& k2 w( Y' r& t

' I; k% I. L- I5 v        return ret;2 W  q$ V( P( T" Q' |% i2 o
}! }' [: q$ k8 C3 Z
# f( d8 S& c6 C  ]) Q( @
static void __exit led_platform_exit(void)
4 v( u, t. T) O{
; |, f' h% n6 T        platform_device_unregister(&da850_evm_tl_leds_device);
: n& ?8 i5 V) M0 r5 y% a
5 V; v0 J( t1 N0 l* ~1 i) [2 F        printk(KERN_INFO "LED unregister!\n");, k5 n- @' J7 L0 l4 p9 C5 n5 v
}
: k1 `" a1 E% R( r  |( U9 `7 U6 M  f" X' J* S, D3 N
module_init(led_platform_init);, N# _% W, k: v/ r2 [* [1 Z3 f
module_exit(led_platform_exit);
; ^+ h% x" x/ J. ?) }6 b; O" f- g# c5 ?4 b( z
MODULE_DESCRIPTION("Led platform driver");
+ t/ m5 @+ d3 f8 `5 N; S, ?MODULE_AUTHOR("Tronlong");
* [5 g6 O5 F! A; n3 tMODULE_LICENSE("GPL");
5 i- x* A6 V" a* o( T) V" q( Z$ g/ i4 c2 r: o/ q. J9 S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-9 06:16 , Processed in 0.045935 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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