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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。* x, J3 ~/ L) e2 Q" w
#include <linux/init.h>! t1 ~2 v+ t' J( j8 v' H" y
#include <linux/module.h>
4 B) i! v  _& M! ]#include <linux/kernel.h>) q' y0 N/ l6 T2 _) w) }, A
#include <linux/types.h>1 c/ B( A; `( x& ?
#include <linux/gpio.h>
: Y+ @; o# D$ z$ I5 V. e2 U- |#include <linux/leds.h>
6 y* D! c! S; H5 W& }2 d$ w: B#include <linux/platform_device.h>7 U. X. V6 m6 S! s$ Z

# z$ h4 l- T5 t#include <asm/mach-types.h>
6 c3 n$ M  m2 q/ {) A4 v6 L1 D#include <asm/mach/arch.h>
- J; `5 k% ]/ G; R7 O2 \6 }' t#include <mach/da8xx.h>
9 s  C: F0 T  ?- F  j1 O! P; v#include <mach/mux.h>
. |' @4 _9 X0 x9 j! J2 d
$ p9 l; ?' N0 A1 J#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 Y1 j5 P) k8 Y% D( s2 q* `5 E
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
& I  P  m  q  F: l$ f#define DA850_USER_LED2        GPIO_TO_PIN(0, 1). K6 y0 V% _* N! ^+ \( M* _* P
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)2 z3 g7 x9 h% i4 g9 c- f
% o/ E; Q9 n$ [' D& p/ t$ t( E$ a
/* assign the tl som board LED-GPIOs*/
, P5 \8 W( y( `/ y- Gstatic const short da850_evm_tl_user_led_pins[] = {# A+ Q% {0 N- s, h6 X/ l/ B
        /* These pins are definition at <mach/mux.h> file */  `8 G; ~+ j! A4 L/ P
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
7 |- _: \4 G0 U3 W5 v4 l- W* r5 J        -1
+ ~9 o# ]: z8 T  W9 m};9 p" H1 O7 Q& ?5 w' K0 o5 Q" B

1 D* O, X! L' dstatic struct gpio_led da850_evm_tl_leds[] = {* @* W0 l. S6 q; i: O6 M% k" E2 j
        {$ G7 `7 ?& K* L7 l+ n: L
                .active_low = 0,/ k$ c. q1 z. t& o! r" f
                .gpio = DA850_USER_LED0,6 u- x- I2 s3 @) j1 o
                .name = "user_led0",
# P" {+ \0 r8 @/ p/ Y3 ?* N                .default_trigger = "default-on",
! `# k( ^% B6 y        },' a" W' u. g9 k8 R$ n
        {
1 j9 W  p- t. Y6 S- d5 r                .active_low = 0,4 ^3 A; \  _% [  i; L6 G5 N' E
                .gpio = DA850_USER_LED1,
$ |3 T4 c; D3 a                .name = "user_led1",$ |8 E# K8 B! l9 F' g0 Y8 Y* s; X
                .default_trigger = "default-on"," a" }% B" [3 [
        },: S3 N4 Z( S& X( U' L4 N
        {
8 x: C, L& L! j' Y. b1 ?                .active_low = 0,2 Y$ l7 _. [( h/ V
                .gpio = DA850_USER_LED2,! B0 D2 K) e9 z6 T
                .name = "user_led2",
" {! ^$ K. L7 U' F' n                .default_trigger = "default-on",  r" x1 R# X/ j+ G9 g4 R' F
        },# ]: h* y) P* }
        {4 K& Y- S9 V* ~9 T5 Y& c$ I7 a
                .active_low = 0,7 \6 J! z( \3 }6 |1 o. Q/ d
                .gpio = DA850_USER_LED3,3 ]' F7 R' X  `, L2 \. {8 D, r. U
                .name = "user_led3",
2 g) [) Z3 s, |5 h  @                .default_trigger = "default-on",$ D, F# a. L% m0 s" O1 v- F
        },8 d" l% N- w* S" g' x2 |. F
};
; r9 U8 T4 w* \4 }4 m3 P( Y: |, Q5 |( D
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* C# R1 O! i6 }/ R7 w        .leds = da850_evm_tl_leds,1 V+ J1 |- E" M
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
5 w/ i; |% C9 ^0 K% t" z* ]2 G};9 o2 L9 |  L( N2 q
4 }; |  I: P! Q- C7 ~8 ?
static void led_dev_release(struct device *dev)/ W# E; R. o, V$ \
{: ~6 S2 l8 r. e7 H. n. T
};9 u5 m/ m' Z4 t1 ]; e

3 ?0 x4 i2 p- Y1 Y7 }' Estatic struct platform_device da850_evm_tl_leds_device = {8 M% j* f5 v+ Z
        .name                = "leds-gpio",5 I5 g1 |4 I! [# F; p. g$ ]
        .id                = 1,
# Y6 q' `! d5 T! i        .dev = {
  g& e6 F0 w6 \4 f+ `                .platform_data = &da850_evm_tl_leds_pdata,) |( I, k' i" K* N
                .release = led_dev_release,
' g, e$ {! I/ P# }" i        }" X9 D) _/ q. J4 a9 X
};
3 t# f$ n& D( O' @; ^  ^  |; S% v1 c; z* Q0 l+ L
static int __init led_platform_init(void)
, c  [, @5 l6 b{& M/ _. {8 h. a  h6 t
        int ret;. g; m& `, a2 M% e) B& l7 Z
#if 0+ q  ~! E: h5 [; c! J" j8 ~
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);# d% v- j: J2 I( K' H
        if (ret)/ _0 i3 u) k- A7 j* o
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
' C. o  v. c, U' @                                "%d\n", ret);; Q! H: q+ E2 s8 l. N- p
#endif) }! ^& Y; a" S$ {1 L1 j" R
        ret = platform_device_register(&da850_evm_tl_leds_device);% H6 I- L0 ?' {8 g% ?" S, Z4 K
        if (ret)! g! X6 m' v0 Y! w  _$ ^) P9 P
                pr_warning("Could not register som GPIO expander LEDS");
2 ~. L! L; g% d9 B+ v$ o$ g3 ]& K        else" n& r1 f0 M3 {9 D- ^
                printk(KERN_INFO "LED register sucessful!\n");/ ?+ b/ R6 a  S/ A( S* Z; z& W

3 _$ {2 |. Z! p        return ret;
/ [, i: g# I4 w}6 \. v4 ^6 m" R$ H9 J

9 K( E. ~4 t) \7 a9 U1 x- Estatic void __exit led_platform_exit(void)
, a0 K$ H' V: M  V( c{
, V! P8 ^- w5 F6 c; \1 [) j( f        platform_device_unregister(&da850_evm_tl_leds_device);3 E) O( {; y, I9 ~8 L

7 V8 p2 Y, M+ Y1 f7 h0 f        printk(KERN_INFO "LED unregister!\n");: F- k9 I: o5 d2 n
}
3 X4 a3 C7 t( B6 n( ]8 k  z% z( w: Q! A' I4 u6 v8 P! p  D
module_init(led_platform_init);
0 y" o( ^( u" X6 z" n) ]9 ~module_exit(led_platform_exit);
2 @; ]: x- ]% v3 Q  p9 N( P- j1 I4 F! f: m
MODULE_DESCRIPTION("Led platform driver");- B8 m8 R" n4 [+ C
MODULE_AUTHOR("Tronlong");- Q3 h1 H3 }6 N8 k& g: v
MODULE_LICENSE("GPL");/ \% S' r' D$ Y% r' J' s# O; Q

1 O2 ?, I" f2 {+ ~$ r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-3 02:56 , Processed in 0.044781 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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