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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
( v- Z# e  Z7 @, T: P#include <linux/init.h>
- \$ ]# E9 z2 f3 F/ B#include <linux/module.h>, x& u' \- m: g7 q2 y9 m# `0 v$ A
#include <linux/kernel.h>
5 r7 [1 s) x+ |5 u  f) P" u5 @#include <linux/types.h># \6 w: a; q& P
#include <linux/gpio.h>
/ e4 a2 U6 d3 B/ N#include <linux/leds.h>7 {2 E# H3 e5 }0 E" |1 Y0 I
#include <linux/platform_device.h>
5 R9 R" J- q# o4 C( S% ?& `; S4 J0 Z
, g: ^0 s7 i, ~5 r% c5 u#include <asm/mach-types.h>
: ]" P) V5 U! }! ?* D" P#include <asm/mach/arch.h>( `% q" }. j) X- z/ v' h
#include <mach/da8xx.h>
! `0 s6 @  `* a& |#include <mach/mux.h>
* X: @& ]9 F& ]4 i5 f/ d# t/ K* Q7 ]7 p8 t; l" L
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 _+ R4 S! H4 a9 z
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
/ v7 O! Q' y4 A/ \+ f# W! o#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 B. u1 r0 R0 I9 `3 m. G, V7 M
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 c. a5 P* H3 @! Y: T+ N1 F+ @) c6 H0 r
/* assign the tl som board LED-GPIOs*/: I8 G9 H% c: F+ R- r, N9 E
static const short da850_evm_tl_user_led_pins[] = {- ~3 f5 X. _( [0 U+ `( Z  W
        /* These pins are definition at <mach/mux.h> file */
- F; r, _; h0 ~        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,0 G8 O% C6 G9 Q
        -1- r* P. w0 N: p
};; j8 w/ f# H  c8 C. |/ k8 M! C
# f8 V; O+ H8 d1 B
static struct gpio_led da850_evm_tl_leds[] = {
& W$ \! x( E+ J        {9 C9 g7 |* R0 m" i# F+ J& z
                .active_low = 0,' v" v1 A  m3 ]5 b( k- b- b8 S
                .gpio = DA850_USER_LED0,! U4 [, H- |) A4 J/ L7 R
                .name = "user_led0",+ c* _7 k( l* {, _% c
                .default_trigger = "default-on",( ^& z! m" g( h  V) G. ?1 L
        }," W$ }1 L- ]. f4 B8 p' h2 A
        {
+ b  M* x5 e. V4 b2 L                .active_low = 0,
3 {5 L2 ?+ v' @1 i/ v                .gpio = DA850_USER_LED1,6 J3 R. x: r6 Z5 R+ v
                .name = "user_led1",. p9 L+ `" ]% W3 T
                .default_trigger = "default-on",' P8 L2 X& y0 o7 |9 q; B! B) \9 y" u
        },' c' j0 ^7 D6 U
        {
5 n; k% Z2 K6 t+ o6 ]( e                .active_low = 0,+ U& g7 U7 t( s( [
                .gpio = DA850_USER_LED2,
) h) Y! z( |$ f6 [* B                .name = "user_led2",
* q) T5 }% |0 |3 X0 {. Q                .default_trigger = "default-on",+ }+ O$ [, Z! F4 O5 \( v  U. G8 c
        },. T7 y) F9 |* H# K( p0 o2 }+ k' s
        {, u1 j4 K( e% c, b8 b6 p4 U- C, G. C2 [
                .active_low = 0,/ r% h! K$ ]' ~8 Q
                .gpio = DA850_USER_LED3,
$ ~0 B. O2 k, ~( Y# `                .name = "user_led3",8 x9 x+ M# e6 L  s  w
                .default_trigger = "default-on",
0 P: L# w: [& I3 E; ~3 ~  Z        },/ H2 G' h& n: X- `3 `+ x
};$ ~. G7 ]+ d/ K/ o% ]- |. r7 d* h: s

4 W7 p5 q: G5 @! H! j" [static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {" P7 n, R/ q6 @2 p. i& J
        .leds = da850_evm_tl_leds,
- E& n0 ]9 q6 K) ]        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),0 R  G) c" q; d' w/ j
};
! T3 {& P9 [) n" T' f) G+ g; m+ `% u
7 c' ]7 F2 q) s6 b3 i1 V9 O; R- {0 \static void led_dev_release(struct device *dev)
% h: {* y+ b. r: D- ~8 J# T3 L{
. Q% f9 N3 \& l2 k) ^7 ~  W* M};
. ^7 O8 z( D3 _2 L0 w
# E8 i" _& p0 m- V! Qstatic struct platform_device da850_evm_tl_leds_device = {1 ?% D/ Q2 ~1 I/ z* b! M7 ]7 }: `
        .name                = "leds-gpio",
6 H, ]$ b9 L+ ^7 J6 G        .id                = 1,- ]9 a9 x% O2 X6 u
        .dev = {
* v) J) m/ @* _& U& J) }- [2 B" m                .platform_data = &da850_evm_tl_leds_pdata,$ L' }9 L7 G* `6 ]
                .release = led_dev_release,- X8 X) V$ ^* p4 g+ x" I: R, ]
        }
