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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。& F, C1 `8 _" C' w' n8 G
#include <linux/init.h>
0 S& r, G1 e2 I, c  H#include <linux/module.h>' E. ]* J, _( h' P6 R8 a& H% C
#include <linux/kernel.h>0 v3 b5 f* C& A4 v+ P+ u
#include <linux/types.h>+ ?5 a+ W2 k# n7 O+ B% }  Q6 h
#include <linux/gpio.h>- m( l) O. X, c4 r/ R
#include <linux/leds.h>! {" s3 K4 p- }9 d5 L' Y- q0 B/ L
#include <linux/platform_device.h>1 u( ~' n% ^0 ^4 j! q& t; e
! a# W: {0 o0 `; {+ _
#include <asm/mach-types.h>4 S4 ]" w0 Y1 i2 J1 O9 O
#include <asm/mach/arch.h>
1 a' L: W5 T- C* q8 Z! _8 c#include <mach/da8xx.h>
6 y; c/ {2 s) P' `& [6 b. n#include <mach/mux.h>4 A. b* a+ [# V: P+ h7 H' a! j3 }

" L. p1 E! S/ F7 {#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 ~& E- }# _% k* l4 R#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)" S$ ]% s+ H7 n4 A( R) v5 `4 B
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)9 a4 s: r1 U4 m) K. C' w" c2 g9 K
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)% ]1 w" d3 x+ H' G% v
% ?7 [* Z! G4 Z+ r: B3 c& p5 @: ~" S
/* assign the tl som board LED-GPIOs*/$ u) j3 b# T  H& J$ E
static const short da850_evm_tl_user_led_pins[] = {
$ k( O9 B' d- Y. M; z2 ^        /* These pins are definition at <mach/mux.h> file *// l* @$ _4 f! U
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,! R; u% @8 j+ f! a& V0 J
        -19 M: d7 y, G# A9 T
};% R7 L5 q$ S1 w- d! e1 h1 @

$ T0 e" Q# z- R) ~. Wstatic struct gpio_led da850_evm_tl_leds[] = {: L! K5 o% J/ W; F& P; m( z' h
        {; i+ }+ U# H+ B3 E( }3 ^
                .active_low = 0,! a  F1 u. L; a. y- b& S
                .gpio = DA850_USER_LED0,
1 H% K8 X5 V/ _6 w) g0 I8 ~( Q                .name = "user_led0",
# y. N7 z9 |9 E( U0 u                .default_trigger = "default-on",
; m5 {! \6 K( Z2 P        },  S& P# y2 o) ]+ ~  M$ {" ?
        {) g' X1 [; J! o* X$ J
                .active_low = 0,
% m/ J' ^' q6 `! }4 V6 d  N                .gpio = DA850_USER_LED1,) p8 J; y1 l0 B! E4 }' X% n) d
                .name = "user_led1",
9 N, m# L5 v  C                .default_trigger = "default-on",
# |, a2 l6 b1 Q% F        },
0 X' c7 h5 c) ?# D. i+ x        {
  v; {: W. D) B; k. C. x6 [( M                .active_low = 0,
9 v' p' ?5 n+ l9 D" o0 ]                .gpio = DA850_USER_LED2,% S. t; h& Y* o( H0 i
                .name = "user_led2",
2 }# P5 c7 d3 q6 `                .default_trigger = "default-on",
' E* q& q0 k: v; L2 s( t2 v' u) e        },
* n+ y( K( P2 j0 Y' I' k        {
5 X$ X" }/ L3 f  p% B1 K3 J! b                .active_low = 0,
1 ]5 _7 D4 ^  X: j) z! P6 w9 _" T  h                .gpio = DA850_USER_LED3,
8 S5 L: {0 C5 _4 z. a' ]& L! L                .name = "user_led3",' R; _, V7 J; _  ]- }, |  K4 T
                .default_trigger = "default-on",4 g# v' z. o7 R& D) a. \; p' @
        },
