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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。) C. v1 W2 |/ x2 D: t3 R
#include <linux/init.h>) z+ F, y# u7 O3 |; l* ?8 X
#include <linux/module.h>
3 I& [  N- W2 e  X#include <linux/kernel.h>/ m7 P8 z, U+ N& J
#include <linux/types.h>
  z4 |$ K$ S" \2 U6 Z# s; E#include <linux/gpio.h>
) P, j7 m. I  A9 A9 k6 T: o#include <linux/leds.h>& [) c! C+ x9 @( {! B. {8 B
#include <linux/platform_device.h># G% d  `8 |4 a/ j+ P$ v$ P, r
/ R) T! v$ J+ R1 `- z
#include <asm/mach-types.h>
9 H: i! F8 J' B2 e, [#include <asm/mach/arch.h>4 P+ n! k# h2 A- T8 R
#include <mach/da8xx.h>
/ ]) y1 W8 U( W8 ?#include <mach/mux.h>
- c" ?; I+ ?( G/ _( `8 j1 J& O# z; B2 a2 e
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)8 w/ i1 j+ N/ J- R$ z( O4 ]; j# \
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)1 A+ A, \) z0 S: t8 m- {0 R* T
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! C! y/ \/ `3 C; I* c3 W- u#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: L+ b9 m* g( d- G- R* i& r( i* u: ~0 t
/* assign the tl som board LED-GPIOs*/- D% |7 M7 E5 Z* b8 a. d
static const short da850_evm_tl_user_led_pins[] = {
1 ?/ U/ N4 M% ^* J( {7 M) {        /* These pins are definition at <mach/mux.h> file */, l2 ]4 w# N) z3 ]# o6 [6 O6 y# r5 B9 O
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
$ J* k3 z! d) T% g5 Q        -1
3 Q4 ^( |  a0 x- `, m};
: P. K, t% \3 E% x1 u* Z4 h( |: I
static struct gpio_led da850_evm_tl_leds[] = {
2 |9 \, V0 T& k        {
' }1 D7 w  y& T1 e' k                .active_low = 0,3 _, q, ~  l! a* {  a4 i( F
                .gpio = DA850_USER_LED0,9 a2 `" [4 U6 V: G& |5 K* I
                .name = "user_led0",
) e* v# n  S1 @6 s- M                .default_trigger = "default-on",
+ G, c! b1 O  z& P, f4 v        },& B8 J  E  t+ _" _! n$ |' ~
        {" b3 s/ ]" w9 }8 v. i: t) ?0 Q
                .active_low = 0,: J9 H& n# m, e
                .gpio = DA850_USER_LED1,
: y2 {) ~- L% {8 x& ~7 ]0 J                .name = "user_led1",; C4 g0 S: I6 v% Y  w3 c9 K
                .default_trigger = "default-on",
; `6 X/ z) m: M  b; x; C$ S        },
% \- M0 ?& X4 I( r4 a) e        {" I8 a" i3 s6 _6 p
                .active_low = 0,. `( i" J6 S: U; O: Z5 N4 e
                .gpio = DA850_USER_LED2,
- R$ A" S# G% \! p/ Z- k                .name = "user_led2",
( Y# R/ v' @5 X. r. e8 A9 J; h                .default_trigger = "default-on",$ }% q0 O7 v. ]. V
        },
& r8 I6 G5 a" |; A" [4 V, S        {: H& p! G, O0 h( D" {8 w
                .active_low = 0,- X# s* T" B: @% i6 B6 ]" N9 p* k
                .gpio = DA850_USER_LED3,
1 G, I* J$ ^. @' I7 F7 D3 S                .name = "user_led3",9 P* I# p2 F+ X8 I# j7 x+ L  r
                .default_trigger = "default-on",
5 c  n: k% W2 B; a& M6 D        },
. @9 |. j4 {4 {; l};
/ L, m, L) Q- [# w
" y7 V4 i1 ?3 w8 _  c# K# D2 z, {3 fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
) A" L1 N4 ?# {. o0 x. I, F        .leds = da850_evm_tl_leds,, q+ c, \, `! P% w. v
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),3 r7 q7 |) ^! W8 a
};
4 X8 q& N! _! N- e9 f7 O' z% o. k. c8 k/ Z: A) r
static void led_dev_release(struct device *dev)
" J1 S  V7 h7 F; W+ S# {{2 T: a3 m$ C8 V
};
4 F& X) H$ G. Z" f9 N0 z
/ y! @8 c' P# L8 N! fstatic struct platform_device da850_evm_tl_leds_device = {
- ^7 m& B' u, ?+ i4 M        .name                = "leds-gpio",- j1 V! M& A% G; z
        .id                = 1,) V3 C6 M9 W: i* z: P
        .dev = {
' H( e7 J4 b, @" [                .platform_data = &da850_evm_tl_leds_pdata,' W2 }& m0 Q, m2 [3 T" Z
                .release = led_dev_release,
% O- C! l* @6 A- V0 \        }. ?& g" x. S7 i3 t4 k
};+ X9 N7 V" p, c  y0 k/ R2 Z. _
* ~' I  m7 x* h$ V* |5 h
static int __init led_platform_init(void)- p# @( L* l) }9 Q% G
{9 H. q% z' y. v
        int ret;
9 d7 F& T: E' Q4 G" ~/ c+ P( ~#if 0' I% Z5 o% y1 b
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
+ e+ g* F* K/ w, R& f        if (ret)  A; [3 T8 M- N; o: A
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
9 q- g: z6 ?1 m* s( R' m                                "%d\n", ret);
' a# R7 c4 X% H' O, ]. }4 P#endif8 @1 Q; v) K  I
        ret = platform_device_register(&da850_evm_tl_leds_device);) ~! _2 |/ N5 _+ g
        if (ret)
! w# _) n, ?$ e4 M' J. f; F                pr_warning("Could not register som GPIO expander LEDS");
9 k1 U: @/ U4 Y9 f; Z# D: e        else6 h' }8 i; N7 |& i! B
                printk(KERN_INFO "LED register sucessful!\n");
8 j  H- ^' Q; N; C
5 x" U" N. K+ ~        return ret;0 B% h( ^, p* }! r
}2 d% A# _! {4 K0 y9 m7 F$ |
& |) s# q8 o, c- S# v
static void __exit led_platform_exit(void)9 q1 Z: N2 K% s# K4 O
{* j, f5 a8 J% P( M4 _$ T" k
        platform_device_unregister(&da850_evm_tl_leds_device);0 _/ V% H1 b; g* W8 G8 z0 Z

; D3 v! y/ |6 m        printk(KERN_INFO "LED unregister!\n");
1 t$ @. Q+ T$ D* N}% L3 r9 q$ Q& A, e+ ^- t

+ G$ X" ^6 ]: @module_init(led_platform_init);: E- S+ @# q1 ?5 _6 y! p
module_exit(led_platform_exit);) j+ e. h4 B" _& j1 P4 C0 a
5 @, }% {9 x% M  @4 G4 D
MODULE_DESCRIPTION("Led platform driver");
6 n) }  |8 c, a8 j2 B$ J8 X6 vMODULE_AUTHOR("Tronlong");
0 {& F9 d5 _! v$ YMODULE_LICENSE("GPL");2 J& C" A- N5 W5 V4 z3 e- e* d

$ v9 {# m+ f4 S7 I! {" B: M7 E" s
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-7 14:31 , Processed in 0.040786 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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