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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。4 K0 A2 G' T# y* M' |
#include <linux/init.h>
/ D* F" y; \, S' K; y3 N# g#include <linux/module.h>( d% M" D' U9 n
#include <linux/kernel.h>
# K9 J9 \( I- L#include <linux/types.h>; @8 h; \( V& U% B* O( R
#include <linux/gpio.h>
) G) }5 @/ }( \: l# t#include <linux/leds.h>
: ^- @! L6 n" i$ v) @0 d* |: t$ _#include <linux/platform_device.h>
" V- Y( x! |' D! M, M% r2 S) a6 s, R4 u& k/ i- O, @- J
#include <asm/mach-types.h>
: @5 z6 r2 z6 `. \, f* q* ]#include <asm/mach/arch.h>. p. N# A! l$ ^0 w5 h
#include <mach/da8xx.h>1 G% q1 ~% I' c& \3 l, q
#include <mach/mux.h>, p) s5 k  d6 r" W% {9 C. I$ \

  O8 x; y4 h; j#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) f/ {8 l7 f  S( T9 ?$ Q#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)  K% G; ], g- X5 {
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! `6 H7 }4 y/ l* W3 K' A( @; m* z#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
" `0 F9 e. i# ?: |
0 u, B% g! M0 b6 ~$ |9 W& L/* assign the tl som board LED-GPIOs*/
0 P# F7 H2 @4 g3 H1 v  w( r7 `1 f" pstatic const short da850_evm_tl_user_led_pins[] = {
6 D2 N2 [- G6 y- l! G+ `        /* These pins are definition at <mach/mux.h> file */
" n) f2 f6 i0 `        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,: g9 q% p- [! X. x7 x
        -1
- u5 q2 a, j8 |3 {. V4 ?2 ]};
0 }- S1 v, {# z0 L7 a- n
( g: c% C6 G: s; G( w* Cstatic struct gpio_led da850_evm_tl_leds[] = {( I3 Z- `/ E3 X# i* ~
        {9 t, n- w0 S% g& h- }7 a
                .active_low = 0,* X5 a# S* z# @2 x3 y
                .gpio = DA850_USER_LED0,
/ b* p) z& p4 ]+ T4 c                .name = "user_led0",: [. }" I! F; u. M9 `
                .default_trigger = "default-on",/ Q/ j- n+ Y2 @8 g% O
        },
" H0 o% d0 a- S2 S' k. p        {
3 t9 w' c1 n/ F$ \                .active_low = 0,; `6 W, w8 f8 e0 i' G6 \, k8 F- @. J& T
                .gpio = DA850_USER_LED1,
" o+ n2 d# B1 h" [! k  I' k                .name = "user_led1",, R3 C- k0 T& {4 E
                .default_trigger = "default-on",
7 V, d7 N( K  ]3 Y# K- n+ E        },
! }# g$ K( k/ k1 V        {/ d! D/ k; s3 a$ k& \
                .active_low = 0,
# p5 }# N2 y- `/ @& w. h3 n/ P                .gpio = DA850_USER_LED2,9 T# |6 a) w  A* R: J& \7 x
                .name = "user_led2",1 x: |+ j. e: a0 r! Z
                .default_trigger = "default-on",) D( W3 G3 G# ^1 r) u4 Q
        },* q8 B; m& z1 _- O! p
        {; j* w+ j$ F0 x- k
                .active_low = 0,
( S3 M! C7 }$ r% r                .gpio = DA850_USER_LED3,
. i9 I6 c3 n4 J  }' R                .name = "user_led3",
2 S4 E3 j% M0 e                .default_trigger = "default-on",
4 N7 g1 ^' w" U0 t2 t/ q7 j% V        },/ O: |" ^/ `) Y$ p
};
3 E( M0 x  A" m" e$ \# t4 R
0 P' p) e' i9 N' a4 `static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
/ T' ?/ X1 h! B4 a* C/ H        .leds = da850_evm_tl_leds,
& I9 F' i8 W, R: o( v# J' Y0 O" M( ]        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 {3 _' H# y7 p1 u4 |};4 \/ ^* k. t6 J9 N3 I$ u
- t6 v- ~" Z+ w9 Q4 R% k, ~
static void led_dev_release(struct device *dev)
3 b, N" b9 O" `# e7 ]{2 |. W# j" h& d- r$ d
};
4 {  o! ~, g! T" }1 m% X$ m0 F+ b/ K( |/ C
static struct platform_device da850_evm_tl_leds_device = {" [7 [. {8 [  t7 l6 a
        .name                = "leds-gpio",
! W" r8 v& Y  e6 J: }# [* H  }0 i        .id                = 1,
* T% t  @& [( B. S  }& g        .dev = {5 z7 C) p: k* _5 k( q1 B" I; n7 O7 `3 T
                .platform_data = &da850_evm_tl_leds_pdata,
( R. U9 w; C( O9 L, e/ i8 d# B                .release = led_dev_release,
2 _6 m6 E2 W1 p* Q* h        }
: M1 m2 `7 X: X1 x- a, f7 N};
/ L. T9 T* C5 p' i! q, c8 y! f9 G$ p9 e5 |- x/ r7 U, `
static int __init led_platform_init(void)
. X/ k, f: \9 g6 @0 m{& g7 H7 Y, c6 W2 K- @1 N
        int ret;
  F' E: K/ n+ y' a' @2 E4 S0 c/ Z( i#if 0
1 k- g' X+ H% d/ U        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
0 |8 ^8 o* Q# x; l. {( t; A) l        if (ret)9 N+ H. D, P1 t& g. m# C% N8 E. F
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% u! }9 M3 h/ Q" o                                "%d\n", ret);& K- s9 k. e% A% ?/ `
#endif
0 V, g; W$ r8 ?/ E* i% o% u        ret = platform_device_register(&da850_evm_tl_leds_device);
1 ?5 @0 e* _& D6 ?2 F' }        if (ret). h# `( H9 V# v) h0 Y& D# v6 c
                pr_warning("Could not register som GPIO expander LEDS");
: o  j) Z6 x$ k/ }0 w9 X        else
" C7 M5 J* P! D0 E) I' J9 P! X                printk(KERN_INFO "LED register sucessful!\n");
/ u0 I3 j  `" p! G$ R: O9 m0 d2 s5 @" ?6 t# _" N/ f5 f% t
        return ret;
( F+ Z9 m! f1 c}
, E7 t$ m7 _  Z; p4 v0 u% X8 t: e6 e
" ]/ A: p, S8 N; Jstatic void __exit led_platform_exit(void)
6 p" @' V0 u4 ?: N; G3 L9 z{# _+ T/ e/ G; E7 u; V2 o/ N
        platform_device_unregister(&da850_evm_tl_leds_device);! K% [9 i; s6 S* V) N4 N5 `+ q$ j6 ~4 n
3 y, X0 g# u' D5 \; ^7 Y- q. b! b
        printk(KERN_INFO "LED unregister!\n");' X1 W# T% S# h# V5 J; k
}
$ }6 @* }2 D# Y0 q+ l" D. q
0 ?( D) E0 W. X6 H  M  E2 G! Umodule_init(led_platform_init);
# x! Q3 ~8 Q" O* n5 kmodule_exit(led_platform_exit);& k$ @# Q' O' W, G

& M9 K8 \" X, t3 {) Y2 O' L/ cMODULE_DESCRIPTION("Led platform driver");5 n1 o2 Q* V, a# {
MODULE_AUTHOR("Tronlong");8 q& V4 H0 L4 t* s  A+ `4 E- f, R# |3 U
MODULE_LICENSE("GPL");
. w  [1 z( X3 z5 F" g
& T! ^. w8 g+ Z: ^$ d" C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-13 17:28 , Processed in 0.040767 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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