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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 a' i+ l3 H5 d3 G0 e4 ^3 ]1 v#include <linux/init.h>. |4 [1 w; }' }$ ?
#include <linux/module.h>
/ U0 l0 L9 \5 g: L$ h5 |+ u# Z#include <linux/kernel.h>
4 I9 h6 Z  |! w: ~9 B3 |  }5 ~#include <linux/types.h>, `5 l1 b' |1 [* M* J: H, C5 r
#include <linux/gpio.h>
. ~- b4 _- w; S1 i' ]; q#include <linux/leds.h>5 O- u1 z; }1 o0 Z
#include <linux/platform_device.h>
0 t$ `9 J, y  j9 V# b" I  T
- ?' p) O, e4 {7 @& C- i#include <asm/mach-types.h>
( h! R( j8 S" v- r5 ~$ m; W# i#include <asm/mach/arch.h>0 j3 T* j' O% a8 u+ [. T2 g: I
#include <mach/da8xx.h>
7 M* m; z4 o( w) e# O$ b#include <mach/mux.h>5 {; D# U& r- C, ~9 `6 A
" V- Z9 J5 z/ W1 W' ?1 `
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
  K* |7 i4 r9 a% O: b' K; W/ {#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)3 q3 {/ _3 r% r2 ~! |8 f6 h& |4 }5 M
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 J: e9 n( |7 {( b#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 d2 u; p; o; G# u6 j4 t5 a9 t  u; K4 v. E: C
/* assign the tl som board LED-GPIOs*/
# c) a0 T- q) @2 h5 B7 Vstatic const short da850_evm_tl_user_led_pins[] = {
2 S- P& O) p4 {# M! h+ l        /* These pins are definition at <mach/mux.h> file */( Y4 b4 D9 |( I) k- t, f
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
* T8 x9 h+ O! W        -1) k- k4 S! o8 j, d9 Y6 [
};
7 d, d; y2 V, d$ c  n
+ W& k+ d  Z$ Dstatic struct gpio_led da850_evm_tl_leds[] = {6 P& o, v& j  R
        {
4 M5 L. A* J* E6 [5 {" x+ ]% T: k  y                .active_low = 0,/ L' b1 C8 j  I+ j& v
                .gpio = DA850_USER_LED0,
, [2 X: K% ~; M# q" t                .name = "user_led0",
: T* W) P9 n/ b/ L/ X. i                .default_trigger = "default-on",  a. |) j) U; J% Y. k3 R
        },, L3 v. l$ S! V  K: W% i% N* f
        {: {  e% d4 f' I
                .active_low = 0,
- N" K' I, S& k3 W4 w$ K                .gpio = DA850_USER_LED1,
- J+ y0 k3 n* r' Z+ R# [                .name = "user_led1",
& _/ @* T8 n( J/ I                .default_trigger = "default-on",
: [; r0 E$ W) u' N8 C        },- [1 ~7 G% ^8 l5 L- O& z# @" o
        {3 Q4 ~% C# R4 ]8 g
                .active_low = 0,
( A) S* J) m# E: _                .gpio = DA850_USER_LED2,+ {# J% I, b( z/ E% B' R
                .name = "user_led2",! r7 }6 |! A3 R* i4 n: ]" c0 \- O
                .default_trigger = "default-on",
" x) N9 ~" b  A9 m- x- P        },( m( j) A( ~6 G, @# S/ I
        {
1 p; m- f/ e; ^9 l                .active_low = 0,+ _! `- O+ ?3 k( d- h4 `( t. o" |
                .gpio = DA850_USER_LED3,; ]" h4 s5 g& X9 S* T
                .name = "user_led3",# m+ c: R% y# O  b& X6 O& R2 |6 ?1 C
                .default_trigger = "default-on",) E- X- I4 F. O0 ?. R, z9 R, c# L
        },2 m5 t! I' y) o) @8 Y6 T) z# F3 t* j3 d
};: h% v0 R% w/ P% C8 f2 |  l/ j
. Y5 _  D" U* b9 Y# q: G0 C/ B2 X
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ e& S4 h4 [7 m' ]( R+ L4 `, Q7 z
        .leds = da850_evm_tl_leds,- L% D* c6 F+ I: O, `3 @7 G
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
8 S+ }- z; e8 ]$ k8 q; \};8 V( @2 y. `5 Y2 d6 E0 J1 J# K
2 m, f( s) ?2 I
static void led_dev_release(struct device *dev)
0 \, ?& Q" M$ o: H# X  M! p{
. S) k" l0 ^% M) Z1 r};
. F! L. g1 q. t: T+ d$ O+ z* T3 w- d3 k
static struct platform_device da850_evm_tl_leds_device = {, O6 ]& C; B& g; a6 j$ y
        .name                = "leds-gpio",
" |0 Y7 p, @4 `0 @        .id                = 1,# B4 @2 x( d# c: c  O
        .dev = {3 r& e7 m% N/ C6 r; ], r' u/ S# Y$ ^
                .platform_data = &da850_evm_tl_leds_pdata,
( A' v6 [% Y* W! a. h/ g  }, x                .release = led_dev_release,% A" U* n$ w8 K6 S* R. t# d( c3 v
        }4 F, y$ ?* ?. p. C$ ~& i
};: `. U" p8 d. @1 P% F
, g3 m8 g4 H4 H% g' e9 l
static int __init led_platform_init(void): Y9 Q! Z* m5 M/ n& j( g: e3 X$ a- V
{
4 W1 @+ @7 I) i- d2 [( V$ }        int ret;  S4 g' N4 r7 B5 e5 G& D
#if 01 G3 N5 |2 q# O
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( K$ }! O4 k8 `$ |& O& ~/ ^        if (ret)( j, _/ Z" U4 e; y9 k
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
( R% G( f( q5 p                                "%d\n", ret);
' [" s. A: W& }) u9 ?#endif% D7 b9 C, ]3 X; n+ e: `0 ~, i
        ret = platform_device_register(&da850_evm_tl_leds_device);2 [! p+ I) x! ?7 y
        if (ret); ?, `( [, M) p9 h$ }
                pr_warning("Could not register som GPIO expander LEDS");6 Z$ ]. F1 s, @/ |. \- n& n5 L
        else
# Y1 I3 V7 z; `& F4 n2 l/ C( u/ @% b                printk(KERN_INFO "LED register sucessful!\n");4 u: L0 _2 Y- r' R2 l. p2 O- M

2 k# b, a" z. J( ]        return ret;
; {4 Z5 z% y! V) {$ p, y5 ?; P}/ L2 `4 v2 l; u0 m( ^  V

6 C1 F2 M; P+ t8 _static void __exit led_platform_exit(void)
+ }- X# m1 C; \* H: O{
) [/ N/ [1 M& E9 y5 p4 C8 o2 V( j        platform_device_unregister(&da850_evm_tl_leds_device);
  j6 J; u% ^' t" y# u" r6 O: _
/ W: D) f$ O2 U+ B/ `        printk(KERN_INFO "LED unregister!\n");
+ O- _. w3 |, m8 N0 t4 P}
. t2 L, r: K% j/ \
( n, @+ r8 n2 n8 l' d& Vmodule_init(led_platform_init);
5 C( N8 @, @) p- Q! t8 Hmodule_exit(led_platform_exit);
2 J! K$ i# K; C2 @9 u! d
. [% z; h2 M, b1 V( _3 L1 h+ ^MODULE_DESCRIPTION("Led platform driver");
4 l# E/ r, \. f- w$ I/ s! eMODULE_AUTHOR("Tronlong");
9 V3 l+ g- T- L; GMODULE_LICENSE("GPL");
3 c& I7 ~# u" q0 G. u& }2 k) q: i! }0 I6 A' c5 N/ l+ n" w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-26 19:33 , Processed in 0.043059 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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