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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。& g* q* Z; k$ @! n5 Z  K
#include <linux/init.h>
+ Z+ V- M  ^2 I# H1 h#include <linux/module.h>; W+ w- q: L3 U+ {! D5 |9 K* E
#include <linux/kernel.h>. ~/ ], `0 ~. v- U6 x% s, U
#include <linux/types.h>
2 G1 Z* K) ?* [0 m1 R#include <linux/gpio.h>8 `  [9 b  V: q; ]$ C
#include <linux/leds.h>' ]. |2 H7 ]; x: G7 F
#include <linux/platform_device.h>3 G' c$ w$ a% n1 g% p4 |

& w) `9 W* ^# j0 j8 g#include <asm/mach-types.h>
" \( X6 E9 O3 X: a' q3 S#include <asm/mach/arch.h>
  _4 h9 H- x$ l4 J7 X0 F1 G#include <mach/da8xx.h>
1 D' L6 o. n# l3 z' i#include <mach/mux.h>
& Z9 O5 h$ e  s8 [3 S+ J& ~% E- V( v5 T  L1 z$ `) H# y$ z
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
: d+ w. E# p: S; \9 z% [  R3 Y$ v, B#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 e0 C2 p0 d) p
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)! g0 u6 K4 ?  {, Y4 m
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)1 z% X0 {' v8 [$ p' k' |; P( X
6 W" i4 I7 ^- L3 }) ?1 R
/* assign the tl som board LED-GPIOs*/
- f: l* H8 c, P7 [# M# x+ lstatic const short da850_evm_tl_user_led_pins[] = {
8 I5 f; H4 F4 ~        /* These pins are definition at <mach/mux.h> file */
; i# O* Y9 l9 d# \        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,# U4 A- [* I" I5 C+ U( j
        -1
& @: A1 t) x, j! H) N% I};! t0 q7 r4 ?6 r7 i$ W+ ?8 }, Q
8 B8 }# ~- Y& v% |  h! o9 h. P  E
static struct gpio_led da850_evm_tl_leds[] = {$ h+ w8 m' d6 [
        {) y- O& O/ X  K$ I: G* E
                .active_low = 0,) z" P2 ?' v, Q2 ~/ l
                .gpio = DA850_USER_LED0,
" u% N  Z: c; K9 B$ ?: p7 u                .name = "user_led0",
0 r, \/ \. m- ]                .default_trigger = "default-on",2 c4 q) I0 O! u0 E3 q2 ^
        },: d2 ~: z6 `7 U& x2 g
        {, h+ h# `' [$ |& [0 j+ I5 X' U
                .active_low = 0,6 O+ i/ Z* ?0 m$ R3 F- g
                .gpio = DA850_USER_LED1,- `: A. o( i3 {9 b
                .name = "user_led1",
4 R! K0 a; X  a                .default_trigger = "default-on",
1 l8 Q- z9 V3 X$ [        },
7 u1 u' G" [' C) p& C" [; @        {
% l. Y, ^6 L! P  ^8 P                .active_low = 0,1 K7 M. d( z+ N+ R& M
                .gpio = DA850_USER_LED2,
# P, C$ Z7 Y- ]' |3 s+ ?; E+ t8 w3 s                .name = "user_led2",
: S& y( S, N: o3 \2 Q# A                .default_trigger = "default-on",; w1 X' u! Z3 R4 ^  C
        },
+ f* B, c( b2 b        {7 V2 {5 p" }1 U7 C0 C: R
                .active_low = 0,  u! |9 K5 ~$ ^3 }) }
                .gpio = DA850_USER_LED3,
( z8 w5 G; y& c                .name = "user_led3",
# j9 _: W3 N' `2 z& E: r- @+ w                .default_trigger = "default-on",& c* Z+ j0 R5 Y' ?3 C
        },% O* d( _& f5 [) z
};: X' w  }) p  a2 U9 H% T) Q2 p

9 F6 U, N6 i5 h1 I. B2 q  X! @+ z: jstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% t1 ^$ N. g% V; |4 \
        .leds = da850_evm_tl_leds,
, g7 E# b1 R% E) q        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
. _* Q& y6 v& ~' [};
$ M: d8 D1 H0 D! |, E- ]! e
/ R$ w: Q6 Z* rstatic void led_dev_release(struct device *dev)
/ t. O9 q. l/ e( U; H' m{
5 [) [4 J! Q# ^};
) r0 r, Y8 z9 L3 Z2 a1 |' y$ {" x) M
static struct platform_device da850_evm_tl_leds_device = {$ x1 H+ ^/ f. X/ f4 x2 n/ G) p
        .name                = "leds-gpio",% g2 S* I, L6 G3 u8 V
        .id                = 1,
* k! g+ q! c3 U1 j        .dev = {4 J( G, {4 v5 m0 \5 Z( B- v
                .platform_data = &da850_evm_tl_leds_pdata,0 S( ^# V7 b$ L0 {4 x* }" c! C
                .release = led_dev_release,2 M5 ]0 I) w1 N/ r7 e) i
        }, I1 F2 D: C- V6 {
};) Q: ~/ j& M7 w: g5 [$ Z
# Y0 G4 t5 ^9 {; O
static int __init led_platform_init(void), X6 D* l/ q2 x! q# p* }, l
{" }3 I! H8 z9 C, h9 C8 F% J  o
        int ret;
; {( X% C$ t* u#if 0' W1 @: T" |) L, ^, g. H( {( W! W6 F" A
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
/ ~  r) k" {, L6 A4 _& i- Z        if (ret)
8 W/ z, F( L$ A# G& @: T                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
0 w( O+ ^& E2 i$ [0 c. w7 U                                "%d\n", ret);
2 O! N+ k! z" {; F#endif
* W1 o* x% t+ V        ret = platform_device_register(&da850_evm_tl_leds_device);5 _* V7 M; [  R, x* X
        if (ret)/ U  ~$ ]7 r& Q: o, G& F: ~
                pr_warning("Could not register som GPIO expander LEDS");
, N% h% [8 S* z/ Y; h        else! D8 w7 k' ]5 u5 D! q/ R5 J
                printk(KERN_INFO "LED register sucessful!\n");
2 O; b1 w: P) q; O7 S4 e* ^- a+ W
        return ret;
. F3 B- B  T( F! z}
" }' o2 p8 |' a5 v2 m0 ^5 H0 K. g0 \+ E. M! |; e
static void __exit led_platform_exit(void)# F; A: G' d* N
{4 @4 ^3 W3 L1 {- N/ o
        platform_device_unregister(&da850_evm_tl_leds_device);
5 n" `. Q# P1 |
& n% D# G( h1 D( b) I' @& H( e# e        printk(KERN_INFO "LED unregister!\n");! i+ A& V' Z8 u/ z4 l% c* V) A
}
1 u' c* {/ u( V. d8 m+ _6 {' h1 a( {1 t/ e) F* y$ P
module_init(led_platform_init);( h/ |$ @3 V* q) }& B( n1 O
module_exit(led_platform_exit);, [/ x! N5 k  t) u
" _; L( ^' |/ p, I
MODULE_DESCRIPTION("Led platform driver");( y2 z# Y: f- _  a% e  h
MODULE_AUTHOR("Tronlong");, @. D: I9 X) _
MODULE_LICENSE("GPL");: q9 H& z$ Y2 @8 E
* ^$ E' c  T) p( U0 K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-7 21:07 , Processed in 0.038731 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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