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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
) ]! ]3 a- q4 Q#include <linux/init.h>
* L. ]( m3 g- {' n#include <linux/module.h>, L2 ^* ~2 Q& X
#include <linux/kernel.h>
; }3 u) R7 w% y9 ?3 O#include <linux/types.h>5 r3 M  Q, i5 \0 a: L4 w9 W1 I
#include <linux/gpio.h>
* C: r3 s" b7 ?4 Y+ N% o' v#include <linux/leds.h>
( p" ?' D+ g) ]* _#include <linux/platform_device.h>1 \2 x, n3 g5 O$ B! d8 Y# J

. R$ t4 T, d- r  [#include <asm/mach-types.h>
- `2 c# Y- e+ y4 q#include <asm/mach/arch.h>
- v$ t1 C3 \+ V! N" i/ \  G# b#include <mach/da8xx.h>: J/ @' X6 G- a& s- X# g
#include <mach/mux.h>
  G; {8 J1 ~. K$ l# F5 `" I  e! n2 b6 O  E. l5 v
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
* Z- s- [" j- A4 O6 u#define DA850_USER_LED1        GPIO_TO_PIN(0, 5): ]" u2 Z' Q  P6 {; m# v" P
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( V6 k) A! I1 g
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)& ]* I7 J) c1 j0 l& D; |

7 j7 Y7 ^; U% o6 u* y5 Z$ v9 ^" L/* assign the tl som board LED-GPIOs*/
# S' d% b& |1 j, [5 W( ~, C7 Dstatic const short da850_evm_tl_user_led_pins[] = {
/ C9 P0 ~. w9 {5 U6 w        /* These pins are definition at <mach/mux.h> file */
  k' c* q: z! o        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 j$ a, @: u7 m! A* Y. O8 z4 v5 \# h        -1* @3 d; y1 a, Z; ?1 f& g
};/ w, I+ ^3 T. d  ?
4 S: q3 S1 N8 z+ |% ^
static struct gpio_led da850_evm_tl_leds[] = {3 N5 x5 i; g+ i# ]
        {4 _! O! e# k5 N+ w; `
                .active_low = 0,
0 l. O- S/ y7 G3 Q. I& F. h                .gpio = DA850_USER_LED0,2 a- l$ {( O1 E+ J1 _3 n
                .name = "user_led0",- G% g# e9 j+ X* h$ l) V& X( G
                .default_trigger = "default-on",& a+ N: _6 z) @" C# B$ q
        },( W9 U6 b2 z& m6 g. e( t# F
        {
8 v; }. [0 t% Q  H0 M7 q                .active_low = 0,% P0 k6 |# W, |( ]  R
                .gpio = DA850_USER_LED1,8 T/ H1 D# g- I
                .name = "user_led1",: x4 d. v( r+ b3 q$ F# c
                .default_trigger = "default-on",. K+ c- E3 g$ ?
        },0 p! E$ ?9 k2 O
        {- T" {+ I1 _9 E$ @
                .active_low = 0,) d  B# c$ V* ]0 f0 E
                .gpio = DA850_USER_LED2,7 a( S% t4 d! ~6 N' s( ?
                .name = "user_led2",
# F# a2 \1 \0 l) y) b/ G                .default_trigger = "default-on",  U% r! W& h: V9 [0 e
        },- b! E! H. T6 v1 k" D+ _
        {
; \& U' N$ p/ Q' U/ A4 y                .active_low = 0,) {/ k* J/ a" y
                .gpio = DA850_USER_LED3,
8 ]( _' z& x% q6 S2 n4 Q) k                .name = "user_led3",# T# J3 P% l/ d% B1 F8 h
                .default_trigger = "default-on",/ w& [; l+ M1 j* X0 R0 Y
        },% ?; M. b$ E$ f5 f* p8 d
};
! f" ~' K# `+ Y' M5 A: @9 a. V' A  k" P8 {4 N
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! a% k! Y3 t! e  K        .leds = da850_evm_tl_leds,
+ N; G1 W7 ?+ \- L# a  \% x        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
; j& O- L9 o7 j$ c* v1 u( q};7 v8 M% H* x( V/ \4 B" \+ d

- u$ x* g8 X/ x1 jstatic void led_dev_release(struct device *dev)
# C. @6 r, Q& M" n2 P1 R{! s8 g3 E: H2 d
};
/ p2 P: f5 Y% e: b# \: @
! R4 _# R# W, |- U  m" Q, Gstatic struct platform_device da850_evm_tl_leds_device = {* Y4 h* q  s- r' {) A
        .name                = "leds-gpio",
7 T# O4 z4 e# \5 m/ s- {        .id                = 1,2 f6 |: M* Y) \* o
        .dev = {
8 U0 I4 l1 m( D$ x                .platform_data = &da850_evm_tl_leds_pdata,
$ z+ l7 Q+ C  T6 Z" Y8 V$ Z                .release = led_dev_release,
7 T/ a: D2 k5 ]7 v" \+ r* }        }* E9 @- c0 E" O7 a5 }$ j* t
};% B0 B6 k. L( V9 y. A  a6 x

( _8 F6 @1 u9 N5 k: h( ?static int __init led_platform_init(void)" `* c- J5 n1 M4 P' t  I
{
* p5 r4 x! D9 \! Z6 W( G        int ret;
) A5 H3 y' S3 }) v& z; X9 `5 e#if 0
. @9 _3 h5 G( Q; d( [& z5 {        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);$ J3 V9 m7 g- j+ @& {; d. S
        if (ret)
0 f3 L+ u6 C$ q' q0 n2 A                pr_warning("da850_evm_tl_leds_init : User LED mux failed :", A) [* C& U9 O! l' B4 p8 A
                                "%d\n", ret);
9 z/ k4 ?7 Z  g6 u#endif
+ d. O1 M) R/ Q; H: r        ret = platform_device_register(&da850_evm_tl_leds_device);9 s" u7 A$ @7 Y  J
        if (ret), c. g2 W# k& T9 Q
                pr_warning("Could not register som GPIO expander LEDS");
* [8 y" f/ r1 K- ?5 o/ R& h        else
/ G% m1 r: e; x0 v/ \4 d/ E" B                printk(KERN_INFO "LED register sucessful!\n");- P+ G! K7 S; m4 u% ~7 e! {) m& b
+ ]8 J% M+ ^# X! d2 b; J# q
        return ret;
6 Y2 y) P0 \: @1 c) A6 g}+ a" J+ m) p  `# Y$ D) F+ X1 S

" m  r0 S# g! I; Rstatic void __exit led_platform_exit(void)' [" H0 J3 J9 e2 I
{
4 ?8 ]! z" u/ z! m+ F; A& z$ m        platform_device_unregister(&da850_evm_tl_leds_device);& Z' @( D/ |7 _3 l% g

3 {6 l- E. ^+ V- o" N0 v7 w# k        printk(KERN_INFO "LED unregister!\n");
, M9 a' i$ j7 ?}: [4 G* e# @4 t9 I( d+ {

8 \. d! l8 `( omodule_init(led_platform_init);! o' }4 E& q0 R8 v& u
module_exit(led_platform_exit);
- v9 T  O- v1 V; `' c8 i$ `, d' p2 w6 ~, b5 c
MODULE_DESCRIPTION("Led platform driver");7 c* T. h, p5 T1 b7 c
MODULE_AUTHOR("Tronlong");5 O: E, M) r! ^  f  |1 z# G
MODULE_LICENSE("GPL");6 O6 g% W8 P% I& R
. W3 p! U1 [9 U/ r2 [2 g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-20 09:07 , Processed in 0.037850 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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