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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。9 f: L" r$ I6 ^) A
#include <linux/init.h>4 a" \7 f. L+ I/ s/ |) L
#include <linux/module.h>8 q3 [3 ^7 ]9 r
#include <linux/kernel.h>$ g  f+ @- p' z
#include <linux/types.h>% H; E  }) Q4 K3 _& E
#include <linux/gpio.h>& F* F4 q8 H  U
#include <linux/leds.h>% H0 u# U) D7 C
#include <linux/platform_device.h>
' u' `" U: h  ~$ w, w  P
5 Y8 I0 x% B) H  \3 g& A7 s#include <asm/mach-types.h>
4 Z8 z7 x' g; I/ z#include <asm/mach/arch.h>
9 K) p  j8 d$ R$ z3 y#include <mach/da8xx.h>
: m8 t& Y6 n0 s" H0 m) K#include <mach/mux.h>7 h" l8 u& V" T- Y/ _5 V0 @4 ^
) D' [7 `) m! f3 |9 `
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
  r4 ?( L+ a4 k: ?#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, d  A0 r; I* L2 a! h; }#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)5 A5 y  j. K5 h0 r* c0 p
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ c6 h7 [5 A+ e: O% X' I) o

  P& t( b& _% Q9 T( f- e5 [/* assign the tl som board LED-GPIOs*/5 c2 J- C6 z5 }: p
static const short da850_evm_tl_user_led_pins[] = {
* t: z( B, H! `        /* These pins are definition at <mach/mux.h> file */) r4 x% R. n/ N: D+ G& A
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
9 W7 {8 L& G: }        -1: g' x; a# ~$ K' W- `
};( o# f1 A- S/ g4 u
: Y" K2 m! }* \. u3 [- e
static struct gpio_led da850_evm_tl_leds[] = {2 p& N" H% a  @6 [7 c0 u$ i
        {, u* a$ K' P: U( k9 h. q3 O. d
                .active_low = 0,
6 h; r. ]$ t0 G2 l                .gpio = DA850_USER_LED0,
3 P) f3 u. W% R- o. g# ^  u                .name = "user_led0",+ p" H. @( K) q, x' G1 U
                .default_trigger = "default-on",
- C) g* e, I; Z        },; O4 c- M/ }# @, {# L. r
        {
4 e, k/ x( K; M: H3 @: J+ v                .active_low = 0,6 V3 S! O0 ?  ?3 m8 M" g- f
                .gpio = DA850_USER_LED1,5 }9 L( q- c3 m, j1 R
                .name = "user_led1",1 n0 [# g" z8 }4 G4 Q- m
                .default_trigger = "default-on",
  |& f) P5 Q4 {: S/ b2 f        },( Q. c; @6 J3 g  I
        {4 ]+ q0 S; O7 w8 V& q
                .active_low = 0,  e) w" c1 F' m" u. y
                .gpio = DA850_USER_LED2,
  T) f( X+ F) {                .name = "user_led2",: ?& U# }0 s! t  D2 M8 \
                .default_trigger = "default-on",2 x% X$ I" f, ~3 f# ~. |
        },
# B! u9 V* F* s- C1 b3 g+ j        {
% l: t9 i+ _" c: e/ Z( Y                .active_low = 0,6 t* V6 B/ F0 j' T3 ~: G
                .gpio = DA850_USER_LED3,
1 j9 [5 b! f( p# N) L5 g                .name = "user_led3",  \. z8 R" V4 V
                .default_trigger = "default-on",
5 b; K4 C' p9 ^% E3 l        },9 [+ O% [* f+ E  [
};
# P: G  F9 _; C! \& T6 L3 t3 e5 X1 w( L4 S
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
  [: I6 b9 R* Z# K5 q2 _% M        .leds = da850_evm_tl_leds,/ E# o" E% m, m8 T4 l2 K; ]! E
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),( ~: O8 f' {+ H/ W' j
};5 o/ g- F2 p. n: E
1 w' Z. _$ z& J
static void led_dev_release(struct device *dev)* S+ ?$ W8 T! ~# |& x
{6 J; L3 m# K; |2 P
};" H  }" _3 t) u; b
) X# E. j" S0 C, d8 t, @1 P
static struct platform_device da850_evm_tl_leds_device = {
0 e0 ^1 R3 z- H0 Z, D/ t        .name                = "leds-gpio",5 e/ G8 \1 o6 J  v% Y
        .id                = 1,
9 {4 i# I0 }& b+ H! q/ n& _        .dev = {' V3 z0 q, l& R
                .platform_data = &da850_evm_tl_leds_pdata,
. F3 [. H' t; u/ R7 }& I+ r" }7 {                .release = led_dev_release,
9 }' K, D6 [) S$ A5 f3 X        }$ Z, R, Y1 i8 G+ \
};+ W3 @6 h% I9 w) }, o4 z3 @! K: z

4 Y. [9 \# P$ S" S* sstatic int __init led_platform_init(void)+ A, \0 c5 D9 c+ u
{
- [! M. z% @# o: X; N5 u        int ret;5 Z3 q2 b& ?+ H+ ?7 I& Z; Z
#if 0( t- [" X9 b7 g$ W8 w
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);/ b  M: S" ?' q* Z
        if (ret), D7 ?/ `- {; l/ ^
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 ~6 E, C% x  N- v5 r6 c, |                                "%d\n", ret);
* t1 ~8 g& e, r  w  H0 p$ a#endif
# g5 Y/ X% v+ g; d5 n. |6 |: S0 b2 X        ret = platform_device_register(&da850_evm_tl_leds_device);
0 L& t1 w( G6 W# f7 D4 I& o# k        if (ret)1 A$ M; C) c+ }& }
                pr_warning("Could not register som GPIO expander LEDS");' u7 u( p2 U) Y6 m9 _
        else# ?6 C5 N1 d* N6 D
                printk(KERN_INFO "LED register sucessful!\n");
3 |7 c; _, Z7 l3 I$ n4 ^
# v) N. f  X* C' h/ E        return ret;
! X# j6 T# I- ^' s9 R* \}2 m2 ?* Y6 s8 `9 q) z1 H
: V& P) s) W3 N. \3 h: m5 v
static void __exit led_platform_exit(void)
  A( x1 p" n# R1 T{
( I0 H. M% x+ g) w# Z        platform_device_unregister(&da850_evm_tl_leds_device);( s$ f4 Z# i% w

- x; z$ g, [6 H# s% }/ a        printk(KERN_INFO "LED unregister!\n");6 b0 Y; g, W% I0 T6 v; i
}# \# H8 P  c* m
4 M, ?9 v* V+ v6 ]6 E! c
module_init(led_platform_init);
+ H& Q9 m& |5 G- u: Cmodule_exit(led_platform_exit);7 R! d' r+ `- N  _0 g
2 X5 {0 K" D, s0 k3 L- G
MODULE_DESCRIPTION("Led platform driver");
) u5 k) i+ |4 R% RMODULE_AUTHOR("Tronlong");
2 |3 O8 `7 d0 \/ w- q: @# |MODULE_LICENSE("GPL");% T) m7 x0 {+ S9 v- i( a4 V! j; @
* U! P' u+ n$ _6 ?- X" [1 f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-5 20:48 , Processed in 0.041180 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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