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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
9 B( y( E6 d7 P4 R#include <linux/init.h>
$ e* x; t9 w* k! }# n$ v1 D+ y7 V#include <linux/module.h>
/ m$ P$ X% H. \* H7 R#include <linux/kernel.h>
! n% [( }# N# b; T( B#include <linux/types.h>: {9 H4 p# S) w% [
#include <linux/gpio.h>; m5 @, w- j" E( i. J
#include <linux/leds.h>% z; O- x; t7 d# v! g$ U
#include <linux/platform_device.h>
7 H6 G9 G/ w. q1 K" B: j" I8 Y) P, h/ k! i8 D4 c
#include <asm/mach-types.h>
8 i% s3 ^) E+ y#include <asm/mach/arch.h>5 f4 C9 j- t6 Z2 h1 S
#include <mach/da8xx.h>9 K0 ?$ A. e# e% C* ^/ ]
#include <mach/mux.h>
. B2 L2 ?( ]) n  m
" N4 S  D+ l- j: _+ j% b0 j#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
* ^+ @! X/ n# j( J7 _* }1 `; i#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)- H% @: N; P! T
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 [2 x) S* W' X9 D7 l
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)& F9 V: |0 F7 v1 ?0 S1 w- S2 Y
  A& w6 U2 n- p' u# K$ ^# B8 ^
/* assign the tl som board LED-GPIOs*/, G% e8 k  n2 V
static const short da850_evm_tl_user_led_pins[] = {
* H; d2 }/ j! w7 U        /* These pins are definition at <mach/mux.h> file */: I* r/ P/ k% k& n3 _
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) Q: q% H" b& x        -1
- s8 [7 k* _; P8 n4 p" i* |0 ]( p};
& b5 \# s4 E" f' U& @  D
. h/ m  b! i( Mstatic struct gpio_led da850_evm_tl_leds[] = {& q2 F% C  K* f+ g8 r* K7 q
        {; N7 W( V* l2 y) K4 e
                .active_low = 0,. F2 o1 l0 a1 U& A
                .gpio = DA850_USER_LED0,' ~: c0 J& d1 h, h6 j& H
                .name = "user_led0",
" _6 \# w5 V, r9 d! ]: h' n, R& p                .default_trigger = "default-on",  p2 z  K5 \! T# I+ R! P/ z
        },1 P2 z6 u. i$ K" u4 j
        {$ D* C3 J: D' T: A% Y. L
                .active_low = 0,7 s# k1 z3 E8 S: O! X$ h5 d
                .gpio = DA850_USER_LED1,
: ]. _$ h" G- y( M- S4 n                .name = "user_led1",
! D8 O# _: W! P) f, A                .default_trigger = "default-on",) t0 g2 ^3 e9 a1 ~; u
        },
2 ]9 l" T" V5 {7 Y        {4 l  Y% A$ |* L* s. x; {1 \% J
                .active_low = 0,4 O& H* R8 R* H1 F
                .gpio = DA850_USER_LED2,
* ^: o7 L6 p: f9 y6 t1 y                .name = "user_led2",9 x7 X  u5 {3 h: y0 J8 o! R
                .default_trigger = "default-on",
9 b6 R6 e1 j- q9 y        },) ^; R) B7 i( z0 v3 x) f
        {  I8 _, l! O  S/ F6 ]  D
                .active_low = 0,
' J  u7 Y% e% H7 P' P( }                .gpio = DA850_USER_LED3,
" E* ^6 k7 ?9 n) Y& D                .name = "user_led3",) p, Q# ?( d4 Z! X' B
                .default_trigger = "default-on",
. J/ I/ z/ c) p3 T# p8 ~        },
% C4 c, z6 s3 }8 }9 l( Q! Q7 `};
! x  u. a- M) p7 X
2 }+ H. _5 ~5 H+ ]: C& y" P* Xstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
4 s) Y& Z5 Q2 e& ]  P        .leds = da850_evm_tl_leds,6 q: ?9 D+ Z; U, \" [7 X  K2 S6 M
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),; d* N' b: a, J; a" q: D- h. Z
};
! n4 W) s" ?0 r  G: p1 ~& w9 i8 {2 E  ?3 Z' o# n5 v  \: D
static void led_dev_release(struct device *dev)
# F9 O+ R9 e8 X9 A5 i{
+ b+ O9 U% f! c9 e3 R5 r};
( q2 z% v4 ~/ ]' Y2 \, @+ k9 j( s+ q$ H% H8 k0 I" z5 X
static struct platform_device da850_evm_tl_leds_device = {1 w0 r1 K& ]! A# p9 w
        .name                = "leds-gpio",! P& u3 T: J; \# |- m6 D, g
        .id                = 1,
' L: }+ f( u: h        .dev = {
" F4 d, E  L: [& K1 m                .platform_data = &da850_evm_tl_leds_pdata,
; A/ Z* }& G& _5 t* [1 o7 r                .release = led_dev_release,# u& ~) J0 `6 T7 a, p0 u
        }
4 k5 v4 H5 E- F6 @: D  p};
& C$ E" j4 ?: m5 R1 M. Z2 ^1 `9 w$ `1 ~, @9 T
static int __init led_platform_init(void)
' c  Q7 h4 V0 a6 h) X{* b7 h' R) N. @3 r# r$ P
        int ret;
0 r4 g, @0 m/ b3 m#if 0
7 \' |  C1 g* T$ }, D- B1 L        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
0 e5 v6 [  A$ Z4 o( |        if (ret)
: y! |2 p4 ?6 E6 g7 Z& C8 V                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
6 L8 b% V3 _- j/ W" v& m                                "%d\n", ret);
  Z: t- E# Y" J" X#endif/ O' v; M; u# U# B6 {0 G
        ret = platform_device_register(&da850_evm_tl_leds_device);
6 |6 q6 `+ Y' I9 [6 _5 x        if (ret)  S( V( C/ X8 {. d' H* q
                pr_warning("Could not register som GPIO expander LEDS");
0 ]0 a" B+ v' Y- Y4 @* O( R" B- g        else- W3 `; m+ L3 A! }9 d4 ]3 J) T* v
                printk(KERN_INFO "LED register sucessful!\n");5 p; k& T6 y% B! e( a" m' F

5 f( @  k) A% q6 |$ u8 W" j        return ret;, P" ^  g) p0 h, D; g" s
}
; E& j( O& u$ M2 N' Q4 j' i( N' w+ N4 ^; k
static void __exit led_platform_exit(void)3 x* _! \7 n/ _
{
6 Z! _1 F  H- b2 C, d- G9 o2 V        platform_device_unregister(&da850_evm_tl_leds_device);
0 Y* L5 S# |2 c3 K3 Q8 Q4 }0 b+ N, }
        printk(KERN_INFO "LED unregister!\n");
" Z( v0 ~  _6 T" C  J0 X2 ^3 s}
- {' g4 F) E- |& X! f- ]% o' y; ^( o" P0 B# p8 j
module_init(led_platform_init);
3 q1 }8 L4 K/ L+ o8 N/ Mmodule_exit(led_platform_exit);7 E9 j) Y0 j8 K; e
) ^# i7 l" S  A
MODULE_DESCRIPTION("Led platform driver");  F& g9 ], n7 w
MODULE_AUTHOR("Tronlong");
5 U1 C: y  G/ `MODULE_LICENSE("GPL");+ M- p* C! m, P- H& D

  r- G: W4 M+ M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-9 12:11 , Processed in 0.039163 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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