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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
# J, E5 Y( P* o# G#include <linux/init.h>
% n, o9 x. r/ E- v#include <linux/module.h>
. A) Y: O- K9 s' \: X) m$ }#include <linux/kernel.h>
1 x/ e( C; I; t% {. x. U/ l5 E#include <linux/types.h>
2 F2 M# q; ^4 h# z' K#include <linux/gpio.h>7 M9 @* X& @# ]- v  ^# P
#include <linux/leds.h>
: p* }- b+ e, c2 f" t3 \8 k#include <linux/platform_device.h>7 ~7 }( t# ~' R  T! @! i

$ `; A+ B/ X+ c/ e#include <asm/mach-types.h>" ?2 _8 X0 D" ?/ y: J+ g% k0 X
#include <asm/mach/arch.h>/ A1 \) U* ]0 c! s2 J, S9 I/ x
#include <mach/da8xx.h>/ _9 g1 ?6 U4 L
#include <mach/mux.h>" w. |, W8 p  n( J8 L, G1 ?7 f5 b
1 M- |+ B: O* \- @% L
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
# L- Z! O# Z# x6 }6 A2 F#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: [. b; }9 y1 U* z3 V#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)/ Y- V- `' U% Z6 r) Z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2). f1 p' t3 f& _, ]6 W
, a* c6 [8 l( ?, I4 M' p
/* assign the tl som board LED-GPIOs*/
) z1 U" l/ n/ D* o; m2 Nstatic const short da850_evm_tl_user_led_pins[] = {, A- Z. \; a! N; |1 Z+ N
        /* These pins are definition at <mach/mux.h> file */
( R& \: r0 U1 ]3 e        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
: t# ^5 `# d( b4 ?        -1
# u2 ~1 M$ P  [9 E9 R4 U7 T# c};
) q8 L7 M% v- g7 V5 k# l# @  x, K4 \
static struct gpio_led da850_evm_tl_leds[] = {+ k0 g% C2 ?* p$ o. v4 d. d0 t1 d
        {8 z3 o+ c" q: U7 H( X( G, f1 E
                .active_low = 0,
+ t" m! W8 y2 ]$ c                .gpio = DA850_USER_LED0,+ V- Y5 k  q( F2 |6 p
                .name = "user_led0",
  h  K) L' k7 a* L5 t0 E                .default_trigger = "default-on",
, _! j0 o- P8 n1 a9 c- }7 K3 E        },8 C" c6 g6 h/ L# \) {. |
        {% c5 S1 q0 p7 E" M+ [
                .active_low = 0,7 S' a+ t' {" V7 r0 A: R4 n
                .gpio = DA850_USER_LED1,- \- a( M) Y7 ]9 g  G4 l+ ~
                .name = "user_led1",4 X2 Y7 J: p( m7 H
                .default_trigger = "default-on",
4 i2 r$ B% L5 m/ m        },. ~7 |& u+ }9 Y2 D) S* W7 y0 @* q
        {4 n( }9 J8 O1 n) V% q6 V' o
                .active_low = 0,
; {3 l! a0 l7 ]$ @                .gpio = DA850_USER_LED2,$ o7 _+ o# g. p* C! x$ Z4 U
                .name = "user_led2",+ t* U& v5 I4 _3 G
                .default_trigger = "default-on",4 t$ d  z9 T! k% S) x# n. N
        },
& f& a, z1 ^) {" U% @        {
' `9 \3 y. p7 J6 u                .active_low = 0,' ^6 ]/ V  N0 y0 G! c
                .gpio = DA850_USER_LED3,+ b# x7 }$ m- X$ U# @& [$ k
                .name = "user_led3",
; ~# G) K- h) z) f6 @                .default_trigger = "default-on",
0 ^* ]5 B2 ]4 y0 \! \  U        },+ M. D1 A! R9 f8 N' |5 [& w- J
};
: [3 |* C! \& |! B
/ v/ B0 ^( |# P1 [static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
9 g2 P- ?2 R2 D        .leds = da850_evm_tl_leds,7 F4 Q7 U$ |3 e/ x) \* I3 [
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),: Z  z& |' X# R4 _* i2 N! a9 D
};$ m. b- m( _1 l. @
6 K0 s3 y4 S6 h! d+ r; S& c, N
static void led_dev_release(struct device *dev)
& L' ]) n0 s% A4 c{
/ o; {4 y# x, l* g$ e};  r5 D/ F( j% E$ s7 ^* L% v
& M% ~2 i) ]0 ?% T
static struct platform_device da850_evm_tl_leds_device = {
6 B' n7 \/ P5 E* T& F        .name                = "leds-gpio",1 Q$ `8 r  }4 m+ [- a
        .id                = 1,8 L+ O$ b( ]7 R
        .dev = {
' E- M# G0 U0 D" A1 G* v                .platform_data = &da850_evm_tl_leds_pdata,, w) d6 W4 D( _# {
                .release = led_dev_release,
% B8 m" ?/ i3 z4 J        }
$ o, L% ?4 b( \# Z! e2 p% C};2 J  \# X0 J0 s" n& G

" J4 b5 ?7 ~. K' y5 p) Hstatic int __init led_platform_init(void)
- g5 G# ]7 ]3 g% I' x5 Y7 u2 g{
$ a1 `8 R' A" ?5 D) J        int ret;$ K/ `; T, c- G. i- h6 k) l
#if 0% D- ^# w+ y7 P  {) N  K! m3 ]4 a2 U$ a
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
+ E$ R; H$ c( G1 u5 J! }5 x2 U        if (ret)4 \. n- C: v* S; D: i
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
" U7 }! |1 ]' L$ {5 l                                "%d\n", ret);
$ J6 L$ G$ I& c8 S) M#endif
7 T2 W' r6 }: M8 f! ?% b        ret = platform_device_register(&da850_evm_tl_leds_device);
5 E# p, ~5 k/ U8 m' f# E% h' p        if (ret)9 f% k. b( H& d2 g  y
                pr_warning("Could not register som GPIO expander LEDS");
9 |# C8 t( ^7 y* z; ?        else
- x; b+ j. X# P' q                printk(KERN_INFO "LED register sucessful!\n");) E' U0 m; Q. Z( C/ E* \$ [

! d3 x, X% d* p        return ret;
0 P! o4 W/ Z) Y' o}$ D) o; c9 \5 {, Z+ f+ v

& W4 a/ S) @# `3 E# {: U% }2 `: rstatic void __exit led_platform_exit(void)3 d7 W. z: j& Y' I8 L
{
8 I8 x+ _9 z1 y( ?" @& b        platform_device_unregister(&da850_evm_tl_leds_device);
: [! M& ?. G  x2 }3 ~+ r  ?! E* V& Y0 }) D- b
        printk(KERN_INFO "LED unregister!\n");
4 ]9 y/ }% w- Q' s5 ]; R# K5 O. S) A}2 g" J% f* m* ~7 A; G/ _. d) E4 V7 X) ~
% q+ R# q3 L' B
module_init(led_platform_init);
# v. q9 ~( Q" cmodule_exit(led_platform_exit);' _8 g( e- \) W0 I# q; |0 h9 G/ v* d

" C) U- W- E% n: K9 _MODULE_DESCRIPTION("Led platform driver");7 o% F# [- C$ C
MODULE_AUTHOR("Tronlong");
" ^/ n5 h' t8 L$ k0 ]MODULE_LICENSE("GPL");
+ Y' b$ l0 u- x4 J0 O- F1 ^% }( s; n  g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 10:57 , Processed in 0.037583 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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