0 A( n& C' J2 U" i};
1 w6 w! l+ r8 ~" ], x$ C6 m- Q( y& x& ?6 M
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {( r6 a- u9 O# _5 C, K1 B: G
        .leds = da850_evm_tl_leds,
9 d) P7 ?9 t4 K  R0 s' ^; P        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),/ v, E5 e  x  A9 S( t0 _# s5 |
};
  Y( G# q* x/ `& K2 v, {6 c5 C$ A& M) x
static void led_dev_release(struct device *dev)
" {% Y; \2 \+ S{
  R+ z6 F  N0 l' e};
0 H4 q. f( k6 R: M7 i+ ~5 K6 V/ _
* J2 g6 v9 e9 Q: N8 ~static struct platform_device da850_evm_tl_leds_device = {
4 |9 W3 q; X( V) C5 t        .name                = "leds-gpio",( P2 z$ M: G4 |& S0 a8 {
        .id                = 1,
- z/ n  r5 Q+ G, h        .dev = {
3 t9 _4 V- A0 z. q                .platform_data = &da850_evm_tl_leds_pdata,5 v5 [0 v  O/ Z: D; t
                .release = led_dev_release,
: G2 p- V* R* m  [1 p) O5 H        }: t) \8 S& I' w- U  X3 j5 @
};
7 W9 [# \, O* u# w' f7 e  {
7 M! W# I! c& O* hstatic int __init led_platform_init(void)
* F" [7 [- a$ \! c, b{
4 \, T! E+ u/ B- l1 @. X        int ret;5 d5 `7 j; Z5 n2 ]% _' ?, T! k! R
#if 0
* y5 X' Q, G3 ~4 B4 C0 ^9 D* }( i        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
$ {- Q( X; c/ t        if (ret)4 m- j2 z( t( X# L3 Z6 X
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"& d5 B. x3 z+ j3 s- ]6 g
                                "%d\n", ret);
+ C1 P9 Q0 O3 p  M. s% u& Q; i#endif
6 L7 j1 C: Y& F3 S        ret = platform_device_register(&da850_evm_tl_leds_device);
$ j3 B4 o- X& G& p        if (ret)
- G. E" R' B: z0 W                pr_warning("Could not register som GPIO expander LEDS");
; ^) i  m" z, M2 F& K: {6 W3 U        else% O( I: N5 O; j7 Y# o3 W
                printk(KERN_INFO "LED register sucessful!\n");7 r( ^' p" Y  \/ ]* q) ]- b
2 l8 c; h( f9 H8 n& S
        return ret;
& N0 h6 I  b% |6 G/ d}
; m, `9 k, @! O* \0 m4 G4 h: b
* Z! g; Y6 Z, Z5 Bstatic void __exit led_platform_exit(void)# ]  Y7 V7 g3 q' e6 O. e* |
{/ n/ N9 T) G+ O8 n+ O" E) u
        platform_device_unregister(&da850_evm_tl_leds_device);
4 r9 T# T1 ^9 M+ S- \1 l1 F* [% j% t, U9 G2 D7 V; b  h1 J( F
        printk(KERN_INFO "LED unregister!\n");: W5 y. c+ }7 N
}
& k' B5 |1 P* I- V+ _: C5 ~6 n/ Z2 l5 B9 v$ D& @& g
module_init(led_platform_init);" I  K/ ~/ q$ Q  d$ i) N
module_exit(led_platform_exit);& d* c4 L7 i" H0 U% K1 U
8 ]0 C, ?, ]) _
MODULE_DESCRIPTION("Led platform driver");
6 o' B  V: s8 _1 z& Q# p/ DMODULE_AUTHOR("Tronlong");
; S- \  \1 h9 ]: O$ e8 ]3 m( T( sMODULE_LICENSE("GPL");/ [( ?6 ^% O4 L5 T4 G8 f8 l. _8 W

' i* I# M& g' t. H- ^; }( A) k9 U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-16 16:26 , Processed in 0.047454 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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