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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
2 C0 J* Y, d( N0 v( ^) p#include <linux/init.h>( |0 d0 N! D% I% q$ Y% Y! g! K! z
#include <linux/module.h>8 |' ~& s, D2 k
#include <linux/kernel.h>% w( l0 \0 u: T
#include <linux/types.h>1 ^! b1 x6 s& o6 V9 }" n. H* d$ s
#include <linux/gpio.h>4 J6 j7 t) D+ X1 ]/ u1 p
#include <linux/leds.h>  _9 d" A: I3 T; P
#include <linux/platform_device.h>
& u! {3 @0 n4 Y6 e& U  [% ^! Z9 K" N8 l4 t% V, g. Z" F
#include <asm/mach-types.h># n/ `$ ^3 J8 I
#include <asm/mach/arch.h>
, @/ q, w: [0 `& v" i+ }#include <mach/da8xx.h>
! `. L4 Z" a. Z/ v# I4 W$ O/ x#include <mach/mux.h>
: b  N  K7 G% a; m/ B* _; {: c2 o  L% M, M$ M2 ?) u
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)+ A8 m& Z& l, N2 d$ R9 k
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: f& u- g) x6 v  G#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- x7 L0 z; {" N7 y
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)3 V% `! R- S6 H$ y- L
$ [& A5 g( J' ]
/* assign the tl som board LED-GPIOs*/0 h/ R7 x9 D3 Q. g8 s
static const short da850_evm_tl_user_led_pins[] = {
6 u8 g7 f: o$ H6 @9 O9 b        /* These pins are definition at <mach/mux.h> file */
, }" ~% V: R5 C# @2 ^        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,, S8 g5 o7 ~1 r0 t" g/ O4 V( E
        -1
9 `' o, H# U( H( b};4 H8 R3 X5 U* E/ k7 E

) `/ D/ p& \# Astatic struct gpio_led da850_evm_tl_leds[] = {
) x, h4 P+ X9 g; |3 p3 `        {# V4 J% K+ {, `/ |
                .active_low = 0,) y: A, S8 [" U
                .gpio = DA850_USER_LED0,
# B$ h$ _5 C- `5 r                .name = "user_led0",
- U' K6 c6 p* A" o- j% _8 F5 I                .default_trigger = "default-on",
' }7 _) O" m8 X+ S  C        },9 F2 i9 v5 U) C2 u/ h
        {! r* q7 P: f, t$ Z0 \) F& ?
                .active_low = 0,+ E0 p1 Z5 o  X* L
                .gpio = DA850_USER_LED1,* r5 _( g: z) K* k" |1 j9 z  e
                .name = "user_led1",
" k0 t' L' W) d6 d; y, a                .default_trigger = "default-on",
$ v" w8 X( i( Q: t8 T+ z8 A        },
- W# t6 n' `" B  [5 ~! g        {
5 ^' z" \  j; \5 u: L3 Z$ }                .active_low = 0,2 ]2 g, F% }0 m3 i) o2 [. m' p; Z
                .gpio = DA850_USER_LED2,, ^% N/ W( n7 K! Q4 D( d* a
                .name = "user_led2",8 n- I0 L# i  U/ m8 j
                .default_trigger = "default-on",
& u- B: E% ]2 N        },4 i1 k0 m$ v: L* m3 E
        {3 T# r" E. e' V, a$ }& t
                .active_low = 0,# j- x1 q; O# P( w. c
                .gpio = DA850_USER_LED3,+ w5 S! i( _2 G* T
                .name = "user_led3",
4 H! g' l. j3 K$ [2 |: Y% Q, r. o                .default_trigger = "default-on",
0 a( r+ c5 i1 K& q        },+ s3 I# ^/ L+ c0 R0 c! N2 o
};
6 p, k6 y+ m6 i0 g, K8 ~7 J9 W, v# a4 G
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 w0 B& \. s0 D, d3 o
        .leds = da850_evm_tl_leds,3 {- M6 Y2 [3 T! ?, t" l
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),3 i6 r; N2 v* @* o" K/ ?7 n
};
2 Q3 G$ ~' c  }! f# L2 |
3 a) `& w  |* a6 g" h& gstatic void led_dev_release(struct device *dev)8 z* ~4 f9 k4 u6 D
{
- _9 m9 Q5 }; K( F& G' }};" M$ }4 X6 z% \

3 k% k9 N  o7 `3 d. }9 Cstatic struct platform_device da850_evm_tl_leds_device = {2 y$ B/ j/ b; Y9 p7 n  k8 r
        .name                = "leds-gpio",
+ J6 X- Y3 [. v4 v! s7 t- J( o/ h3 m) T# C        .id                = 1,
: I! V5 ~, G, O& n6 G: l        .dev = {) A0 q$ R3 @7 r- i0 C" S4 C9 [% D# d
                .platform_data = &da850_evm_tl_leds_pdata,
% i0 y& O9 \$ P7 v                .release = led_dev_release,. _8 F/ I  Q  o7 J
        }+ x( ~* x, A; R$ Z
};' X0 _% B* r/ ~( z3 w2 J. J$ f  V
" L; n: N) E7 G' t9 e
static int __init led_platform_init(void)
' _8 H( N4 @7 k; x) m" v( u% Y{; ?% s& P5 u0 t
        int ret;
) A3 `- N0 y" r7 G5 X: f0 A+ `& e#if 0; Q# k4 w" D7 z1 e9 W& V" V
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
/ `* _' _( Z+ H$ a        if (ret)4 _2 R4 d4 P: }  ?! k
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
0 \/ e9 o: E$ ~( F# W. I3 x" t                                "%d\n", ret);
6 j$ C( \+ Q) m7 L: e8 n#endif2 t3 [1 @6 G9 M( [, {9 s
        ret = platform_device_register(&da850_evm_tl_leds_device);
" }8 l+ l7 i* I        if (ret)
' j2 m1 F  S$ ~0 L* `, H                pr_warning("Could not register som GPIO expander LEDS");
* c2 n0 Q2 B+ r; L) b' a        else
3 |$ P) E! p+ M4 y, {                printk(KERN_INFO "LED register sucessful!\n");- `! b0 }' T# e. E1 G% c, x
: G& ^6 G! F" z, H2 \
        return ret;
% z5 b8 U6 u, K4 i, e: M: s}
$ a! C9 M- ~' Y) g6 \  N
3 j# v. e- G) K' D! A: Y% g0 Gstatic void __exit led_platform_exit(void)
* F* j7 J/ _! e% Q7 w{1 d( N; s% B, S7 G9 |# |+ ^! d
        platform_device_unregister(&da850_evm_tl_leds_device);% [" o7 o8 b/ m6 ]. V

" a2 z1 s- C- _# h' @1 V- F        printk(KERN_INFO "LED unregister!\n");0 q1 J8 M. ~0 J4 r4 u# L
}
) G9 d* W, B9 i, a6 L+ g! q/ E9 `+ N; U% Q5 x% d2 |% Y
module_init(led_platform_init);, D' T% r  f/ Y; x5 @) v
module_exit(led_platform_exit);
9 C+ j8 Q9 k3 }
# ]; L& r/ {- s* v& UMODULE_DESCRIPTION("Led platform driver");7 y2 B+ y$ x4 a
MODULE_AUTHOR("Tronlong");
" w4 Q  L& r3 i# x7 v) j! bMODULE_LICENSE("GPL");
  ]# X& F; [$ k/ H5 y; z7 h
& ~* I2 q# k4 L4 B& u' j; Q8 Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-6 06:16 , Processed in 0.037777 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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