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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
4 _; M/ X* ^# c/ w# F6 k+ w#include <linux/init.h>
) q" w/ R( Z) J/ W5 B" L8 q#include <linux/module.h>
' B% I; n" [6 t* c+ a#include <linux/kernel.h>
7 r- E7 b, b- s#include <linux/types.h>
$ l* ~+ E( E0 R( B  R+ `% N: M8 A. D#include <linux/gpio.h>  A0 Q/ X, C/ x* m
#include <linux/leds.h>- u, G6 Y7 ?( c6 V: C
#include <linux/platform_device.h>! ]3 j1 s# Q0 p& w! j
+ V8 N5 g8 I, S( G* ]0 \
#include <asm/mach-types.h>
& b& g+ U: Z1 j2 M! y1 G, i#include <asm/mach/arch.h>9 ]3 e' R- O* S. o
#include <mach/da8xx.h>
) f  ]# S: g& ^8 Y# }% M/ Q0 c#include <mach/mux.h># P* \0 B/ q8 Z% `- i6 B4 {
6 T* Y( u- A0 e1 y
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0), N' K) }$ r! P* a- C3 I, W7 C# t; D
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)7 [) ?& N9 }+ z
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& [8 o7 H: G' }. _# ~( M#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 A6 Z. u& L! q6 ~% X6 e; u3 [. l# R8 f/ P/ L5 y! b8 V
/* assign the tl som board LED-GPIOs*/
+ w. o7 F* S, c& Hstatic const short da850_evm_tl_user_led_pins[] = {7 f" S7 a3 ?2 N! G) D# s, y7 z
        /* These pins are definition at <mach/mux.h> file */
' I' s8 g/ ^+ w- r        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
( ~9 Q! c- j/ W0 S1 O        -1  `- \! G$ }7 G: n# ^& o
};
. K; z1 h2 U5 [0 I2 C" D7 W( S% @
static struct gpio_led da850_evm_tl_leds[] = {$ y4 _) G1 _! [. `
        {  |- ~+ A- q% `# I' b
                .active_low = 0,2 {# b9 w( i4 G+ }
                .gpio = DA850_USER_LED0,
( f& T; a1 g. {9 z0 A                .name = "user_led0",: \9 s. B/ G) g" P# F. o
                .default_trigger = "default-on",% m! m# E( G0 ?1 r# u
        },
: K9 m: w) a& v/ i: d. s        {
* z9 `1 W+ t) B( j6 d3 ]. ]# L                .active_low = 0,& C* z" _  x0 ^" w/ `
                .gpio = DA850_USER_LED1,9 ]+ i8 H- Z% @! K9 p/ t+ p, `2 ~% ^0 ~
                .name = "user_led1",; _' r1 }. R9 H0 g5 ^2 h% m1 M$ y
                .default_trigger = "default-on",
, p. t6 d4 @: f( `0 s+ \        },
6 l: l' L) i% h; q  G5 x1 E        {2 W  Z% w! E" v% c1 c3 r7 Y( S
                .active_low = 0,
* `/ Q1 Y4 {) {. z1 @3 Q                .gpio = DA850_USER_LED2,% w6 r6 i7 J3 j
                .name = "user_led2",
( A: t6 `4 A  H8 l0 Q" q) @                .default_trigger = "default-on",& H0 n& e7 ~  N
        },
: a& z- t7 d  P, s4 N; e        {
* Z* q# j- b0 j- `' [2 ~6 d6 Z                .active_low = 0," }8 t$ \  G: k9 j
                .gpio = DA850_USER_LED3,& z& V$ V- f) l# y
                .name = "user_led3",; B2 ?; b: K1 d
                .default_trigger = "default-on",7 f5 W7 E  |% i; X1 `4 q
        },
0 o5 j/ O# R* [& `) p' J7 O4 V};( E; |8 b" F& b- G' }3 u

; J# p4 `& [, U( X3 N2 ~! _6 Ostatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {3 \; g- p. [9 H3 @  F' H, M
        .leds = da850_evm_tl_leds,
. K3 {: W! @3 y' H/ G: A        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),# N3 t) Q5 K5 y3 t9 p
};
/ ~  k" E2 g" u) C9 K: }* K0 U4 H7 ^9 @8 @
static void led_dev_release(struct device *dev)
  n5 X8 Q3 r  v! [- Z3 ?1 E{! m" f* v+ k- @; C
};2 n3 |/ \2 |! t# \1 z3 _% Q3 }
% o! M- {4 O9 c8 W
static struct platform_device da850_evm_tl_leds_device = {
' g0 J6 n$ @4 r/ c$ ]0 k+ B        .name                = "leds-gpio",* ]2 l0 B5 B$ h
        .id                = 1,
8 Q$ x0 a. `4 Z+ v6 A        .dev = {
5 X5 c4 p' M2 [2 `# ]                .platform_data = &da850_evm_tl_leds_pdata,
0 K# Q. h' `& n% i                .release = led_dev_release,
1 k5 E+ A2 z; e2 B8 [        }0 k/ x3 A, q" b
};( A1 j6 l! b& b
) y) v1 ?: y$ z% W3 O" {
static int __init led_platform_init(void)
, O9 U2 B9 y9 Z: V  N" s{
& ~- l$ L! c. H        int ret;: a# O7 @# i2 Q" m$ `! l# }$ E
#if 0
- T" U$ d; l" z9 {+ A        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
2 O4 l, _. g' w3 I        if (ret)6 b8 t. X/ W7 ^
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
. o' M, w$ d& D9 Z% Y' r8 x: _                                "%d\n", ret);
1 s8 W+ C0 W) a1 r4 i' e#endif
, X9 N9 B* n1 F2 H9 s" p5 t; t        ret = platform_device_register(&da850_evm_tl_leds_device);% Q0 A' H1 u' J% Y/ U+ p
        if (ret)/ y$ Y! v* Z5 k; O
                pr_warning("Could not register som GPIO expander LEDS");
: }4 l+ G0 t" o# `4 Q9 a        else8 V! q! m; _  M$ F
                printk(KERN_INFO "LED register sucessful!\n");
$ }9 a4 X1 @/ v. ?) c+ A
. x6 q2 P3 D4 ^        return ret;
, N+ u- y2 R' l! L}
- s) h, r8 Q% B$ v" X1 \% g2 b+ x9 J" L1 t! a7 B2 b
static void __exit led_platform_exit(void)( l) j7 G$ z1 W8 E: T- Z0 Y9 o4 B2 H
{
# Z+ g# d1 K6 T, U        platform_device_unregister(&da850_evm_tl_leds_device);
  A( t$ s9 ]) O( f3 g0 F7 U' K# f# M0 p# m
        printk(KERN_INFO "LED unregister!\n");
+ x8 \  c6 G8 R0 B  s( B8 X}
# q1 [0 T( {* U. V" D" W2 G8 D7 m9 J& n5 a/ h' H+ _/ X' C
module_init(led_platform_init);( t, A7 J8 A5 g# A6 B. e
module_exit(led_platform_exit);
6 t# `  t9 |' ^0 j' z7 M4 o% {6 `4 n
MODULE_DESCRIPTION("Led platform driver");( }" \5 M: O: k2 Q- g
MODULE_AUTHOR("Tronlong");8 K' o: B/ K# f
MODULE_LICENSE("GPL");
/ \# v) i4 z8 O; O& n/ H2 M. k9 U2 }0 b0 G% e7 `* n  Q' G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-2 16:57 , Processed in 0.038126 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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