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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。4 [* G2 ^" a+ i' t" [. @
#include <linux/init.h>
* k+ k" p8 T9 ?7 P. a6 w#include <linux/module.h>
/ y. A4 O0 A4 G0 q( d* q9 X#include <linux/kernel.h>
% D/ i: B/ l/ K9 Q: L) x#include <linux/types.h>
8 ]' z5 H, _% s- S( g. @3 i3 v#include <linux/gpio.h>
& g  z; [$ P/ F7 l  |#include <linux/leds.h>
( k4 t! l* z" A- T* v#include <linux/platform_device.h>$ N0 f6 |; {" |3 f: t

5 T$ F$ N3 J0 e& G% g#include <asm/mach-types.h>' [# W9 x5 t' d  Q* I. _
#include <asm/mach/arch.h>) S) @5 X( a" `$ P' n
#include <mach/da8xx.h>! E- Q7 d/ q& j' g8 L
#include <mach/mux.h>, O% @/ T* u: Y* v

$ a; |$ O' R7 G+ E, ~#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, J2 ], o5 }: ^; H1 v% `#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)" w% O1 k7 f. H! j
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 E# a7 w8 ~* ?. y) q: L' ~#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 g4 N1 Y2 K7 W/ E# |( ]
# H  }) N; f  X5 s$ N6 I0 @
/* assign the tl som board LED-GPIOs*/
+ z1 @0 G% z  m- b4 p$ sstatic const short da850_evm_tl_user_led_pins[] = {
. K$ J4 U8 @: G7 e0 Q0 o        /* These pins are definition at <mach/mux.h> file */# @  e2 z0 b& K1 O, p3 T
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
& E7 W$ N& V; @7 X* b3 }        -1
( M" }/ x: \7 N% q0 A# V3 ~9 f: \};
4 Y6 S5 g* \* J* r9 B3 ?% n5 i3 p( t4 j( N9 N
static struct gpio_led da850_evm_tl_leds[] = {- o4 t4 O2 E* t& K- \# \: h! |
        {; o' z9 h, f$ V6 R& O# b' C
                .active_low = 0,
4 l0 @' s% b( H! D0 c. i4 |                .gpio = DA850_USER_LED0,
* r/ [- c$ l# `3 x* W. A* u                .name = "user_led0",
0 _) i9 ]0 M: T) X0 G' |& P                .default_trigger = "default-on",
/ J) a- t& a: s        },
. N1 t% I2 ]( y( e        {
2 H9 c; K, e9 O: c                .active_low = 0,( _9 U, P: `; O6 S( F# U+ X% `! u, x
                .gpio = DA850_USER_LED1,
0 R$ x& K* s5 l1 L% c4 Y                .name = "user_led1",
# H4 y- s1 y/ f                .default_trigger = "default-on",! k0 T$ t' e' c; b" u9 u; G# Q" P, b
        },
9 C+ o) ?0 |( R) W        {
4 O9 m' t( `# }3 k* w                .active_low = 0,7 T  m  v# s! i& T% C! ?; ^$ e" Z/ Y
                .gpio = DA850_USER_LED2,( t6 u& t! ~6 m8 [7 Y; n
                .name = "user_led2",
: }, s+ ]) ]$ ]0 y4 ]                .default_trigger = "default-on",
0 H2 _5 a4 y2 H% H) t        },
1 h! j) \! ^( |6 b! R3 k        {8 y. W7 `/ \2 o6 @! k' I
                .active_low = 0,; h4 ^$ H6 q7 P7 G4 {7 E! j4 I
                .gpio = DA850_USER_LED3,9 U0 l2 T+ o6 z5 O! m! b
                .name = "user_led3",4 W+ i/ O0 o. S
                .default_trigger = "default-on",& S& G6 Z) r& X3 B/ y
        },
; e) w: X3 C! M};
1 B7 s: o5 D! \5 A% ?6 \  s7 h. l9 e7 J' Z% \1 p0 X- Z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {* C' n1 Z4 Z, x
        .leds = da850_evm_tl_leds,. ?! @$ N2 v% N
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& W+ X+ U" F& M: a3 C. f
};
/ T4 ]& k. I7 K7 R9 q* F9 c3 q: z8 Q0 Z7 Z
static void led_dev_release(struct device *dev)
% C4 L6 b8 ]3 H' `2 \1 i{- Z+ N8 w- ~+ G% E
};8 G" J0 V$ c! t  w( j! }0 {' v( t
. U' B( @" N- k. F) u9 C' r- J
static struct platform_device da850_evm_tl_leds_device = {
0 }5 z; H  y; R: N        .name                = "leds-gpio",3 N# d- ~6 ]7 R, k( E
        .id                = 1,1 N5 A2 m8 y! B# X4 W  h, A
        .dev = {
9 A: a: z3 u& \3 i+ p                .platform_data = &da850_evm_tl_leds_pdata,5 H! v- n0 l* t) C
                .release = led_dev_release,
( w- {. A& J2 K7 t5 \3 k        }
: X# z  X- k- m1 c% [* K5 S4 @};
* v. i- r' r- F" B* b8 @
- u! w3 {3 U% H- Astatic int __init led_platform_init(void)
3 u  V* U6 a: d* C1 {{
" k. @: F; a- X* T- t$ |3 A        int ret;
2 X" R8 A8 |! W( t# G& C5 U0 B#if 05 }5 p# D! R  e
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
4 }9 F$ C& s1 o$ x& |$ h: V        if (ret)
" e  o, @/ i  D8 M, _                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"4 i* n/ H% m0 n) I& E1 f
                                "%d\n", ret);1 I/ F" c& x/ G: m- @4 X1 g5 J
#endif
' X4 c. N, `3 B( L$ s3 R0 q8 L        ret = platform_device_register(&da850_evm_tl_leds_device);9 @/ g. }3 J  ^2 @5 T, t: R
        if (ret)! S' U' o+ p9 ?4 y7 \
                pr_warning("Could not register som GPIO expander LEDS");! D9 l3 S9 O5 `/ l( p
        else6 |' b  n* ]% J1 ?$ j/ K
                printk(KERN_INFO "LED register sucessful!\n");
- K5 E8 U0 ~# z% _! p5 r3 b+ g. U) |0 C8 R+ S1 T& \
        return ret;1 G6 {" ]7 O* l* s3 }/ Q( ~
}4 n: C$ ?4 t/ ~/ r

) @# u8 z7 _; o% C$ N7 Jstatic void __exit led_platform_exit(void)) \+ b+ i9 Y- p4 O
{
8 a) D0 |& V9 N8 a7 ]        platform_device_unregister(&da850_evm_tl_leds_device);: g: ?& H# E/ L! @
+ e+ R" u0 ?; B" ^; H( T& U
        printk(KERN_INFO "LED unregister!\n");
! k) Z: V9 H$ l; b6 |0 u$ E}( K4 F$ z# Y4 [% O4 m3 v5 O0 ~- }
! Z# N! \1 p- b8 H
module_init(led_platform_init);
" g) H! A+ [* F8 h# q7 f8 w) s2 Fmodule_exit(led_platform_exit);
4 e+ D& y; b$ i& z
2 ~& c* X3 l/ a0 k4 R) p3 _MODULE_DESCRIPTION("Led platform driver");
0 |1 _! Q  H/ UMODULE_AUTHOR("Tronlong");
: ?8 X2 e' z- o. I# [MODULE_LICENSE("GPL");
; `# S" p8 i$ O; J$ I! \$ n. E9 I4 T; P9 n# ]: V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-16 17:10 , Processed in 0.038296 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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