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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
& @; n  R- U( Y9 P#include <linux/init.h>+ F' f1 ~! b0 j9 m" k4 M& L
#include <linux/module.h>9 h/ f" r8 n+ l
#include <linux/kernel.h>
! |$ {$ ~" d3 w6 T# A" b" J  j. c#include <linux/types.h>
" [9 ~. y7 K# g' ]#include <linux/gpio.h>
( L7 I3 P+ @9 P: ]. @& t#include <linux/leds.h>
; i2 I( T, b, |3 }3 E2 h( Q#include <linux/platform_device.h>6 W7 J' |: {$ m; \/ u7 L
& ^4 k" d1 W1 c* ?# y4 i- v' c3 {; k
#include <asm/mach-types.h>
7 A; H5 p3 a/ A9 y. c4 [! @#include <asm/mach/arch.h>
: @9 S5 J; e4 Z) r( {; x) F* w#include <mach/da8xx.h>
$ q# ~( d0 F. p) T7 T) H#include <mach/mux.h>
1 ~- U2 _& s$ Q
$ `% e+ b7 Q' k% T  T#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)6 j# S5 M2 A7 d* ^, }' e
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, q, X( D0 ]' q" d* q( B+ J#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
; {7 i+ I. Q- [2 E! E! s9 M& W#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
+ s$ ^# t% A; i1 y: G9 q# b: A4 I4 l+ L3 q0 F
/* assign the tl som board LED-GPIOs*/
) g2 R8 T2 L% w, B4 A- hstatic const short da850_evm_tl_user_led_pins[] = {
, t- p/ |# ^3 d2 m        /* These pins are definition at <mach/mux.h> file */1 a2 W: `5 u& Z" q' h8 F2 V2 j
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,0 H& @) h+ [- O
        -1! L- U- ]$ X7 ~( S
};# J  ^* |! m0 |" }

* a& D4 V7 p' Y% [static struct gpio_led da850_evm_tl_leds[] = {) b- a4 ~1 u3 u# r
        {2 @0 ~8 C( _- x* r$ H% h
                .active_low = 0,
5 A% h! O* U  k& q" ]$ [                .gpio = DA850_USER_LED0,
% X7 i5 u' }3 e" V, H: T! J7 i, Y                .name = "user_led0",
1 h$ f2 P$ M: o' a( X. o# x) V                .default_trigger = "default-on",( A% g! p/ p" x1 T$ G0 M( p) M2 n2 d( O
        },
1 t3 r. X) V7 S+ ^% ~8 }& b        {2 S* {8 g# d* i) |
                .active_low = 0,
8 E2 X( j0 L0 g$ v8 i                .gpio = DA850_USER_LED1,
0 s/ r& V2 K2 m, K& |0 n# r& e                .name = "user_led1",
! b, g- F# }1 D* U: m                .default_trigger = "default-on",
; V1 T& ?" R7 O        },7 C3 A2 a, ~3 \0 s% J) m# y
        {- _* u! d$ ]. c, u1 M% D7 J
                .active_low = 0,  A3 P! H& R0 |3 i/ X3 y
                .gpio = DA850_USER_LED2,1 L; p# y- A8 [
                .name = "user_led2",
4 ?" P- A& Y5 y  ?, \: [* C- a                .default_trigger = "default-on",
7 {3 Z! T' T9 o4 Z+ ]        },! E9 h1 f) t8 P& k' Z
        {
. V/ ~! c; C* _  |' a                .active_low = 0,
6 Q# w/ L8 o( G% u# H                .gpio = DA850_USER_LED3,4 i$ S' A* U% i
                .name = "user_led3",3 H; |$ [/ L& N! d, s1 A2 C
                .default_trigger = "default-on",  j0 z: H6 x+ B
        },
, F: h4 v! r) H" y1 d0 M4 W};
+ g* j3 P5 p2 R- y+ U
9 ?8 F- K, i9 y7 E$ U3 \; ]static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
" z7 F- f9 v0 |: [        .leds = da850_evm_tl_leds,: r9 Y! z! k4 f4 f
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 z7 f$ _/ h5 S
};$ D* ?# ?4 ~( ~) h9 P) w
- n  g9 m0 ]5 }7 t; I" ?7 ^% a
static void led_dev_release(struct device *dev)
# V6 F( a  a( q1 ]8 ^{" U* @. T9 k- P$ @6 z+ J
};
' |+ X0 y$ u) o% P
( K( f, ?+ e, u* p- E0 Bstatic struct platform_device da850_evm_tl_leds_device = {
2 r, x$ M, T/ x( R        .name                = "leds-gpio",
: w. ~) r3 i5 _) w8 c        .id                = 1,
# \, q1 R" R) C5 B: j5 z, ~        .dev = {/ |% H# m% w2 m3 t( r; W& @5 K3 X
                .platform_data = &da850_evm_tl_leds_pdata,
% l) ~0 h! _( f& L                .release = led_dev_release,8 A, y* w2 E. [9 _/ V& x$ @
        }' n: q) R9 q+ l  X* W
};& \0 ?5 F3 F/ r2 A
/ ?, O# H* i( S8 [2 s
static int __init led_platform_init(void)" N0 b. X1 T5 V; o* x
{7 z  w& J) l  \' m7 _2 c+ \6 b
        int ret;
) m5 p6 X% F/ X! r  [. _#if 07 M  k- f! o7 l7 \/ u) i% ]2 a
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 i5 t4 e- p) R
        if (ret)
$ ]$ E) F7 |) n4 u/ S3 f3 ]                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
: ], j0 `2 P8 J' L$ Q                                "%d\n", ret);9 U4 q/ J2 D/ a' e1 s) |
#endif
7 X/ p) ?) m7 E, ^! B- L        ret = platform_device_register(&da850_evm_tl_leds_device);/ @! f$ l& r6 g3 ^
        if (ret)5 I% K2 f  a" _% O5 _) h& d
                pr_warning("Could not register som GPIO expander LEDS");
6 E+ ^9 }* u0 d/ z        else+ q. T: q1 R* v8 V5 C
                printk(KERN_INFO "LED register sucessful!\n");
: T/ ~3 A: h& S1 o2 x! I3 H1 J" D' o3 {5 y4 `* O
        return ret;- r( [! f/ s0 g, Z5 _
}' w% E) B6 A! v/ Y3 y
2 C8 O. R/ a' c1 g
static void __exit led_platform_exit(void)# Z- V% [, l# ~# D- h
{& K$ h% q0 T: }3 V% g: H
        platform_device_unregister(&da850_evm_tl_leds_device);
% \( f# C. L1 \% `, I4 a# C  @0 Q9 J4 w0 e
        printk(KERN_INFO "LED unregister!\n");. _# f. r+ a- [
}
; C- E, `' z0 i* R
. U- [- ~+ o0 C4 @" U0 I- S# k- y( ~$ {module_init(led_platform_init);0 W1 o7 ]+ Z' w/ K  w
module_exit(led_platform_exit);
; r' \! a% ], ?! H2 p0 i
6 `5 s2 B: y: c  Q: `5 HMODULE_DESCRIPTION("Led platform driver");
' T: I  |  c4 W9 C: N5 @MODULE_AUTHOR("Tronlong");2 O" C: j' a# F' p  ^; _8 z
MODULE_LICENSE("GPL");0 r: ~3 m1 g$ f' D! F# Q

0 ]% _; X: a* D0 h6 M3 j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-26 10:01 , Processed in 0.036280 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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