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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
  l- z# b: v9 B  @' J% f7 q9 G  w0 _8 C#include <linux/init.h>
% x" t' C0 I: k) e. m#include <linux/module.h>
7 k1 s( G8 S" a: E6 ~#include <linux/kernel.h>
3 e' G6 a2 i& T  {  d5 Z#include <linux/types.h>
% Q  r1 b2 ?7 B& \* t#include <linux/gpio.h>5 ]4 C0 E+ U. k. ?$ z
#include <linux/leds.h>- ~6 y' f5 U" j4 L8 b7 E) |( @
#include <linux/platform_device.h>
) \, G* q. X5 g" S! I3 j  @
- ?2 u* Z* i, a8 I, d7 i#include <asm/mach-types.h>
4 y  a; N: G8 F2 Y* Z! K#include <asm/mach/arch.h>8 L3 ^& ]% p  o6 d6 g- O
#include <mach/da8xx.h>
8 m0 a. w) |' g, X5 ~. y6 N+ y#include <mach/mux.h>. ~8 O$ h. L* t. a; U$ T
7 w; a8 d; P6 R7 _6 y6 m
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, O/ g4 [% f0 s# O" Y#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 y4 ]3 s, N. m' \) ^; U9 ^
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
; U! l+ }5 @' j. P9 ^; {( v- u) u#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ R) z9 E5 d+ z& x+ F' D0 [
' f8 L0 N* d1 c( {6 Q+ g" k) |
/* assign the tl som board LED-GPIOs*/
) f  V+ D% u0 ]3 s3 t; hstatic const short da850_evm_tl_user_led_pins[] = {
% C5 r* [  }4 S+ g( N* W2 P        /* These pins are definition at <mach/mux.h> file */
% O8 e5 z. C1 k; Y        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,! G# H) R' S$ h# N& F: C; I
        -11 F" ], R) ?, V" Z1 V
};
) D' H1 B+ X8 o$ C) j2 f3 C/ I1 z5 ~+ P9 j
static struct gpio_led da850_evm_tl_leds[] = {
. r1 @5 W& Q/ F  p# p  o: y        {5 d" B0 G5 C. L( @+ ?' z; v
                .active_low = 0,
; A- U* g3 c! f% u                .gpio = DA850_USER_LED0,
7 _6 x" h' T4 h$ n. E  o( X                .name = "user_led0",
6 O& T+ X8 l3 Z2 w, S                .default_trigger = "default-on",$ _. \  B, `& L( U! H+ i" l, v
        },
- {6 e' r9 N% M        {
9 x8 {0 U" I. {! L, T0 Z                .active_low = 0,
  x, l9 D/ L7 E$ `( \0 l* \                .gpio = DA850_USER_LED1," l: ^4 D3 w: c: d$ j- _' h3 `* n+ b+ Z
                .name = "user_led1",
5 O' u4 V0 B( R' W                .default_trigger = "default-on",
9 ^1 X" O: T& Y; u% c        },
. l; ?4 W* e! i9 @$ E4 n" Y        {) |* u1 e, Y; u$ D
                .active_low = 0,
5 _1 z4 [# h. d( [! [5 u                .gpio = DA850_USER_LED2,
+ M0 X; k5 m8 H9 O3 h* E! D6 V                .name = "user_led2",
9 C% u2 Z4 p% d. v$ a4 ^" T                .default_trigger = "default-on",4 d, A0 g& E. D% w
        },6 {! X; `$ s/ Q) V
        {4 c7 J$ b8 C3 _9 X  r$ S) x
                .active_low = 0,% o( Q( Z% C, ]5 ]# }
                .gpio = DA850_USER_LED3,
2 ^- K# h, u" a, v* @% f/ h0 [# P                .name = "user_led3",
* Y/ ^* b; ^6 R                .default_trigger = "default-on",% d9 {1 B1 Y$ c; v; R
        },
  v2 u! \, A) m0 V0 @};; e1 z% l, R  Y, |! T

( Q" ?9 Y8 u) v7 T* n$ a, v. y% [static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
' q& o9 Y1 B1 M% S9 c        .leds = da850_evm_tl_leds,
  \: a3 ~3 w4 B        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
' ]9 q0 N' _9 A  Y1 B/ H};$ f) A+ M, C* l0 @: z
# U7 |' @) V7 K7 J5 @
static void led_dev_release(struct device *dev)! D9 }$ g: o& T- Q9 Y, U! `
{8 D9 u; D# E) n1 m$ e6 ~( P% K" `1 J  E6 u
};
6 ^  A  i- [3 k* B, k3 S5 J+ ]7 ?9 O9 x. u" V2 l
static struct platform_device da850_evm_tl_leds_device = {3 e5 O$ t7 g" `/ R( C
        .name                = "leds-gpio",' ~$ K+ l6 [& }5 `9 X. k
        .id                = 1,
$ \, N2 L# g8 S& h9 V        .dev = {0 V! p8 i1 A% v& i" X. J
                .platform_data = &da850_evm_tl_leds_pdata,/ L8 w, R5 g. i7 ]( H4 C; n& b
                .release = led_dev_release,
9 z" n: C2 |3 v6 g) }        }" `, w0 S9 ?( n' I% S9 {" Y: K
};/ s9 w5 h& l- q) E+ o9 O1 y! f

6 u5 F& x2 G4 H6 B- J& k$ [" dstatic int __init led_platform_init(void): j* B- G0 l7 H) e
{0 K- x1 _5 @' b6 Y2 O
        int ret;
, ], q+ t9 [2 Z1 R#if 0
8 F6 |6 s: q( \+ A+ [4 m        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" u( ~& d$ z9 r$ ^6 {
        if (ret)' T: j6 X0 ]' H
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
& B5 R, {0 \" }  ^                                "%d\n", ret);
( q& t. d; \  W7 S; `3 e/ ^#endif
. h5 x/ b! N/ r        ret = platform_device_register(&da850_evm_tl_leds_device);
* ~, y) F; U; [+ b' f' {( s+ Y        if (ret)$ _; x- A# e; g  R
                pr_warning("Could not register som GPIO expander LEDS");
/ m  R5 e4 n! ]3 ^% ^. L        else% a0 K1 L, I' M9 z
                printk(KERN_INFO "LED register sucessful!\n");
/ l# ?4 {) ~1 m/ R; [) o7 k
% P0 L* _0 a. d        return ret;% s$ x0 b0 _" Q, }) G$ q2 q
}
" B2 O* w+ R) A; y& E5 I
8 q9 l/ W6 i; }9 Bstatic void __exit led_platform_exit(void)% T5 |! r# N  Q7 o
{
* k" {( ~8 g8 J  j- [2 [        platform_device_unregister(&da850_evm_tl_leds_device);
) ~- t( Z" i* ?" k  M' t2 q. E: |3 y" \& U
        printk(KERN_INFO "LED unregister!\n");
! r2 M9 C. {8 i2 f; H0 I}* @" d; s" e) Z; ?5 Q% ^

+ T7 f- G* C0 K% M' qmodule_init(led_platform_init);
0 S0 r) V$ V7 H: W( omodule_exit(led_platform_exit);
: }+ \; C1 @9 P$ ~; e; ]; I- D5 ?& {- }' q. Z. l+ g6 p
MODULE_DESCRIPTION("Led platform driver");5 N5 b  g5 U0 p& D' h0 F% q- a
MODULE_AUTHOR("Tronlong");
* U) d1 m! e  L9 [2 G2 x2 jMODULE_LICENSE("GPL");8 r9 \; c3 T4 K) V) ]' b9 Y
+ A* J7 \  `7 M* {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-11 10:03 , Processed in 0.039068 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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