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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
3 I; w0 v) A, a! O8 U- R3 W" `#include <linux/init.h>- |8 _0 u: O$ U% r
#include <linux/module.h>
8 z5 ~& A  c+ N) A' X% x! n#include <linux/kernel.h>( n) R+ Q8 A8 q/ j- I9 M0 c
#include <linux/types.h>
! e. e8 C* ~5 ~1 ]#include <linux/gpio.h>
9 U0 X8 }# L! n/ L5 O1 l#include <linux/leds.h>1 [( a. b+ I1 @) y
#include <linux/platform_device.h>. m. g- c4 ]1 q  h! A

% q( w' i& O9 g. Y5 x#include <asm/mach-types.h>
0 ?4 I* U) ?/ f8 ]#include <asm/mach/arch.h>9 h1 B2 d1 h. k' @2 p
#include <mach/da8xx.h>+ u5 h; b( E* a# ?* O0 v
#include <mach/mux.h>
/ j+ h" W2 _, j) t/ t9 J
+ _; k: {# _# W/ a1 X  A#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)9 _3 t9 R& V& L- E9 Z+ b  d
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
( w. G2 a2 c6 Z0 m; _#define DA850_USER_LED2        GPIO_TO_PIN(0, 1). D0 |: ?7 s' o: f2 C9 L
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( g; w8 z% f& h3 ~6 z: `9 q5 W' }& C% X; Z, Q: _1 J! E* B$ T
/* assign the tl som board LED-GPIOs*/
1 ?+ \6 l! ^. B. a" j8 xstatic const short da850_evm_tl_user_led_pins[] = {
% [. E. d# W- |        /* These pins are definition at <mach/mux.h> file */
: G2 ?' C  L( L  ?3 Q* Z+ n        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
5 B+ i$ j! Y) v- j        -17 ?) h6 C7 X' J
};
* q; f+ n+ ^# N  _9 ?
6 d1 v% h" e& H' d0 M' G' tstatic struct gpio_led da850_evm_tl_leds[] = {/ p( D% M; e$ H: E. j
        {" G4 f: i  V9 I% x
                .active_low = 0,
% x' Y6 Z5 z1 U1 r" {+ I4 `! }" d                .gpio = DA850_USER_LED0,
6 c% Y% e( |6 O" v+ |                .name = "user_led0",2 T8 l* ~& }7 c' z8 r; \; C2 S/ i5 f
                .default_trigger = "default-on",, I& l: G8 _/ m. C% m
        },
8 ?/ G9 G$ Q! f        {% ]. K& {8 S( f1 p
                .active_low = 0,$ j% w8 S. X8 H
                .gpio = DA850_USER_LED1,
# S  z) W& q3 x3 E4 r/ p  J                .name = "user_led1",
" d7 `. Y$ \3 V; Q; p                .default_trigger = "default-on",
0 [4 \% ?7 O! a  n; ]        },
5 S4 a7 h( j. O, S8 p        {7 K) k5 V1 s& }* F/ _
                .active_low = 0,# C, T, n7 m1 _
                .gpio = DA850_USER_LED2,
9 Q9 T4 S6 f' p+ x4 G0 t  h4 v                .name = "user_led2",9 N9 ?3 h% M% _( k6 [8 I
                .default_trigger = "default-on",
6 T7 u9 ]7 g& d9 h$ ?  ~- w        },
) a" `+ V# Z2 i1 s4 k$ Z. y        {
0 s0 N0 b# J8 j. r2 W                .active_low = 0,
# S0 V3 Y4 S  y- i5 ~' Q/ a4 e                .gpio = DA850_USER_LED3,; f9 V) S; `9 h- @  z- M. y- F
                .name = "user_led3",- S# s  A  J) Q* S$ [
                .default_trigger = "default-on"," h) m! ]* O) h: M, G
        },9 J) a/ o) D1 i2 S: P# l7 I
};
) `4 Y1 F' |0 R6 Z: i# F! G. G: r# R% A
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {4 y6 j2 H8 f4 W# }+ L
        .leds = da850_evm_tl_leds,! w. T- N8 a' x# E, \
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
1 L; l1 s6 G  E, U  V};: ~  s" l' y6 i/ H8 Q, z; P
- y" @0 ^4 s9 ?: M/ \
static void led_dev_release(struct device *dev)3 c" u$ K/ t/ W
{) E2 p  V2 C& A# c3 O, q; X; \
};: `* s- M5 I# F% F/ S* M
& V8 O8 Y8 ^& x# B1 w3 i0 [( ]- m
static struct platform_device da850_evm_tl_leds_device = {
. Z* H' w& N( U1 I4 Y; D        .name                = "leds-gpio",
3 P) a5 X6 v4 C        .id                = 1,) z, z9 k! ]$ s0 ~3 Q: l, j/ f
        .dev = {
* n3 n0 }4 O) K0 u5 ?$ V2 w: [( X                .platform_data = &da850_evm_tl_leds_pdata,. ]4 Z3 _7 r( o  G& h6 g
                .release = led_dev_release,
# w# s% `2 `# ^7 m/ |$ V8 c! S7 ^        }/ y4 B  S, I' T0 Z$ m
};; S+ h0 z8 p  {  }
% c" ~5 k# s: _
static int __init led_platform_init(void)4 _. H+ n/ W8 K# g! Z
{
# J( B' t7 A* n  J- I        int ret;
/ j; S, k! i3 c, x#if 0
, a: j% R) O# l4 E6 q/ J        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 u: I* R9 N$ d  ?. c* I- W' \        if (ret). e+ E$ G& {! H* n5 g* L9 F
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% `+ d8 m' n7 X- A- X- P. c                                "%d\n", ret);" R0 l4 N* K. R8 T6 Z8 H) }7 @
#endif/ B7 s, Z: B" j. ^# d6 V5 c
        ret = platform_device_register(&da850_evm_tl_leds_device);
6 D6 \+ L, W. w2 f& W- L        if (ret), v( H9 Q3 G2 O
                pr_warning("Could not register som GPIO expander LEDS");
8 Q9 B( H( b4 w; V2 q' A        else4 r# n! H" {8 _! }. u  P& ^
                printk(KERN_INFO "LED register sucessful!\n");' c7 Y& V8 v; q+ ^: c) H2 }
" P" i9 P# v) m6 ~+ {* ^
        return ret;/ v/ E, P3 Q1 t; ^/ y
}
4 l) P1 h  p0 r( ^* s5 C! [- G
* J  P# @3 ]: X8 v6 a9 k) m# _static void __exit led_platform_exit(void)
( x2 S( }0 j/ X8 S3 O! z! t# K1 ^{
# d4 \! b8 H! i9 i3 `        platform_device_unregister(&da850_evm_tl_leds_device);
' [* y# e  ?/ [& L- f
  c" @2 w6 a; p7 c/ ?9 @7 w        printk(KERN_INFO "LED unregister!\n");
8 u( Z; g& i7 o5 O; k}
2 O, B* ]2 n' n' ]0 \2 |* e* f; n( O) o( F  i
module_init(led_platform_init);( q& `5 p1 @, [2 v
module_exit(led_platform_exit);) v# ]7 P0 Z7 a! V" G

/ D% g* |( W8 G: dMODULE_DESCRIPTION("Led platform driver");
" U8 _. y4 M4 ?3 ?9 \# g* KMODULE_AUTHOR("Tronlong");
& y; w# m2 o3 I! A0 s0 o) ~/ K5 FMODULE_LICENSE("GPL");8 Z  L4 W, E2 i

2 C0 c9 |2 r( o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-14 08:54 , Processed in 0.041073 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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