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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
# X) X' Z) H$ A1 d$ r+ s) M/ G% G#include <linux/init.h>
$ N- G" H* S- m4 y#include <linux/module.h>" s! z- U: u+ q/ t! d; B9 Y9 E
#include <linux/kernel.h>
. N$ T5 }. c2 U) m+ ~, o  L) T#include <linux/types.h>
2 M4 `% [5 A, g8 ?& B* H# S- _#include <linux/gpio.h>1 u" e5 W8 ]5 {8 _
#include <linux/leds.h>
& B5 Y7 O7 ~7 R8 J#include <linux/platform_device.h>% C) `. P6 n; I7 Z/ R" J/ N

; W: q" C1 n" p* }$ B#include <asm/mach-types.h># d; |( b; v. Z& k* P
#include <asm/mach/arch.h>
2 \" R8 H7 x& z, s$ E4 U7 A#include <mach/da8xx.h>
7 N" k" [4 A2 f1 Z" P% k#include <mach/mux.h>
4 [$ \4 k- Z0 Q' u& f: ^
9 W$ O4 V+ u8 t( n" I2 [8 @#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
/ T$ O! Q5 f. i' g3 u7 z0 }$ S#define DA850_USER_LED1        GPIO_TO_PIN(0, 5): O. n- @+ c* e
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
3 u. H3 L, T) m+ {: @3 {#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
8 y$ `3 M  }* c: q" u3 n8 u( ^1 L: T- p( t  q
/* assign the tl som board LED-GPIOs*/
6 W+ c3 Z8 J4 h* T5 R5 s( Tstatic const short da850_evm_tl_user_led_pins[] = {
$ r8 A% D% G' D3 T& g        /* These pins are definition at <mach/mux.h> file */
; W4 o+ T- [$ r        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,7 d, D- u. e' f; @# `% m, ?  g
        -1$ _' E4 i, ]. @/ k2 `
};: b0 O1 F8 D3 ~: k$ b$ R# ^+ h7 Y
9 r* f" ?) O) }6 w; g
static struct gpio_led da850_evm_tl_leds[] = {
8 {& |0 @4 v: a0 l        {
, p+ {  n# v( }  J; M+ l7 J                .active_low = 0,; [, G7 z' c4 C! y5 l5 J6 d
                .gpio = DA850_USER_LED0,: l; Y4 P! L7 x; a
                .name = "user_led0",
; m+ i6 \4 ~/ M  M% z  {                .default_trigger = "default-on",
) [8 q- T* w9 F        },
6 V6 @7 o. @- N$ a1 W        {
, z* A1 r( V5 z, h. ]- f* d                .active_low = 0,
* W. @; Z5 K4 j& @8 J( Q6 ^3 a1 E                .gpio = DA850_USER_LED1,9 S1 N. l! t5 }9 h
                .name = "user_led1",
0 Z& Y* H/ P. |# h+ w% ^( E                .default_trigger = "default-on",1 R. l4 }8 p" r2 w
        },
+ @5 r4 }9 @$ }9 T- Y. C+ f        {
% G9 k( ~1 v; [$ y0 }4 {4 O                .active_low = 0,, r. d; M& `% D1 x. P" t
                .gpio = DA850_USER_LED2," O; K, B) G2 N6 K' q5 Z# [& x- T
                .name = "user_led2",. C  P, w- C) F2 n* P8 K* V, r" u
                .default_trigger = "default-on",6 \. d, L, ~; G# q! j
        },
' H& A* H( ?9 X" U        {% I" p; Z, F9 Z, X/ O
                .active_low = 0,
) {& m' x' G& n9 C* b  A; l" a- E# Y0 ?                .gpio = DA850_USER_LED3,
# g6 j+ t# P* i+ a9 U4 u. l% y                .name = "user_led3",
1 j  s6 |  y, G. ~                .default_trigger = "default-on"," T& i8 _( p# ]! p4 j( ^9 m7 q. W
        },, k: _8 j. Z/ U, s0 C" K  X% e2 K% }' x
};
; Z& f; `) w$ D2 E) h' [( j: |9 G" }# T2 F8 I
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {$ X: Z5 w3 a/ {8 }5 p
        .leds = da850_evm_tl_leds,# `1 u: e8 t2 ~7 H
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),/ ?5 R0 j! k5 z+ ], N
};
) U/ C" d: r- V$ D' n
; ^: W- c! @  j1 n% Istatic void led_dev_release(struct device *dev)
. k$ Z" T9 C8 g* A6 g6 }# ?{
2 ?3 u7 Y5 p+ U: d& k/ |; m};
8 Y  V" Y; T, c5 j9 f) D, R# m2 a
static struct platform_device da850_evm_tl_leds_device = {  B  S% G1 c# K! U4 p- B
        .name                = "leds-gpio",* |& b5 r6 a4 s8 y. i- e
        .id                = 1,7 p/ c- u1 C8 z) ]5 y9 ^
        .dev = {
) }6 N# Q$ M0 I7 Y$ D                .platform_data = &da850_evm_tl_leds_pdata,' j& w, P3 h5 @4 `- J; P
                .release = led_dev_release,3 e# S! ]1 D4 j8 y. \$ M
        }
