程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。+ @2 Q* Q1 m) g& x( C8 O8 C2 Q
#include <linux/init.h>" l8 o- W/ |' v7 [( y
#include <linux/module.h>; `" x6 i$ |: B6 w
#include <linux/kernel.h>% B( e  s' \* ]$ e# @2 W
#include <linux/types.h>3 u; c/ ^0 M/ @, ]1 I0 B* Y( E
#include <linux/gpio.h>
: A' ~) S% \& {% a  ?% ]; n#include <linux/leds.h>& Q2 v( K/ N: {+ k+ n+ [/ Z
#include <linux/platform_device.h>
: ~) t( ?+ Q& x$ D
) N8 d, i. j- p6 N$ |) e) E; O#include <asm/mach-types.h>
! i& |7 e6 g  p#include <asm/mach/arch.h>
2 L6 W+ @) z3 }$ O5 d; `#include <mach/da8xx.h>
, ?, T: l2 b& n7 Q2 b#include <mach/mux.h>
  W+ Q0 f' h' ~/ X2 x6 a
- H$ q$ f- }/ v+ G#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
; Y# H, `# ~7 X$ R9 }6 F#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
/ J+ D, G3 ~5 i7 \1 [#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)) [" N7 M: ^7 [
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
7 x  u5 z( Y) p  M; U3 u8 N0 U& ~' W' k0 M6 O, X
/* assign the tl som board LED-GPIOs*/5 B# N/ U; ~- O5 i* B
static const short da850_evm_tl_user_led_pins[] = {
. N& T$ t5 J# M9 D! ?        /* These pins are definition at <mach/mux.h> file */
- i1 ?* G  v( K- N' Z0 S! z        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
& T2 P3 O- l1 z        -1% M6 U! o- Q( [7 b/ {
};
2 ]8 E% a9 y2 e8 c' `
3 Y8 m9 ~8 Y6 h9 ?  R" q8 jstatic struct gpio_led da850_evm_tl_leds[] = {
/ z2 e+ h) ]+ [# [4 N        {
" `! e  O3 i* W                .active_low = 0,9 k9 z8 f# q- A- ~  }2 Q
                .gpio = DA850_USER_LED0,
# L3 ?1 q" [" X3 F! \* ~' ]                .name = "user_led0",5 k! y$ o: H: s( ^! n5 ?6 v
                .default_trigger = "default-on",% \; D/ H1 O' U# S' ]. n
        },0 O6 }& G* r! b9 `$ ~' @- l
        {
/ r+ m) {# x& [& S% q                .active_low = 0,. h! L* u' c) I& [% m; ^
                .gpio = DA850_USER_LED1,
/ q1 ^! W0 H) N' e9 j! u                .name = "user_led1",: a% e" h1 {* \4 z1 C& \
                .default_trigger = "default-on",
& R" F$ h# U3 v  l3 `        },* a6 Y1 h1 n# T! Q& O
        {
! w* g, D, `& j* w                .active_low = 0,
9 [- E. q2 p) p9 E) m                .gpio = DA850_USER_LED2,
% i, T1 i% N4 R/ K$ r                .name = "user_led2",: g5 O8 [) _+ ]" z% G
                .default_trigger = "default-on",$ ]  @" _, e, d4 d* A
        },* C/ ~5 G5 C1 D6 s; m
        {2 z7 C# {. P1 p$ M2 g) l: ^
                .active_low = 0,
- X2 p& _9 d; R/ d7 q: n# A6 \                .gpio = DA850_USER_LED3,
* a% s! O: ^9 z" [3 F7 z; e7 Z                .name = "user_led3",
! E- r$ _( M) L; a# `9 W7 }8 Y$ }! J                .default_trigger = "default-on",3 c( L9 A. @  Y+ [2 b, z1 ]
        },0 S* g( }, k4 W6 D/ B
};
( [1 Z3 X2 A) f; D- @$ K, d5 m) s
8 k- a: j+ A6 ]/ u4 p0 e( Tstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. f4 K6 ]" {% O; y0 c        .leds = da850_evm_tl_leds,0 D' @, ~" K1 m* b3 B
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, z$ _1 [6 \" G};
1 N" }- @3 U' m! J- L3 F; H
8 y$ g0 ^4 b- B# b& K3 }static void led_dev_release(struct device *dev)2 ^) i# P% O: G* T
{* \# z8 D3 J8 X& g
};- O& J, Q) `2 Z( ]7 }- }
, P$ X6 \$ F' Z# V8 g' w
static struct platform_device da850_evm_tl_leds_device = {, a: u. i. C% f0 i4 ~7 ?
        .name                = "leds-gpio",0 L8 U6 M9 B4 i* t$ F
        .id                = 1,
% s  L& i6 }! [: v        .dev = {
+ t9 L  o! D! \6 {* O                .platform_data = &da850_evm_tl_leds_pdata,! l2 {' ?7 B6 E2 A; C
                .release = led_dev_release,& w) M# c  J5 z! _7 k
        }! Q, |5 T( E1 r) x) A( Q6 H
};
9 J% O' s3 I- m2 H  N  u! z) K& }( v7 ^) F8 {( f! ^7 ~# o$ `( O
static int __init led_platform_init(void)
" t& ~3 e6 ?9 S& W; M' G3 V{
$ j! \. s, {/ W        int ret;3 Y! s" s) D, `3 E, {; X5 X8 P, b
#if 01 @; X+ X0 k4 M  |$ |
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' K% A4 C6 n( j8 R; N) ?3 k        if (ret)+ U# G+ z. L7 r4 H
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
4 O8 \; }/ m" ?% m* D3 l                                "%d\n", ret);
- `4 e9 b- v3 k5 o( D3 j! g/ N) O#endif/ V& [8 ^! z  S$ f9 L
        ret = platform_device_register(&da850_evm_tl_leds_device);
* n( W) t1 ^: f1 Q: o& W: \; `        if (ret)1 W: v2 b' z& D  Y. m. p
                pr_warning("Could not register som GPIO expander LEDS");& Y, @& V6 X  Q7 a4 T
        else0 B8 k1 o; d3 L5 S2 p) K
                printk(KERN_INFO "LED register sucessful!\n");7 p0 |- B% o: z1 g$ ]  o: y$ s
2 m* v' K: V; F  I
        return ret;- r( ~) e9 a" L0 A% {- z5 `: s4 `$ b
}
0 a2 i7 A# p0 t. e+ e$ F2 S1 ]' R' U5 R7 d; t7 ]
static void __exit led_platform_exit(void)4 O1 ~  P6 |) Z+ l" ]6 i2 ?
{
# Z7 B9 u1 d' `# e+ z1 y0 W        platform_device_unregister(&da850_evm_tl_leds_device);. @3 v/ y% n4 L
% d6 V% p4 {5 {8 v% y, ~2 f
        printk(KERN_INFO "LED unregister!\n");
% v* N9 O0 p  O6 m}
" v$ n: c/ e& {3 \$ `
% Z3 O) `" L0 b* zmodule_init(led_platform_init);
. O' g; Y5 }1 ]module_exit(led_platform_exit);
8 g; k# ?% l+ z) y( R
: \/ r) s2 h8 m+ L; x* ?" ~MODULE_DESCRIPTION("Led platform driver");
- {$ z. I( m% w' ^4 w; WMODULE_AUTHOR("Tronlong");
( ~7 U+ A& k% H  e" b$ k2 g' xMODULE_LICENSE("GPL");
4 i* c8 G& o* \3 f' R% S0 n
$ j( g! d6 B2 x. |' B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 19:59 , Processed in 0.036193 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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