1 d( B! J7 Y0 t2 e! ^( Q3 @};$ W8 v8 A0 G! m# F2 P; X' C8 j

4 }* y! L. D% N. K, F' _  ]% \static int __init led_platform_init(void)& w6 @8 x* e* n
{+ g7 r* ]% i' a- _& w
        int ret;
  x  ~( J& X, q. p#if 05 r6 G' G' `8 q, s7 Y6 E3 Q0 L
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
$ P/ `" C+ j3 H1 P/ U2 j2 S- D        if (ret)
7 ?  q( f% W% T5 [2 j' ], m* p' Z* w                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ S- F& B0 M0 b2 a) w* k7 H
                                "%d\n", ret);
, f# y, e) Z4 W5 v, K#endif
& X, f3 l- i( ]: b        ret = platform_device_register(&da850_evm_tl_leds_device);
8 C# t+ K% ~2 h. G; g, G0 H) p) t        if (ret)
4 q! P) ~4 U8 y! |: ]% J9 b' v                pr_warning("Could not register som GPIO expander LEDS");8 F5 D; D/ x) ?3 F& J* }# c; Z
        else: q+ {/ I5 j3 |2 i& @, A
                printk(KERN_INFO "LED register sucessful!\n");
8 n1 C1 `: w5 G" p; C" w8 p3 b5 c% n
6 L2 D& P; }5 V5 ?        return ret;
0 K* C7 m9 n" [}
3 q1 B5 M" r# ~: B4 A
: `% h& [# c* A  v! g# e: ]# P# U* ^+ bstatic void __exit led_platform_exit(void)7 G$ `( |# F3 s. ~' q& L# _+ p2 c
{8 |4 n5 ^8 B, X# _
        platform_device_unregister(&da850_evm_tl_leds_device);0 y8 P* [$ v+ j+ I: F  W2 X

8 P. ^. c/ o" _5 w. W# E( ?& q        printk(KERN_INFO "LED unregister!\n");; _$ N1 d" ]* T: r
}
% P5 h& [+ [% v1 t2 n: W# H7 F% a4 B2 k3 ~' r& I6 Q+ N+ e+ P
module_init(led_platform_init);7 r0 X4 D* C/ o1 }9 |1 w# v( e5 u
module_exit(led_platform_exit);
7 Q1 C5 k6 L# e4 `
$ {# f; l3 O& z6 o3 |3 D. a$ z0 IMODULE_DESCRIPTION("Led platform driver");
" q1 k$ {( n1 d5 yMODULE_AUTHOR("Tronlong");& b8 @" x/ t0 @3 Q, o2 ~% j/ J
MODULE_LICENSE("GPL");
- L- ~  F2 Z7 X! I* L
" X' y: E, r2 R1 C2 ]6 Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-31 19:25 , Processed in 0.043433 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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