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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
* s! v4 C; S$ g8 D' L6 h# N- F#include <linux/init.h>) U0 R6 w  C+ q* i, v5 d) o
#include <linux/module.h>3 D) Y% D  u) _: m  |) ?
#include <linux/kernel.h>
# {. r3 d6 j* V! p1 U; B3 b7 z#include <linux/types.h>
. v5 E! S7 a8 U; m! F* r#include <linux/gpio.h>
7 c( h/ R/ [, o8 Q5 k#include <linux/leds.h>$ S1 q+ G3 ^# c. ~0 E" c0 M" ]  B! U! d
#include <linux/platform_device.h>
6 x4 W* ^; b4 {! ?7 Q$ X
! k1 P% X" V! T: L5 \! _+ \#include <asm/mach-types.h>9 O; l: B# D5 s
#include <asm/mach/arch.h>' Y, P% A& r% p4 n$ C6 G6 `( Y
#include <mach/da8xx.h>. g: V7 k4 d' r0 j5 y2 P- }8 W6 p  G
#include <mach/mux.h>
% t% T2 d( X* p; K
- Z7 h+ X9 q2 }: m) R8 H1 n8 e#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
# L, `  \* `( k: _: W& ]5 ]6 X#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ S3 e! a" C- h6 q' V* f' @5 S7 `5 m#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- L4 V, s" L, h& x- M/ |2 O
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 j$ e- K- _$ ^0 T; ]
# K4 f. x6 [- T: [2 j0 x  z; f6 X/* assign the tl som board LED-GPIOs*/; Y6 P' |5 _0 o+ a9 G: o+ e6 O# K
static const short da850_evm_tl_user_led_pins[] = {+ u" o' W7 R  P5 h0 D$ }+ g
        /* These pins are definition at <mach/mux.h> file */; ]" f1 ]. J' a- {+ u" l
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
; M# Y7 A3 W( x        -1
; a5 b7 E- o5 \" T& A( J; v# [7 Z, i};
" L4 d( |0 V. N+ B/ _- w# l* W4 @1 O* X& ~2 M/ f. t" G) M0 K
static struct gpio_led da850_evm_tl_leds[] = {
& G7 g) X* ^. T, Q        {
  U6 A1 g! \8 C                .active_low = 0,
3 w( I8 m2 \# f' O+ K, |# w3 r                .gpio = DA850_USER_LED0,
( w9 c% C. k& L" {  m, U+ ]( u                .name = "user_led0",/ E; r+ _: S* v: \' e
                .default_trigger = "default-on",' k5 ?9 [6 b5 \: r, Z7 m
        },5 r: v+ O8 q8 n
        {% [! O9 u7 N/ r. Z( [" T' m
                .active_low = 0,. D; f) _1 I! s' k
                .gpio = DA850_USER_LED1,
) C' a9 r1 a$ l6 p0 Y' R1 W: K) z& l                .name = "user_led1",
/ q1 v* N/ H' V; w. I( j% T% J                .default_trigger = "default-on",
8 M& z1 i/ j1 @' o        },% t& R/ _2 w; f7 y6 c
        {/ s! Z% y) r# E' e0 ?+ J
                .active_low = 0,
0 m( Y( I! ~" _. Y                .gpio = DA850_USER_LED2,
9 Q* I  T4 b  T  S" Y                .name = "user_led2",
( s0 X* I: L2 }) g                .default_trigger = "default-on",  S( E  C: a+ L* }/ z) a- Z0 Q
        },0 z6 t9 N( V5 `* H7 K& B
        {
' L+ X  [) w. a) P- w! |! j                .active_low = 0,
# F& h# h8 p* e8 ]) Q/ M                .gpio = DA850_USER_LED3,* Y4 u4 k9 U' I
                .name = "user_led3",
; p( R9 x2 r2 k+ [                .default_trigger = "default-on",$ f" W: }: b4 i* L1 q' {+ Y
        },
2 \, E; b- t2 h$ B- U};: B# G! c7 y# J6 n2 H" z& H3 q) W5 q0 W

0 K# N" s) `$ ^static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
7 w) ?$ X" Z6 r& t% ?& O        .leds = da850_evm_tl_leds,
, C5 \# d% t; q8 ~  L' [; q6 |$ x        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
* o; k3 g# K9 r+ \- o};" [1 V2 j- }% ~; @9 d( b* Q
& c9 D% l; c1 `9 M% Z2 l7 X/ ?8 S
static void led_dev_release(struct device *dev)
1 b- V" Z- U2 h( ]9 G$ L2 e3 A% m{
, a( R1 }1 o% `: d& K* t2 e  J};" R& x; E, U7 x0 N# G0 l
' B! e8 X  ?4 `' n# g7 m* Z6 b0 D# N8 {
static struct platform_device da850_evm_tl_leds_device = {% D4 z" U* l) a
        .name                = "leds-gpio",8 H* ^+ L3 I1 Q  g6 D2 e
        .id                = 1,# V- I% K$ p6 ~' t& D, v3 q6 C- A
        .dev = {2 M* y1 T- e* z4 m7 ^4 z
                .platform_data = &da850_evm_tl_leds_pdata,+ [, b1 \$ A$ K5 n* y' c, H0 b: [
                .release = led_dev_release,+ X/ @% X5 I! r/ g4 t  j5 \! U7 G
        }" T+ g" x+ _) M- U9 w+ z7 E
};# J7 e2 Z4 w& ?8 @/ b7 b; I( P; j3 I3 T
1 C2 u' ?- h2 Y. ~
static int __init led_platform_init(void)/ H& T% D" x! G3 A
{
" H! n0 }* }3 t  K- {        int ret;6 p, L+ g* b0 k/ w
#if 0( N! u# P  r1 w% t6 B& |# R5 H" G- g
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);+ G2 T, ]. l3 I
        if (ret)
