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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. `( T7 U% [1 B* B+ w#include <linux/init.h>
  f. I- l" v4 C# N" e" {+ A#include <linux/module.h>2 Y3 R6 d5 i& g
#include <linux/kernel.h>
' ~% `" U0 V( Z$ b#include <linux/types.h>
3 K3 @6 H2 N4 z! C#include <linux/gpio.h>
0 |% W* Y/ r% J" n#include <linux/leds.h>; u8 V4 X/ w% \9 W3 L
#include <linux/platform_device.h>
) ~! [6 [; r0 K8 E$ U1 Y- a2 B5 s8 J& y5 {, ]8 r! @% b
#include <asm/mach-types.h>: h- \* r5 o# e; j& }, z
#include <asm/mach/arch.h>/ E7 n$ w# J% m7 D4 B' S* H
#include <mach/da8xx.h>% [9 k/ i- a8 _% F6 X
#include <mach/mux.h>" I1 C9 V0 Y, Q  V$ I, e9 A4 n
) s( x: _$ {6 D: Q' |( ?; G* v
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)" x$ t/ D/ m- d2 z- f
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
6 M" V1 d2 h+ w& ?#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 O$ P* h. E0 T. r
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2). [0 b: r' d* L! k7 U

, G0 q# h, v+ I  _2 \8 l9 l; |/* assign the tl som board LED-GPIOs*/1 a/ g- l' e" k3 Y
static const short da850_evm_tl_user_led_pins[] = {
6 X( t: U/ }0 h/ Y! |        /* These pins are definition at <mach/mux.h> file */
( A+ Y2 L( W0 F: ]        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,7 J/ d; [" A) D+ F& [; J
        -1
5 i& I& r+ i' ?/ k0 D! C+ ?};9 G9 k, M" S. I. T* }" Y. q) T
* e0 Y. b' ]+ r' \4 k# D4 u
static struct gpio_led da850_evm_tl_leds[] = {. x0 r( d* y9 o7 F3 Y+ i* ]: m
        {
/ W2 X8 w; [& y% J                .active_low = 0,! Y- U4 g8 \' H1 l! v% f
                .gpio = DA850_USER_LED0,
, S' A9 Y+ v, Z/ X5 i( n                .name = "user_led0",
2 X, m9 Y1 i; F0 Z                .default_trigger = "default-on",  H2 i* r/ v& w9 [
        },6 p* U) V1 E. ]0 N* x( ]$ H: Z# B+ B
        {
) }6 S. `2 C) I3 {" @/ \# r                .active_low = 0,
$ h0 R* p# h) e" v& S& o                .gpio = DA850_USER_LED1,
1 H, g6 e' F5 N9 N/ ]8 @' G" |" C2 Y                .name = "user_led1",9 w0 F2 R' x  M0 F) Q
                .default_trigger = "default-on",
" t' B2 |# @, u7 Y5 `  z        },/ C% W; H- Q( n" L; @2 N, ^
        {2 N* v; o# v* H: V5 Y: p6 L& p8 ?
                .active_low = 0,/ b3 I* Z6 ?) m! T7 s( r8 k
                .gpio = DA850_USER_LED2,2 Z; U* K- u  [5 o, O, a7 L( m. R
                .name = "user_led2",% s4 Z5 w6 A2 N+ _, Z9 h5 e
                .default_trigger = "default-on",
2 T) B* J/ x) N8 u) K, n$ T        },3 ?2 r7 t9 B" S' K8 e. a
        {
( [! K( Q( T# y  U+ E8 Y                .active_low = 0,- \8 _9 G& W! a6 \7 M
                .gpio = DA850_USER_LED3,
" {4 f3 w+ A# Z  E1 l" [1 ]                .name = "user_led3",
0 b, f/ m' `4 u( x2 P" t                .default_trigger = "default-on",% n4 c. c/ N7 G1 A$ X
        },
9 d5 B9 x3 Q) H4 Y* e};
5 s+ m; _& @( }* H5 A1 P
+ ?! |+ Y6 T& h5 V7 A7 T; C9 rstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {8 p. {$ i* M, Z+ x) R3 k' M* `6 h/ \
        .leds = da850_evm_tl_leds,& K5 b9 p% W( d2 ?. h8 X, A
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
; ?1 `' x, x3 x6 F: V};
. L1 d9 s8 H1 ?0 J% k0 E$ ^7 j! r' f- O" w+ e' i5 S( l
static void led_dev_release(struct device *dev)1 a. A0 C" D5 k* S
{
1 }% Z) q6 r$ E8 s};
' E' l" x' l) u% I$ H2 P
4 d6 p' {+ _2 a! J' Ustatic struct platform_device da850_evm_tl_leds_device = {
+ |+ V/ F. [1 i        .name                = "leds-gpio",
0 P1 X3 k% n! |2 x        .id                = 1,
3 w& u- v) Z- A        .dev = {
+ w& j& V& n& {8 O- y+ D* F  p                .platform_data = &da850_evm_tl_leds_pdata,
5 S& A' f  ?9 _, L5 z                .release = led_dev_release,
. \+ a5 e! c8 @; _' i2 X4 v) J        }1 ^( f( ~# X' I  |  p* F
};) D+ ~! `0 E+ }& v  w
4 f/ y9 {) T8 B1 H  z( i
static int __init led_platform_init(void)3 r6 ?1 i% a  C4 ?. B' ^& A! _
{8 ]+ i8 p. z2 c4 g3 i
        int ret;
3 V$ v0 ?% u3 k4 ^$ @8 Z#if 0+ l; @8 U" ?- i! a" S: |1 P8 q! A
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 ^2 x9 V- }* B2 l        if (ret)
3 a& V. P; j0 J3 b; w- A9 [6 w                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
" @: K. t9 _" d                                "%d\n", ret);
& k' h8 p* I# d- x#endif
$ S4 J# [& Z: k        ret = platform_device_register(&da850_evm_tl_leds_device);7 {# T- |) y$ u
        if (ret)) H0 z" u# s- g! e
                pr_warning("Could not register som GPIO expander LEDS");
# V$ n! R. l7 R        else
" c- o3 D2 P, o. L) L% R                printk(KERN_INFO "LED register sucessful!\n");* u% }9 l9 h0 Y; f8 r( m6 n

0 u7 ~: r* K% J+ X4 q0 E        return ret;
6 q1 q% @5 s  W: T; B4 P: ?}
  p/ s' d( V  U% Z! q  z8 L. e2 ~: z
static void __exit led_platform_exit(void)+ k( X5 J* e, C. `# z9 K+ [
{
" H/ a  p$ Z  L$ I) u        platform_device_unregister(&da850_evm_tl_leds_device);
9 d0 @8 [8 v& y, i6 M) B2 v2 p+ F) O8 s, H) `# I
        printk(KERN_INFO "LED unregister!\n");5 u& e8 G" C; j/ x
}
  p' i* E/ {% Q/ l$ w, ^( l4 Q; ^$ K  |
module_init(led_platform_init);- ?7 j' R( l, Q" o/ ]
module_exit(led_platform_exit);; X0 r" \; C4 D
# @/ j: L. }' u3 E6 w
MODULE_DESCRIPTION("Led platform driver");8 p7 P  O9 Z! c8 N; E& r/ \
MODULE_AUTHOR("Tronlong");9 ^/ h: `: [3 b) Z2 W$ d* K! _
MODULE_LICENSE("GPL");
1 q% y* V- n: E7 `
, }. G/ b! P8 _: h. |( Y$ Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-12 22:27 , Processed in 0.040025 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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