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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
- x( h* c" m3 I+ o+ B' j8 B#include <linux/init.h>! O8 |8 B! Y$ Z0 m; v5 p9 q0 h
#include <linux/module.h>
* R4 v+ g8 T, Y  K$ A#include <linux/kernel.h>2 x3 \! @; f# v) i
#include <linux/types.h>2 E& F0 X  O* ^8 e" X  T
#include <linux/gpio.h>5 H  a- s; P/ W
#include <linux/leds.h>$ |6 o2 P! e' ~6 Z) V9 R
#include <linux/platform_device.h>
" c+ n: O: X! t9 s$ s+ X4 S* M! H9 a; i  l5 v
#include <asm/mach-types.h>8 T; j  s4 Q7 M, r
#include <asm/mach/arch.h>
8 h% p; [5 a9 }1 ?* K#include <mach/da8xx.h># v6 p8 m3 p( n. ]  Q" \1 ~( _
#include <mach/mux.h>
/ Z# n7 p9 k3 F2 A1 |  \$ j/ y4 z" T3 s4 O; P
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- D' L: j9 s- X1 W1 ^) q9 l5 ^# n. y#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
/ r+ H5 z! Z& s; L3 x& X#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)* ~2 ~) n3 d. X8 S
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)) W8 Q! c4 Q. C; M
# k  B& O& P' a2 W" @% d+ `
/* assign the tl som board LED-GPIOs*/+ ?& o& i& z9 o5 P. k6 T
static const short da850_evm_tl_user_led_pins[] = {
( ^5 u- b! t/ ~, ]/ G* v+ g0 f        /* These pins are definition at <mach/mux.h> file */  A+ v: L% ]* u
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,7 e! m! s/ p. W7 ^! N
        -1# x9 V9 Y: t! t0 e0 y  U
};3 J" r1 S4 g& |3 T

7 s$ u2 M. _" g7 Cstatic struct gpio_led da850_evm_tl_leds[] = {
; K; X: \0 U: l6 k  H/ V- C7 I        {7 b' G* Z' Y0 B
                .active_low = 0,* K, _) p3 ]% a/ `' _
                .gpio = DA850_USER_LED0,
1 \% `: ^8 x+ m" Z3 Q( `2 F                .name = "user_led0",0 k4 o0 a! B( d7 y
                .default_trigger = "default-on",/ R  P# n7 M* n! }+ x
        },# X; @; [- a  ~+ L  E% B
        {7 s8 ]( \2 L$ p, J- ^
                .active_low = 0,5 i: H5 u& @8 {5 D+ ]
                .gpio = DA850_USER_LED1,
/ |0 d. a. T# K- x; ]9 m                .name = "user_led1",- T8 }7 D/ A7 _% M3 B
                .default_trigger = "default-on",# l' q. `/ f3 B+ d5 H
        },
5 e2 d. t3 Q4 l; h! c7 I        {( B' q& ^$ J) M4 D. N
                .active_low = 0,8 t2 u4 J+ E8 S9 S. p- [+ v- j
                .gpio = DA850_USER_LED2,
) n0 M2 Z+ K" U! _# t                .name = "user_led2",
/ l. y( g5 e8 ^# J                .default_trigger = "default-on",
5 h5 W+ |  X7 `9 ~) N( L( {" n        },
/ J* a; A6 @4 ?* [* C: p        {
. z$ Z+ q0 A9 I% x/ ]* o; |                .active_low = 0," g8 {( f  ?$ @' w0 r8 ?! _
                .gpio = DA850_USER_LED3,
, g0 y3 E5 r8 F2 E% t5 H7 h, r                .name = "user_led3",. q' r( @. r0 r& n1 c0 Z( Y
                .default_trigger = "default-on",
/ U: c3 a: M  _3 L5 z        },2 e: C4 {) C7 ]. }5 Y1 r! p9 l4 _
};1 u6 o8 w$ p2 B' g2 U
( Y: u* t4 r" ~: Z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
' t) {% T+ ~, o' e/ V2 y, j! Y' K: U        .leds = da850_evm_tl_leds,8 z; b8 o. Y9 I5 @3 K5 j
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),% k5 e9 a! L5 c2 T5 L0 d( L9 K
};$ [4 ^! j7 J3 K! K4 M+ c- ^, ^

8 s7 l. k# N; m+ X: m* V  P7 hstatic void led_dev_release(struct device *dev)
; b9 u& l7 K& a{' B0 J0 r" y* @, A' ?
};
; s$ F; e- l3 _8 r. G& T( z9 Z" L' V' K; [! m# K
static struct platform_device da850_evm_tl_leds_device = {( o! Z2 ^; V) B6 Q6 `$ r# g
        .name                = "leds-gpio",
+ ]  p6 [9 o' g8 ~8 ?. y        .id                = 1,
  ]# g1 ]! {6 m3 a& Y0 T2 W! Y        .dev = {1 Z4 N3 B3 K9 W( F9 C
                .platform_data = &da850_evm_tl_leds_pdata,
/ P% t9 @( N% Z+ N1 q; j                .release = led_dev_release,
8 W( X% i; E2 {- D# }( o        }
8 Z7 }! |# R2 o};" O9 l( B2 {) X4 t+ u

1 l. ~6 w" ~0 d/ Ostatic int __init led_platform_init(void)
* e- j8 Y9 i' G  N) C{) [& L; `  q8 M* y. |
        int ret;
; @- i) h8 ^; V- {) M#if 0
' N3 G  k. }' j. ~( `        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
* ]4 c& @8 [% L. _- h) \        if (ret). }- t2 ?, M3 s8 v! b( N; c
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
2 I$ W+ G2 d" X) m7 _% k                                "%d\n", ret);
  u/ f/ {6 `: A2 L6 R1 }+ W6 l' x#endif/ @* W" y% @) u/ |% Y3 p
        ret = platform_device_register(&da850_evm_tl_leds_device);, @9 @+ P: R" d9 y) L2 y2 R
        if (ret)
+ W& `3 h  W/ |8 v3 l1 _, d                pr_warning("Could not register som GPIO expander LEDS");
2 g% X( H& j3 N; {8 @6 W7 L        else  @* r5 y0 O* o* v- D% S
                printk(KERN_INFO "LED register sucessful!\n");
2 _7 ]* P/ c: `- K  g1 V& O: t6 I; s4 \7 M  P: p% N
        return ret;
3 Z2 n( g6 Z, l6 v- {2 R1 a}
& q4 U$ v  H# }# T$ B8 V" u1 j, ^3 Z& Q$ q* H, R. w
static void __exit led_platform_exit(void)2 |/ i0 U: }) t, s6 }. I
{8 K+ R$ E! E6 i' X
        platform_device_unregister(&da850_evm_tl_leds_device);
) \. s: J0 p& O. V9 x6 d4 W9 O9 A; r$ P
        printk(KERN_INFO "LED unregister!\n");! b, G! T% B, ?% o7 _
}3 m" E5 `" T+ y5 J9 w
0 E. K! j( r* s0 p
module_init(led_platform_init);) l' m# C- z# C1 ^8 y* I6 W% ?
module_exit(led_platform_exit);. v8 W  y8 y/ m8 O- D

, A# R& k: a! z9 T) A  Q5 F+ n# nMODULE_DESCRIPTION("Led platform driver");
9 a7 W4 a6 ?  j+ V9 C0 `MODULE_AUTHOR("Tronlong");5 t7 O- K6 \9 v, I' U
MODULE_LICENSE("GPL");
$ w0 E  n. |5 W( f) x$ [7 }4 m  p6 t# O" {5 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-11 09:59 , Processed in 0.040602 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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