; z% o6 d! |) a                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ }, R( J4 S; T* I9 q                                "%d\n", ret);# W# c$ Y, }  ~3 R1 X
#endif: g$ o8 f# W8 |$ E6 C
        ret = platform_device_register(&da850_evm_tl_leds_device);
, n  r+ X  w! d/ t2 g( [        if (ret)
0 N) b8 C# f6 L. i8 p                pr_warning("Could not register som GPIO expander LEDS");+ \3 X0 T: y6 U2 B( Y
        else/ ~% e( R0 Y  K8 d, r
                printk(KERN_INFO "LED register sucessful!\n");
+ C- R! ^3 X& s# o8 g, B
' w- T6 }+ p  H        return ret;
" S  q5 h' d: H0 ]( o}
1 }, y5 W. c! c. N6 r' F2 {
. ^0 l. @8 u( o8 I0 w+ p8 q# G) Nstatic void __exit led_platform_exit(void)
/ P) G& X6 }+ P8 k# D4 k{" l' ~! V2 {3 D+ Z1 w8 b
        platform_device_unregister(&da850_evm_tl_leds_device);
# d) x! U% ]# e! M, }5 D5 B$ v3 O" k" M
        printk(KERN_INFO "LED unregister!\n");- j& ]6 w* |4 b# _
}* F% d# H2 t" `1 X( L

. F. h+ X8 |8 e. ?4 kmodule_init(led_platform_init);
* r4 g+ i4 T5 mmodule_exit(led_platform_exit);
6 Z% p5 W4 k  r
4 n+ v" R7 L. E- mMODULE_DESCRIPTION("Led platform driver");
' n$ s4 \4 |7 {. O: @2 IMODULE_AUTHOR("Tronlong");
8 l$ K8 L0 Y( u. W" S8 c! e  ^MODULE_LICENSE("GPL");6 c& y4 p" L  Y- R6 }
* r; ~& t; L3 t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-13 13:01 , Processed in 0.040007 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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