: ^6 N6 Y8 g2 p0 m  n};
2 \; l, X  G5 c' G0 s6 a
) ?* Z8 _4 ?$ e! d2 M; Astatic int __init led_platform_init(void)
' [* e+ t) L* L9 c{
$ ]4 c- y5 p2 \2 \        int ret;, H$ M8 w& d( k$ n% ^
#if 0
7 i# x, ~) G! H' z5 [) t! h0 |        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
# v4 F; ~9 X6 X# G/ T/ \        if (ret)3 D) b9 I- \) K! n
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# W$ [! z8 e( p4 T. c7 B' c                                "%d\n", ret);8 c- b' F6 w1 X8 C
#endif" U2 b# X9 Q! `9 A; \  m6 B8 C
        ret = platform_device_register(&da850_evm_tl_leds_device);
  J8 {. r3 w: \* T0 T2 c        if (ret)- N; p, G% a4 p# S" K
                pr_warning("Could not register som GPIO expander LEDS");
4 y, A1 q) u/ |/ c        else
, F' \5 u+ D; t% h, |' [" i% Q                printk(KERN_INFO "LED register sucessful!\n");
$ k0 c( E5 a! y; o: p
0 x1 e/ w. m* D3 ^4 t: W2 h5 D        return ret;$ V/ ~0 G3 H8 ]1 b3 @8 x
}0 `% |9 _% |) q- H
2 V2 Z3 I/ ~  I% ?+ A
static void __exit led_platform_exit(void)( h2 H) |( v( u& s9 I7 E- a
{. e0 u& _) U" L" }
        platform_device_unregister(&da850_evm_tl_leds_device);
: @. R& ]" ?) g
, q/ u8 Q9 W2 j& Q5 N- n. i/ V        printk(KERN_INFO "LED unregister!\n");
# E/ Q: C9 L! w$ [) a}3 I% W2 H$ R- J( o1 M" m7 F5 p
8 g7 y6 ?/ F! A7 E: \- r
module_init(led_platform_init);
# [( C. J4 w7 B, G+ b% k' x3 Kmodule_exit(led_platform_exit);1 e) v& |! j7 U
& L7 d5 Y6 F! w3 R% X1 [
MODULE_DESCRIPTION("Led platform driver");
8 ?* K6 E2 {  y- ~6 gMODULE_AUTHOR("Tronlong");( P% H0 n# A1 J# }
MODULE_LICENSE("GPL");
3 m1 M& ~0 I$ ^  `( k/ Z: h- ]! `6 m" l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-2 04:14 , Processed in 0.043025 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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