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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 Z8 @5 y7 F, H$ _2 c#include <linux/init.h>. ^, W# Z# E  M4 |0 G, y- Z/ `; `
#include <linux/module.h>
4 y( m) ^) g8 g. S#include <linux/kernel.h>( K6 ?3 W9 K) |, q9 W3 R
#include <linux/types.h>2 H! I  \9 L8 H0 G6 B
#include <linux/gpio.h>
% `+ ?/ B7 J/ X/ w' f#include <linux/leds.h>
. n  C% [) B6 z#include <linux/platform_device.h>
5 \7 [* _" y: U7 v  ^! ?
" w3 |/ V, r: Q; K* |, p# e#include <asm/mach-types.h>
/ k1 D7 j( A* p#include <asm/mach/arch.h>) P/ J0 o2 T% c4 ~& C
#include <mach/da8xx.h>
! H, K; w; U7 ^5 o; B#include <mach/mux.h>! y7 {: n3 ^( _2 M/ R1 \7 {
* l% v) E0 J: S2 ?
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
# V+ I1 Y% P4 x#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, R- F( X0 c* u- M, W% ~& K#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 K- f2 b# P/ z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): b- \) Y+ s* Q
1 x* s7 v( }* @  k0 M- A
/* assign the tl som board LED-GPIOs*/) ]1 t0 t( `, k* m
static const short da850_evm_tl_user_led_pins[] = {. |( J6 |* ~2 y% Y: u
        /* These pins are definition at <mach/mux.h> file */
3 p" a, h8 n3 Z2 L; k        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
; Q/ g5 }0 C1 n. S" `) h& {4 ?        -1
, D: v( w  A3 ]& G};, M# a% [) @6 i( f0 ~4 b$ g

  ~, w0 P% t3 K3 w* e' o" i$ H, istatic struct gpio_led da850_evm_tl_leds[] = {# o" D2 q% d/ A% R7 }) K2 {, c/ |
        {
7 Y: \6 l  A4 i6 B! V2 V  u                .active_low = 0,
3 @5 I* e& N. e3 b( y9 P9 y                .gpio = DA850_USER_LED0,
4 W9 a: b+ G" j! ?* H+ N5 T- w                .name = "user_led0",5 m9 T! u7 [9 V" C) `; T$ _- Q
                .default_trigger = "default-on",2 V# @: N/ {! \1 Y* m- v! K
        },
( j2 t1 v; ]  z* G# v2 W* m: e4 l        {9 I$ |6 W, g3 \4 e( P1 `+ K
                .active_low = 0,. I3 Z- e& s6 q
                .gpio = DA850_USER_LED1,
9 O. I0 f$ p" W& P. s, ?                .name = "user_led1",7 z; H! B$ H5 e/ K* n
                .default_trigger = "default-on",2 [) ~3 r9 e* H' [- x
        },5 `& K/ {5 y: \' h
        {( Z% ^5 `- D# z& o
                .active_low = 0,5 r0 C  x! s/ R% i
                .gpio = DA850_USER_LED2,
" A# \$ n9 O" C4 ]1 T9 m7 }2 `: h                .name = "user_led2",
9 }2 X0 r+ D" x: z$ n& k: c                .default_trigger = "default-on",5 M9 h( N- U! W; r5 Z9 }
        },1 D& i/ [1 Q  F1 Z0 y
        {
! \; L7 A1 q2 {& R/ |+ Z                .active_low = 0,
; ~2 W' r4 d+ l- \9 J                .gpio = DA850_USER_LED3,
- h0 Q6 Y3 K0 l2 d                .name = "user_led3",
, o, d( X3 I2 ^& p                .default_trigger = "default-on",: {9 M2 B& P5 X5 U
        },
) O" @# ]5 I9 `4 G* a& i};* o1 T$ D* l! B5 s8 m- j2 y
; Q$ P% `  ]8 [1 L$ A
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
( B$ W1 n4 ]$ `. m1 h        .leds = da850_evm_tl_leds,
( b' x7 S, q9 g        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
4 ]& [* Q( h/ k; J& B' C, A};! P2 T5 Y9 |1 e* N+ p0 G
* ]( ?! ?9 b/ j0 E5 t" D
static void led_dev_release(struct device *dev)& z! P7 E3 H& O# ]" c
{! P0 n4 L- D$ t* d: s+ R
};
: D+ s4 M6 I7 p- P8 B
, n# ~7 `7 j/ [8 M2 H! w& @5 I; estatic struct platform_device da850_evm_tl_leds_device = {
3 w, M2 j2 h) z        .name                = "leds-gpio",2 \( D$ X- v6 i# j6 U5 z: _
        .id                = 1,7 S+ L5 W( V/ f5 k
        .dev = {
7 k0 `* U  h9 Z! e% i" B                .platform_data = &da850_evm_tl_leds_pdata,
4 B3 H' @  N$ ]0 v9 H- X! O+ r  I/ D. t                .release = led_dev_release,6 p2 `' y$ J) a% s
        }# {9 {8 I! m7 c/ ~, }0 e4 M
};
: H+ K" m/ E" m! ?, V
1 @5 ?$ a& v. F1 U# L; Y) [static int __init led_platform_init(void)8 Q/ l+ h  v; h; o5 {
{
1 d8 e" A- S- c' r, b  u+ f        int ret;$ Z/ I( t8 Y" p
#if 08 t" r' {0 |7 Y: u
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
2 j. H* z+ l" W3 |2 I# _" ?        if (ret)
) X/ P6 I; K; m" @: _8 H                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  F) ~' {1 I2 j
                                "%d\n", ret);
, {' K1 t3 M  a#endif
; ]! a. f  C2 a3 O5 `1 a        ret = platform_device_register(&da850_evm_tl_leds_device);# v' f% v& ^: Y9 Q! o! s
        if (ret)+ s0 a" V2 Y5 E7 ?9 L! T
                pr_warning("Could not register som GPIO expander LEDS");
# v4 p, P% O7 }# R0 d" F# Z        else
3 \0 F; t( m+ d                printk(KERN_INFO "LED register sucessful!\n");1 Q- a" m( L' T

7 {9 J- h; N2 A' @        return ret;' }- b( z) R8 u8 S+ C
}! l- @0 ~+ t0 o, x( t
8 e$ Y) m! S- c2 L4 n' F5 ~) U
static void __exit led_platform_exit(void)7 q+ ]/ y$ @# n. ~0 Q5 C. P9 I
{
, Z$ N; y6 w7 }0 m! p8 I        platform_device_unregister(&da850_evm_tl_leds_device);& M6 ]& r2 v$ }$ @+ p6 d
8 Z$ H/ H7 G& X) g; Q0 n
        printk(KERN_INFO "LED unregister!\n");0 H) t6 g4 T5 y2 ^3 h
}& c" G2 m7 v, A3 \6 n. J5 D
. O- K2 m: S. S8 s+ P: [0 B
module_init(led_platform_init);
% t" r0 Z8 w* O1 dmodule_exit(led_platform_exit);
4 l$ S6 M: u3 `& F& x7 N- ^) X1 \) a
MODULE_DESCRIPTION("Led platform driver");
6 h  \$ E7 r, x  H% }3 aMODULE_AUTHOR("Tronlong");9 J5 ^$ x- Z8 c
MODULE_LICENSE("GPL");& F# p- E' t# @# l

! U9 Y4 i0 ?* s- ?0 B8 Y& Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-14 06:01 , Processed in 0.037229 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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