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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
% Q$ O' }1 x' Z# \3 r  P#include <linux/init.h>
+ l# v, x8 |5 L% ]4 S6 c" K3 G#include <linux/module.h># W  t  i4 h& ^$ F
#include <linux/kernel.h>
8 W. T' W0 |3 `+ D: v$ _8 F/ ?#include <linux/types.h>
3 `! I9 k% d6 E! X' a9 f( U#include <linux/gpio.h>/ I6 k' u( ^7 I6 @/ D2 M  u
#include <linux/leds.h>' Q8 Z/ B! Q* B$ I
#include <linux/platform_device.h>
( u; M8 G6 W3 }- y
( e! I, P) o% O4 j8 D& h#include <asm/mach-types.h>2 }- u, D0 g1 _  d, {
#include <asm/mach/arch.h>
2 B( i6 F! G& D* N#include <mach/da8xx.h># S* p% s) i/ G8 M* K- g
#include <mach/mux.h>
0 Q6 B$ i: h  R9 S+ ~% p& t& G& ^8 s% Y( v& g
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
: O# c: [; R# c3 F$ R6 p: a+ J8 O#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
4 f4 T) V/ a& g/ [7 m- B' x#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 P' O) r* E9 n3 w. }# q6 r#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)% A0 G7 U  f4 ?' x  `! B+ \
% q$ I8 O% B: K
/* assign the tl som board LED-GPIOs*/( R/ c: Z8 A6 e0 y
static const short da850_evm_tl_user_led_pins[] = {& ]4 u5 U. c- Q0 Z8 V0 Z: g
        /* These pins are definition at <mach/mux.h> file */7 f! O2 A! W! U  f" u( a
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,5 N! i( _( F$ d: ]6 T6 A: Y* ~
        -12 T5 {; f( u8 t- i
};' |4 j/ m/ X6 E7 h" `' w0 r
" W! Z7 O  U1 ?: Z
static struct gpio_led da850_evm_tl_leds[] = {
8 Z. D; d( ?+ `' |        {
! |, ~4 n6 v2 A/ G9 ?3 @                .active_low = 0,- Z5 I" _$ v  X
                .gpio = DA850_USER_LED0,
9 H7 f/ }/ i/ u5 M  M                .name = "user_led0",: X8 O/ Z' ?5 c4 ]# T4 ]" g
                .default_trigger = "default-on",
: P- w9 \" e. Z0 N3 I$ {4 _2 f        },
, c. m5 ?! e# T! r        {8 J, C' ]% I0 w1 f0 @# W+ ?# O
                .active_low = 0,+ q7 O% Y0 y! O9 r+ R2 D! I
                .gpio = DA850_USER_LED1,$ K! {/ g$ R) X) y
                .name = "user_led1",( `1 d6 u5 B- E. \5 F$ Q
                .default_trigger = "default-on",. X8 @, o( D# G; Q1 A5 u  Q
        },% T1 R8 Q( h- `% l( F6 s& j+ T/ b
        {3 b, F' h5 H3 {& D
                .active_low = 0,
2 i7 M( x7 j6 e2 g( X3 |                .gpio = DA850_USER_LED2,7 P/ N- J/ D, R) Z& Q2 q
                .name = "user_led2",0 ]1 |; G% J" v$ `
                .default_trigger = "default-on",. o4 i+ j8 K0 ?; Q
        }," ?5 @% V& F2 C
        {
8 @/ ?9 ?- K+ E                .active_low = 0,! D4 K% D* g2 _1 Q5 w" a
                .gpio = DA850_USER_LED3,6 P$ r. v# C, b! d
                .name = "user_led3",
3 z6 A9 K' f8 y/ r; i  D3 [5 _0 v                .default_trigger = "default-on",, k+ a5 M1 \' T4 h% W4 q! H
        },4 D0 Y' N' l. i% d
};9 c# b" K3 A7 l1 g! P7 R
  x) k. ]' }& ]% I2 Y" K: T" W
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {& ]1 R7 b* K6 D0 _; V% N) c
        .leds = da850_evm_tl_leds,
2 j4 H$ `. P" V# m: U        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
/ R2 s1 Z/ n) D3 _9 z- r};4 k: {  Q1 c4 n+ s- m2 q
! n8 h7 U& _5 _4 [
static void led_dev_release(struct device *dev)
0 m) b4 Z& \5 b$ p4 Q5 \* R{! _% H) N- Y" J
};" [( ^4 ~8 P3 _

" `; Q, }1 H1 `" v: rstatic struct platform_device da850_evm_tl_leds_device = {  K' c/ Q5 ^- ~+ A; z5 f: Q% _
        .name                = "leds-gpio",3 p8 q: O; D- }, x$ m2 M0 e1 X5 i8 B
        .id                = 1,. ]( L7 L  s1 L6 _3 N# w) Q
        .dev = {
  `: H) Q: |, |9 n0 z                .platform_data = &da850_evm_tl_leds_pdata,
