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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ J5 {* O& O3 \0 j) F( c1 F#include <linux/init.h>0 `7 h- F$ f( ~
#include <linux/module.h>' d* z9 D! F2 r6 j( U
#include <linux/kernel.h>
/ @" T0 M2 C; I3 `/ O! X#include <linux/types.h>7 [8 A9 ^+ }( P: [0 `
#include <linux/gpio.h>
1 f  L% I& c) h8 f" c#include <linux/leds.h>
, C1 O- z: G8 n4 @' k* }: a#include <linux/platform_device.h>
9 C4 [, z) S2 W+ o0 p2 V5 |
) T7 u1 _! j1 v* E#include <asm/mach-types.h>
5 X" B- s4 S) a4 O/ m& P- I#include <asm/mach/arch.h>
8 {2 V. Y" q- ?; h#include <mach/da8xx.h>
1 ]$ L0 ~( E9 m0 c; |#include <mach/mux.h>
2 @, u& ?. ]" C& }, d' V$ L/ G6 b; S+ }; A
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* c* h& Y( I" b: f
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
0 n& t$ B5 O6 {" v, o#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
  K( Y/ a" r% V' S#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
* z' k2 H* h+ R2 r) b7 X
8 J3 [, z2 a( s/* assign the tl som board LED-GPIOs*/. A8 P; C; T6 V8 [6 t# c6 O5 \% ?, a
static const short da850_evm_tl_user_led_pins[] = {
, v' W1 R3 t4 B: P7 ^1 U        /* These pins are definition at <mach/mux.h> file */
5 y$ e, Q1 ^  N# e6 L  a# X& z3 ]        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
1 r7 O% h" P$ x$ s; @+ ^        -1, i0 f* U3 T4 _6 ~5 o
};
* Y0 `( g2 w3 g0 N) {1 p# k5 s
6 w; T8 L% U, n% ]static struct gpio_led da850_evm_tl_leds[] = {3 g6 o9 ~( q! i5 Z
        {
7 w# Y: u( T, f5 {3 t$ w                .active_low = 0,- |: @" q3 ]( r2 r6 K. s
                .gpio = DA850_USER_LED0,6 f( i* A( M* a4 `$ l
                .name = "user_led0",
5 R; c; X4 y: w1 V$ J( v- G                .default_trigger = "default-on",( o, Z# G1 _& V3 r* H+ L; q5 ~
        },8 q  @& L3 c6 k8 l- L- j
        {: x" M/ X+ J  I0 J4 D( ^
                .active_low = 0,
% m2 C, C  N% S0 `- D& o                .gpio = DA850_USER_LED1,
9 r3 |$ ^6 w: ~                .name = "user_led1",$ A2 y. S) ?, g' l- M
                .default_trigger = "default-on",
- O) J) [! z% ^: v3 y4 p+ R& t        },; g1 {, p# O  l4 k- k# g, x
        {
8 p' A* y; N5 ?1 R6 i6 k                .active_low = 0,
9 P, V2 G! O( h/ j5 c6 z$ X/ l                .gpio = DA850_USER_LED2,
; Z, I+ o8 q% i( C5 J                .name = "user_led2",) n! U* B  B9 N- a0 ^- V0 T
                .default_trigger = "default-on",; X3 C6 G. Q0 a
        },
6 R5 I9 d2 _2 B        {
( Y% f6 D1 Z1 i& s' t- C0 ?                .active_low = 0,6 c- _. p$ A5 \% K- f
                .gpio = DA850_USER_LED3,: j2 a/ m, n9 I' ^: \9 n1 W5 |: |
                .name = "user_led3",9 B* P: F8 z& T  e
                .default_trigger = "default-on",# ]$ [2 H( h- R" j
        },
3 p8 G5 S5 g& T8 A2 u# r- Q};
( t2 {0 X+ V( O, p
% r% V$ Q% Y7 b+ z/ hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ a# t( M2 z( |6 X3 Z# y
        .leds = da850_evm_tl_leds,
* r( d" e% s3 q5 X, |        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, l+ ~4 t8 M- y! Q4 s+ o: y  K) Y};
8 T! Y7 i4 A* |( e: G2 n$ d3 C  @2 h
static void led_dev_release(struct device *dev)3 l- n+ q  p0 A4 A$ v2 _' N; b0 d
{
3 I& f( r+ F1 o3 W};  ^' R8 `# y8 p! O

: y# D9 t* m, M4 H7 a' jstatic struct platform_device da850_evm_tl_leds_device = {! Z0 d& {: U. Y* C. P8 P
        .name                = "leds-gpio",: D! g* @7 v" `. n  I
        .id                = 1,
: f( {5 O& s0 A+ p        .dev = {6 P/ t+ z; {* u9 O9 V9 H
                .platform_data = &da850_evm_tl_leds_pdata," e9 e; N2 p8 Y. {8 D7 F
                .release = led_dev_release,- C5 r, Z, p3 `2 ]- S
        }3 j, S" k8 ~& l) X
};
& A' A$ {; A  _& N5 Z7 J/ l& f9 \6 y7 f  v* y, O( P
static int __init led_platform_init(void). F/ H3 ~& Y3 t& w9 S2 J/ ^
{; S5 y. U$ l1 c. @
        int ret;8 H# p0 W- |1 i! r) p1 O
#if 00 I4 ]2 z- G; z# `$ o2 i4 [
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);+ N0 A9 T  }( e, K! J6 o
        if (ret)
0 S) b( p9 g0 Z% A2 L                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"! S# K7 E0 M) d0 O  n1 q! y
                                "%d\n", ret);
9 \. u  K& W& _* M#endif& T! ~9 V( h# C3 v% v
        ret = platform_device_register(&da850_evm_tl_leds_device);
! M; K# c9 T+ N& M# q" b6 n        if (ret)- |9 C8 e0 q' B! I, U# o: h
                pr_warning("Could not register som GPIO expander LEDS");
$ ^7 ~" N5 \  }+ J  e; }5 u% w( Z        else
; b5 T  A) O9 t- X, I( ^) u) A; P! H                printk(KERN_INFO "LED register sucessful!\n");/ s! @% A- [4 o: V' |. q0 F

0 C% o: p# P$ j- F2 E7 _8 @        return ret;. F9 }- ^9 N. q$ C: p1 L* |
}
# S% `# b( R4 b! C" W" O5 k  r2 x7 R' c; A& G
static void __exit led_platform_exit(void)7 q1 b/ X. S. z6 F' A! o
{
& b" X9 w. i: c' i8 C        platform_device_unregister(&da850_evm_tl_leds_device);
8 w, D. P# X3 K6 r: J3 j! ?
0 z; v( {; ^' I% h+ n2 \        printk(KERN_INFO "LED unregister!\n");
+ d1 |' [' k. y! H7 Y" B, }; B5 S) q}
* i5 W, B, v) v7 m& ]. b4 }6 B* A, F+ t
module_init(led_platform_init);
) B; I3 `( Q5 W* Mmodule_exit(led_platform_exit);4 J2 [. ?# V1 w; x2 b3 f
9 x1 \* U; n: f0 d" r
MODULE_DESCRIPTION("Led platform driver");2 v9 \. O  R. Y$ p: K  O2 w( B
MODULE_AUTHOR("Tronlong");
6 s) D+ Q5 P9 B; k2 PMODULE_LICENSE("GPL");) n# Y0 }! N& y0 D( ~" I

: f2 l3 S5 v: S1 w, R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-15 10:10 , Processed in 0.037503 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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