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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。  u3 d$ Y* L. E( r
#include <linux/init.h>3 F$ r; e; m' K5 P3 t/ q2 V  s3 G
#include <linux/module.h>
# o& Z9 L. x+ i' c* u: N# w#include <linux/kernel.h>
, N6 T0 s8 }6 I1 f4 O8 D* r#include <linux/types.h>
! C9 W! N$ R: m3 V) N; [, O#include <linux/gpio.h># ]% O$ g5 I; z  Q+ |# k( w
#include <linux/leds.h>
  T3 i" S: [7 v" k7 K3 A#include <linux/platform_device.h>
4 W, t' c, k7 }9 j, w
# z1 A/ W6 l- Z! y& b#include <asm/mach-types.h>
/ k8 ^1 A( k! }- f#include <asm/mach/arch.h>
# n& W0 C1 ]" }: W4 {+ q#include <mach/da8xx.h>. j! F2 a* ~7 ^; c: R* U
#include <mach/mux.h>) v0 ~  b9 h3 s3 h3 x' k
" H  A2 ?  u' k9 B' ^& y* X, d* }8 h5 n
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)  w' b; u, Y3 s# E7 X
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 R9 z9 n6 S8 y/ M# R#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
+ w* L9 w) Y& W; N. o#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)  H! e( _$ r9 e
7 f; [8 O' x5 M3 x: _$ W" B
/* assign the tl som board LED-GPIOs*/. i" B7 Q) w8 X/ k7 y# q
static const short da850_evm_tl_user_led_pins[] = {
0 K% j1 e! u# J8 D6 q- x+ w        /* These pins are definition at <mach/mux.h> file */& O% a/ j$ e9 d: h
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,5 J1 y& H& h4 Y. O: j6 ]  t0 `: x
        -1" W% e% ?5 O* d7 [; F1 c% o6 V
};
: E6 d; r8 Y; {" `3 z3 w; q% p; P' t
static struct gpio_led da850_evm_tl_leds[] = {
0 }6 \8 e8 r. M) ?        {- U" [5 ~6 y3 F4 e. @
                .active_low = 0,
$ v. M+ b: p0 `( T1 t                .gpio = DA850_USER_LED0,; E2 }# d3 z( k, X
                .name = "user_led0",. ]* I+ i7 h1 W  ]9 e1 \
                .default_trigger = "default-on",
& ?/ o) H7 N5 R, P3 a$ s3 |        },- d8 D' T, a6 p7 M+ V/ A7 ]7 z! E8 S
        {
- B1 h! [2 [$ Y0 k4 Z4 v3 x                .active_low = 0,* `9 ]. x% k* m% U! b, w
                .gpio = DA850_USER_LED1,
( f3 Y- Z% c' v$ |) b! x0 p* ]                .name = "user_led1",
5 O  u2 v  K7 h/ u                .default_trigger = "default-on",
& O+ S' T5 [8 g' `        },
8 Z7 [0 Z/ {& u7 I9 y        {
1 b" s$ h+ i. {# x8 p6 @                .active_low = 0,
% _, \. G+ q; e6 v                .gpio = DA850_USER_LED2,% [' f3 V# h* J5 E; A; P8 x  G
                .name = "user_led2",
6 ]2 h: N% I4 p7 V                .default_trigger = "default-on",
7 W; x% p: k: S2 b        },' [+ ~4 B: |, V5 M
        {
: e. f! q' v% [+ H" r9 W, c                .active_low = 0,
7 c9 q: }+ S: \$ M                .gpio = DA850_USER_LED3,
! P, d. _' ?  V+ y' N                .name = "user_led3",' C$ w9 }# }  b
                .default_trigger = "default-on",0 l0 L0 ?& X# N, D
        },
' l- n6 P; f/ Z+ M" Y# q};1 U& z; z: o( X* r8 ^

' y) b, E& j3 O! j( ]static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 h" T5 r) g9 W, P$ \
        .leds = da850_evm_tl_leds,
" r4 J: V. Y: Y- y0 e        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
8 r( y' Q( u2 Y0 R" p};% m5 O0 ^& J, R! I

* w8 e' I6 l1 k% h1 g7 E  m; j) ?static void led_dev_release(struct device *dev)
* C" W* `! [; m& Q3 L& u$ h{; h. B2 a! G+ D( g; D* V
};
0 p: X) L! \7 U: X. P. ]- Y9 H8 }
0 v5 Z, ]! F# C( ostatic struct platform_device da850_evm_tl_leds_device = {% g: }/ a6 `% W4 `
        .name                = "leds-gpio",) e+ [# {* u+ [/ D5 u1 y7 l6 I
        .id                = 1,
( q$ D( t" h: r0 V        .dev = {: o; ?' z, r% W" ?4 P
                .platform_data = &da850_evm_tl_leds_pdata,
. q% [/ _3 ?/ B! D: J3 a                .release = led_dev_release,
" p7 _- Q4 T. G/ Q6 J& r        }
% F5 V* g! W' @6 s};
. v  `7 n8 I7 w  `9 X' F1 ~: o; ~7 B3 J! ?
static int __init led_platform_init(void)% ~7 J# j! H3 v# T5 F+ e" @
{; L# Z% A: O$ T8 \: G. x4 g- K3 V+ e
        int ret;! s4 U/ Q. E: Z. i* d% q5 z
#if 0
& J& K  x1 \' {7 C        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
% g' q$ m5 R! l, x$ r        if (ret)' K) ?* i- |/ J, }5 d# D9 N1 |4 h
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# k9 {4 Z+ B5 e. C/ x  Y                                "%d\n", ret);
/ C, g0 _! T6 ^#endif
9 j5 \" ~+ S2 M( M        ret = platform_device_register(&da850_evm_tl_leds_device);
/ Y/ h5 K! @# T* i% t! Z( O        if (ret)& H  N# A+ Q- H( [- I$ c  z% B
                pr_warning("Could not register som GPIO expander LEDS");
3 c" f- P# s$ x+ x7 D        else
. s& N" p+ t& t                printk(KERN_INFO "LED register sucessful!\n");3 }& ^3 k, e6 |8 B! a- B

& e8 T8 w- F4 X, w' E! Q        return ret;# p7 Y# Q! h- }. d$ t9 K5 m
}5 }+ }# a. e$ o. M% v
9 R) L- p5 e5 J( O+ P4 P
static void __exit led_platform_exit(void)
6 V/ @" `8 m& e: q8 m, v{% o$ m9 ~/ j# t
        platform_device_unregister(&da850_evm_tl_leds_device);
. x4 z% n0 x$ u* {! a* N
+ `6 `- C) V" [7 s        printk(KERN_INFO "LED unregister!\n");
6 }% d% h8 ~- F: l( Q6 d0 \& g}
3 ^6 u6 i& ]) p" \5 b" M( }
2 r6 h- k- p, Z% l6 W' hmodule_init(led_platform_init);
) ~, ^5 w, c0 `& y6 umodule_exit(led_platform_exit);
: G% {5 j9 e) X( i
. W. Z* N, ?% d+ PMODULE_DESCRIPTION("Led platform driver");
9 S( d7 o7 B3 y! ^: p! l3 TMODULE_AUTHOR("Tronlong");: `, z& g& L: |+ @+ f$ a
MODULE_LICENSE("GPL");" t# C( }6 ]4 C4 s0 h+ y1 `4 _
9 M0 U$ `1 b( X1 h, s8 |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-21 02:23 , Processed in 0.040361 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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