: K0 o$ u& |: t3 j# y                .release = led_dev_release,# c, C" d5 q1 ]' U4 I5 k, ?7 z0 Y4 Y
        }
# P. s+ B$ X- d# d. u& E! }};6 E$ o9 x" h! T5 E- Y, B

. y+ U4 ]4 S  |; z# }- mstatic int __init led_platform_init(void)
1 h. b  }# i: c{
1 p& ^1 b/ w8 e1 B. P+ v; k        int ret;
3 @1 P) C7 ]8 T: b% Q) N#if 0
1 b4 ]6 @: S. Y: Q! ]  f        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 [1 P7 y0 k6 R) F8 y3 h        if (ret)
8 ^+ I0 u2 r' n8 \' X4 `3 _6 g* O+ `                pr_warning("da850_evm_tl_leds_init : User LED mux failed :": U/ ]" K6 L& m3 V. B/ }% S9 G
                                "%d\n", ret);
& ~' q2 Y% E4 Q+ s2 k& I#endif9 q9 j3 l6 `% _$ h6 W
        ret = platform_device_register(&da850_evm_tl_leds_device);9 \& z2 N. j/ K& a2 i
        if (ret)0 k" P! J6 g9 h3 V) M8 G
                pr_warning("Could not register som GPIO expander LEDS");
' M4 E/ V6 k: m9 k" s        else
$ J5 v3 T" _* H8 ~" J' j                printk(KERN_INFO "LED register sucessful!\n");
) p( C! \- k( ^: K+ R4 P5 M
+ \8 O# L* d' c! O# g        return ret;
0 E+ F6 n7 l4 y5 [/ V}
* ^; z( S; q$ K1 i4 I  B; t3 G
" T6 H3 `% w/ `& Y: U( Z  G, estatic void __exit led_platform_exit(void)
3 d# r6 H9 {& c; P) @{8 F4 ~% l* I& @3 c9 y, I
        platform_device_unregister(&da850_evm_tl_leds_device);
% c& v. e9 k1 c$ t% F; B0 P
# e# m8 u% G. R6 z+ U; o: I, _        printk(KERN_INFO "LED unregister!\n");8 ~# I; I) f0 ^, J
}
. a: |( V+ r& I4 o5 g
' H8 ?" r6 B0 Nmodule_init(led_platform_init);
1 @$ {3 J# z$ Q8 J% D9 e8 umodule_exit(led_platform_exit);
7 e$ t/ x+ r, S$ z/ C- P9 n1 H$ }$ f0 q7 F* p' a/ A; ^
MODULE_DESCRIPTION("Led platform driver");8 j5 O( V5 S# o( @3 |+ f
MODULE_AUTHOR("Tronlong");
0 H6 ~: ?1 I0 l  l2 dMODULE_LICENSE("GPL");
; M& }1 x2 F0 L2 P* i1 T! }8 K" j5 }1 l- I
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-15 08:48 , Processed in 0.036875 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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