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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。0 ]8 p9 p/ V% g" n7 J, K
#include <linux/init.h>  d* @* k9 L6 r' ]2 [  p% Y% h
#include <linux/module.h>5 V( w$ j& p0 o# v. Q2 j3 Z
#include <linux/kernel.h>
/ F" ~7 o) O# H6 Q2 f#include <linux/types.h>
* P3 x& w( Q0 g#include <linux/gpio.h>
9 N  ]2 D9 r4 E6 }0 y3 `#include <linux/leds.h>! [( j& X2 g$ R/ d) }9 y; Y
#include <linux/platform_device.h>
7 W/ B' ~9 K& n* M- E  [0 u* B/ S4 \& n. y7 W! M
#include <asm/mach-types.h>
+ ^' F) A$ s  Q+ ?' A#include <asm/mach/arch.h>
9 b( N. _6 B: I; w#include <mach/da8xx.h>
2 S% o1 \" x  C0 d3 A#include <mach/mux.h>
3 _/ B, O8 E0 [% c2 L5 s/ M" F
6 f. S- A7 d$ j+ Q1 E#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)" f" u8 U6 j9 d# S: e
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
6 X" k. k; O7 J; I: n" N#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)  Z- f$ M( H. d7 D0 [" [
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# O( @7 V/ b$ O: Y! p2 S, y
( i' a' v% l2 X2 n6 s& Z/* assign the tl som board LED-GPIOs*/
' v. O& w  W  P& D% o& K# ]( nstatic const short da850_evm_tl_user_led_pins[] = {
; h3 n0 i& R' n; s6 }# a        /* These pins are definition at <mach/mux.h> file */
+ P: ^8 F( \4 ^, i: K# }, {        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,, e5 }6 \8 ~& A* I% i. t% R4 x* |
        -10 I$ v, m3 z+ n, Z$ D6 f5 |
};
& b2 y4 T6 f5 r
* ^( H& Q# D4 d' G5 \( U6 jstatic struct gpio_led da850_evm_tl_leds[] = {* Z. Y# R' l) f9 H0 [
        {
6 p5 l) u( J2 x. t* e3 ~                .active_low = 0,
( K' ]) ~1 Q  z9 f8 g$ L' v                .gpio = DA850_USER_LED0,
9 C  G3 D; \0 z1 p- B                .name = "user_led0",
! ], b0 z# q; U- V3 n4 |                .default_trigger = "default-on",
- R$ B- o5 `9 K1 Y$ A/ o) t        },
/ i( k9 ?! O' V7 r( a& H8 u1 F, b        {8 }% K; d& L0 T+ ]* l
                .active_low = 0,
+ h. b. E  B- Z' s                .gpio = DA850_USER_LED1,, {7 r8 @8 l6 a9 {1 X$ _7 d& [
                .name = "user_led1",
3 p+ q$ F) K- C) X                .default_trigger = "default-on",
/ Q, f7 r7 j  n" G8 V' Q+ s2 S        },$ \( J6 }4 `& E/ C: S
        {
2 u0 ~( X5 u: j* r  m% q9 u# S1 Z                .active_low = 0,
/ @  _* |, `5 F) x; ~, m                .gpio = DA850_USER_LED2,
/ d: o0 F  \6 ?$ @6 k                .name = "user_led2",
$ A& t" n( P0 r' X                .default_trigger = "default-on",7 f# \/ [% j  l
        },' G( R0 s3 D) S2 @  r& c( C9 @" x
        {
7 ~& ~+ o( f6 f1 c: V                .active_low = 0,
+ d9 u5 K" \/ S  I6 D3 J                .gpio = DA850_USER_LED3,9 J  }- O, V* e) r; G5 _
                .name = "user_led3",# \: i& {0 b0 u( k: W2 e) K8 i9 O
                .default_trigger = "default-on",
% N$ |( z- D, n4 Y: k8 v/ Q        },
- W) o7 W/ c( o- k5 _. b" E. i( S: @};# Y" M& R  X4 ^4 B

8 t3 f6 ?0 O* J8 i9 x. Tstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
1 ?; h* _- m4 {' r4 M5 I        .leds = da850_evm_tl_leds,0 n( y" A6 n. _* h! X2 f
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
4 ?$ s( b6 I3 @- r" _};
4 K3 ]0 s4 W0 `8 `& t9 @0 \( p" m  ^+ n9 J1 J. W/ f, P# B
static void led_dev_release(struct device *dev). l$ P0 ~* C8 r& ~$ N
{
5 \' M: C& T/ f! d};
# L7 P% t6 d8 a" d  o
) I) U% p# e' b4 [3 b+ `static struct platform_device da850_evm_tl_leds_device = {
6 r$ \0 K: h6 F$ T; r& S9 I/ J        .name                = "leds-gpio",
+ U$ v3 b1 j8 z        .id                = 1,
4 H/ D  Z; y3 u        .dev = {
) T* c: J( t$ s3 U3 }3 n5 `                .platform_data = &da850_evm_tl_leds_pdata,
2 P* c, Q8 O/ w0 m7 K6 Q0 B                .release = led_dev_release,
: d3 b- p+ o7 F& L        }& U8 x/ @) Q- y
};& j* E! Y, I2 q1 S7 e* i
) T) Q* `: @0 E3 Q2 V5 m
static int __init led_platform_init(void)
3 e  F& j+ v! a8 \# d{# m/ L7 f8 A8 a7 ]+ N5 w1 i; x7 s
        int ret;
! p- `4 ~% ^0 R0 {, d. U#if 0/ S: I  B  R2 `) e( q2 C- K3 U
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);4 ~$ I4 g' P+ U
        if (ret)
3 D& Y3 D1 B. [/ D3 q                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"2 v4 i0 l/ p/ Q  |7 T2 ]0 Z: b  M. j
                                "%d\n", ret);
: h. B* ~* w9 g' l% p#endif* J( ]( b- }% t' U
        ret = platform_device_register(&da850_evm_tl_leds_device);
4 Z+ w" C. {" ^        if (ret)
( s' a; d2 k- b. L                pr_warning("Could not register som GPIO expander LEDS");$ p1 M, w; N5 a% F( I$ q
        else* f- n4 H9 Z; h
                printk(KERN_INFO "LED register sucessful!\n");1 D; J+ y1 d7 A4 A/ \
2 C# b1 k" m6 \8 T/ [) y
        return ret;6 U7 Z- p/ ^( N8 X
}
+ ~) D* u4 @9 B+ K& h1 Y6 {
7 m! a7 @/ t) ?6 e0 @static void __exit led_platform_exit(void)/ `1 W; G" ^6 J' y7 T' y
{
. N6 X( T. s) d# }$ y        platform_device_unregister(&da850_evm_tl_leds_device);$ f4 r8 y4 j* p3 k# I& Z
) ?$ G  I% S+ j& Q( ]) M3 w# |
        printk(KERN_INFO "LED unregister!\n");9 [& }/ I7 i4 M# \$ P3 {( ~! I
}
' ]% a1 ?/ C: l0 k# j& C3 s: O4 Q  ~
module_init(led_platform_init);- Z+ w6 z: R/ S/ m. ~& B
module_exit(led_platform_exit);
7 \2 s* s( V# ~5 |3 [
) W- |, H/ s8 C4 n" S; `( I. k8 kMODULE_DESCRIPTION("Led platform driver");9 R4 N/ T1 s/ B
MODULE_AUTHOR("Tronlong");
/ q, P2 g* A5 |MODULE_LICENSE("GPL");
0 Y2 U  b0 K) p$ ]0 u' D( ?5 C; g- o% }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-4 02:57 , Processed in 0.040434 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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