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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
& k/ k& |9 a' F#include <linux/init.h>
" O! t3 B( ~( E6 E9 D1 g#include <linux/module.h>
2 e" i9 A+ ^0 L3 L& g7 }8 M#include <linux/kernel.h>  {" K9 o5 H5 l/ ?  T# i: I+ g
#include <linux/types.h>9 s6 @: \. Y) Z& X
#include <linux/gpio.h>
. j5 ~9 b! f( d0 G; f#include <linux/leds.h>; R5 a2 M  K% E' ?: _
#include <linux/platform_device.h>
! I7 C0 j6 F6 M: N0 B; D: Y8 `3 F! ~5 v" I5 Q
#include <asm/mach-types.h># y  a2 G" ?+ p5 s8 _8 h) R& N$ C
#include <asm/mach/arch.h>
6 |' U, T, ^1 {5 f4 D#include <mach/da8xx.h>
/ s# d" d1 j" d- y) ]  G( o#include <mach/mux.h>* X0 `2 A7 Y7 S

! K& l- z3 S0 C- E/ k2 }1 s#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
6 N" F7 D# K5 i  |0 C5 p# \' O4 E#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 o- _8 {1 }0 d" @' x$ m6 Y#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
6 X+ M) a8 ]! P#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
, B7 N# ^  p: u  G' C% s# g1 R. ]$ v( Y0 f8 a& H% N
/* assign the tl som board LED-GPIOs*/
" v1 M  E1 F+ |: kstatic const short da850_evm_tl_user_led_pins[] = {/ O* }  k3 y& j! [. J1 c
        /* These pins are definition at <mach/mux.h> file */8 k4 x" k- X7 \% M6 L
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
5 J9 B1 W4 Q$ F        -1
- K$ a& L& O1 G# p};
6 a: a) D. g4 C4 V
: c/ Y) D6 `- Jstatic struct gpio_led da850_evm_tl_leds[] = {; r& @! R1 ^* S
        {0 g9 b' W( g9 |  q) [- D9 N
                .active_low = 0,$ `5 M3 b- c) L6 M' Y4 u
                .gpio = DA850_USER_LED0,* v  }$ \. o. [- f% M, C3 `$ U
                .name = "user_led0",
' F( l, \" i+ m5 [$ e% R/ O                .default_trigger = "default-on",
- G0 N+ b% P1 p  Q8 i. j        },/ s1 F/ k; n1 F( U8 }' I6 ^
        {
; |5 ?7 l1 _% Y# P" w+ S% \- f                .active_low = 0,
' C& t7 Q/ u. \& g* V                .gpio = DA850_USER_LED1,
  P9 m4 z9 n0 b8 F                .name = "user_led1",
/ J2 d  L! Y/ G: D) i                .default_trigger = "default-on",; b/ `- d; C! X. f) N, P
        },; B5 z% Q2 k# L6 `( L5 H8 L% g
        {
+ v$ z3 [# c" E/ I                .active_low = 0,
! v% n" Q/ `3 E2 X                .gpio = DA850_USER_LED2,
3 D* H! m" @) }% K6 j                .name = "user_led2",
8 `1 P# S7 Q. x2 x                .default_trigger = "default-on",
2 K% X6 w; ~4 R! b        },' W' {3 `2 k( Z3 a. C5 Q
        {5 G! [; q, F6 g$ h6 {; i1 `
                .active_low = 0,
0 s+ ^0 a7 r& s0 ~/ T2 z                .gpio = DA850_USER_LED3,
- }- h: v2 ?9 U2 D1 F! Z                .name = "user_led3",. W. U9 v# {: [% n0 u+ X
                .default_trigger = "default-on",
4 u+ r- F, s, w        },2 r  R5 j& ?* D+ Z. `) B
};
' m: p7 |0 r) ^3 W; |# H& y2 [/ X( _8 s$ N- @' O6 K* g
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
7 W/ a6 J* E! U- c3 Y* g- L        .leds = da850_evm_tl_leds,
2 e3 ^- t+ o& L( t% m        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& S4 Y* \& g0 d1 r
};4 n: B) |; s" Z: S/ x

7 u! e+ O) Y" q* X% Astatic void led_dev_release(struct device *dev)0 F! l( p( }4 I, t+ A3 v& P+ }
{
4 j! s. e9 `+ T) N, h2 h, \};
4 j1 t! E3 e1 f- p( o* M7 |, h* B6 P
static struct platform_device da850_evm_tl_leds_device = {
2 P" s# Q5 ^$ _        .name                = "leds-gpio",1 w3 N) ~# _7 l$ A/ Q0 d
        .id                = 1,, S$ b" f1 |9 p( u; Y1 }# S( ], `
        .dev = {; i2 x- i2 ?! u8 j, A! g: x" |( V
                .platform_data = &da850_evm_tl_leds_pdata,) V6 z0 I% I- X* Y9 A
                .release = led_dev_release,
+ A" b9 O' V. {6 q! }        }5 p& @' a7 v" s. o7 e; \
};3 t3 }- `" m7 |/ \* [5 g2 c; }
2 W/ W! D  {; m7 }
static int __init led_platform_init(void)
9 ?' P, O# ^- t5 v& c{9 E+ f' b3 i! o$ F3 L0 j
        int ret;
* @) V3 D  R0 E+ U; o( O6 |5 |' H& x#if 0
/ v* v7 Y* z5 a9 b' |3 Q  O        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( o2 D1 w( Y( A& e. K5 x" y2 ~        if (ret)' v. S9 P8 `6 {) s
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 C) k7 b2 {  z4 f0 D& p1 M
                                "%d\n", ret);
5 p9 j/ ^; c" S1 `- z8 Y#endif) C- Z; o, r/ G: A4 r' M
        ret = platform_device_register(&da850_evm_tl_leds_device);
4 E; G% K5 y, b# q9 }) f" h        if (ret)
' h% B( `1 \7 @( z' r$ s                pr_warning("Could not register som GPIO expander LEDS");4 U7 N/ |% O$ ^9 m, c$ D
        else
& |- c9 a. z. L0 _3 v7 n1 U                printk(KERN_INFO "LED register sucessful!\n");. e+ J2 J3 a" t: O# H6 j- P9 h
% @% ]- z' Q6 T4 s
        return ret;
8 [1 y  a- d* h- A; M8 j+ g}
5 \9 V4 c3 u# u+ B! L9 C; {
% Y# v3 X* c+ I0 k( f- l- g1 `* ystatic void __exit led_platform_exit(void)
2 D* Z/ ]  h% d0 Y$ R* x. J{
8 i  c+ P6 E/ W; d0 f: j        platform_device_unregister(&da850_evm_tl_leds_device);
) e- i+ h2 U* f
5 e9 ?; y5 B- {$ k        printk(KERN_INFO "LED unregister!\n");
, P. Z" }; C) C. b. e* z! b}1 Z1 ]5 Y. u1 ^" r' ~
0 p9 M; r0 F! b. a. y  G
module_init(led_platform_init);
  I: b0 k$ X0 Y2 K/ [" g6 \& f2 `module_exit(led_platform_exit);2 c1 Z8 [% t; }6 C5 }

) M6 Y+ R9 D+ nMODULE_DESCRIPTION("Led platform driver");
2 O$ {% Q; m( F6 G# r& B+ E4 ~- FMODULE_AUTHOR("Tronlong");8 }+ j$ [5 y/ P3 X
MODULE_LICENSE("GPL");: P3 _8 p+ F; s1 @" f

2 B5 D( h' d; D% X- X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-29 13:33 , Processed in 0.039340 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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