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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。' C4 @4 m, s" G- D( Q
#include <linux/init.h>
4 E* d% I! J- c; P: V8 j#include <linux/module.h>8 h0 h+ [/ U1 l4 w
#include <linux/kernel.h>% F5 F1 y5 p% c7 r
#include <linux/types.h>/ h/ J' o5 A# G9 \2 j
#include <linux/gpio.h>" \1 ?9 E6 P5 |) u( w' J
#include <linux/leds.h>, Y; C; b2 M7 _% P* A  B
#include <linux/platform_device.h>, T. q9 e$ [1 U! u# F- ]

/ h4 x- }6 n. K' O" q#include <asm/mach-types.h>
& H6 E* f8 R* Z. v#include <asm/mach/arch.h>( ^" G' S/ a- Z$ V5 S; s8 O7 x
#include <mach/da8xx.h>
2 }+ p$ c  @: d* y5 n#include <mach/mux.h>
: r' ]& T/ K5 M6 [) f
' S6 \# ]" p4 D& D' [9 j#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)4 V  E4 D* Q0 H. g; N- H6 I. J
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)5 r0 Z9 R: n' O6 n% m0 g
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
, l' O( _" ~, C! \$ }3 c#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( |  v+ K3 h9 {# Q* W. r; k0 V
# i  h# @! w1 X; q1 m* U# ]+ o4 z! E8 m/* assign the tl som board LED-GPIOs*/
; G5 d/ T# I. n" ostatic const short da850_evm_tl_user_led_pins[] = {
' B0 r6 ]8 u$ V+ B. A/ J        /* These pins are definition at <mach/mux.h> file */
, r* T7 F% j; H0 \* G* K3 U( O        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,1 g0 O6 ^* E$ g2 x
        -1
4 Z. `1 y: [& s% B, \; j! T};
3 W! G6 Y* _3 o" V: n! ?; o  n
( G" H& e& |1 H) Q& o# H+ C+ f3 W0 qstatic struct gpio_led da850_evm_tl_leds[] = {
9 X& }6 c0 b- Z* n        {
9 _3 D. X+ y8 p5 c% l9 I                .active_low = 0,
& j. ]5 Y2 s+ e; H- e6 q                .gpio = DA850_USER_LED0,
6 E" r: ~1 A8 W8 I                .name = "user_led0",
* o4 ]! Y1 I( R$ p. b6 \( V- t                .default_trigger = "default-on",
5 L9 E7 i' q0 |# }        },
! P0 S. o+ ~( {+ w( d1 l        {$ N2 v  E8 n5 ^. E0 y1 b) G
                .active_low = 0,8 q% z2 p- [" Z+ u  T
                .gpio = DA850_USER_LED1,. b# j, V6 H$ f( R  R$ Z
                .name = "user_led1",$ c/ s) N! S, B1 g) S
                .default_trigger = "default-on",
: g9 O, P4 l# T! }0 T        },
7 Q- C1 a" z  A* A( x  N5 I        {
* V- j$ o9 N/ T5 R3 h6 b                .active_low = 0,7 w4 d* @6 I7 m9 c+ Z1 V9 e
                .gpio = DA850_USER_LED2,
" G5 I, f' R9 ]. j* q7 y                .name = "user_led2",
4 F! @% z) k5 d* J9 n                .default_trigger = "default-on",& S- A; ?! h7 \- v' J1 i
        },5 W0 G6 n' I9 c3 N1 x
        {
+ e" F, Q' i5 H  a" e$ o6 c                .active_low = 0,1 b1 J: C4 m  n! u$ Y9 p: u
                .gpio = DA850_USER_LED3,; v9 O8 z% d4 {  i# `. H9 |2 ~7 N7 H3 ]
                .name = "user_led3",% i  o2 }. D& C  @5 f' t! x4 a) w5 ^
                .default_trigger = "default-on",
% f/ m- Y* C+ y$ y. X        },
- _3 X$ o( A$ D! c1 V( Y% p, V- @};
  F+ o; R& n# \  e% \8 u  ^  f' }6 a* r6 r/ i# i. [
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {; }9 |* {& i! [8 k3 [- R( y. e
        .leds = da850_evm_tl_leds,
. I3 ~2 j$ X3 B4 `0 G7 \        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
0 u2 ~: s1 u- j* ~) u! ~1 _};
4 [. l- H! }* |/ k9 `, O
  [% m: ]: R( r; Ostatic void led_dev_release(struct device *dev)8 Q6 J' b- W% S8 E
{$ r& O2 o) _+ t3 B7 N) Z
};
4 z/ Q% c8 d0 I$ W: P6 z, Z, t* g1 ^* X6 q9 `" D
static struct platform_device da850_evm_tl_leds_device = {
7 g) l) a- s# Y7 ~! c1 c8 }7 h; z        .name                = "leds-gpio",
" k0 R" [- s  M# u% b, M$ B) m        .id                = 1,
7 v5 G9 W9 q' \% L( K! ]; v0 O        .dev = {
9 `/ j6 m: p; Z4 J                .platform_data = &da850_evm_tl_leds_pdata,
5 m  H# Z- N1 t" q3 m                .release = led_dev_release,6 b1 D6 [+ b3 Q  N
        }- _1 m# f4 t7 G- `; `- [0 X% g
};! h6 A% P' F+ t, W) R" O
7 G! u2 p1 M. g! C6 T* a) ~. ^
static int __init led_platform_init(void)
( i" I8 R1 \# g5 `* f# ^" i8 r{6 b9 f4 W! \, u. E& e/ c7 _
        int ret;" g% U4 {) y4 K; n3 i
#if 0, Q7 J2 [/ c7 h* @; {6 z; v! B
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; Z6 [6 b0 s, t
        if (ret)' I1 t7 m% @2 V3 q' Y! @
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
! z- X$ S; L# _1 a                                "%d\n", ret);
# r7 N- v0 a8 U! w" P#endif
# i. [) m3 T3 u  p        ret = platform_device_register(&da850_evm_tl_leds_device);  X- B: C9 ]5 W: O/ s
        if (ret)
; F+ D8 P5 P8 P) t8 f- F( f                pr_warning("Could not register som GPIO expander LEDS");
. |0 I6 z3 M( D- p9 [; m        else
% r3 F; p3 U6 A2 t+ O                printk(KERN_INFO "LED register sucessful!\n");
4 z2 O) j4 q$ W; Q4 s+ H5 m5 a$ k6 }# P# {  y) C) N/ e/ v
        return ret;
- a4 ~5 W" w0 k" t  M2 H}: M% [8 o1 w, C  ]' @& l3 @+ t
3 r2 Z( ~2 x6 H9 f
static void __exit led_platform_exit(void)! [8 P2 b- R$ `% |1 J3 p. R
{3 U) {$ H: P( P$ M% U5 ]
        platform_device_unregister(&da850_evm_tl_leds_device);
; c3 v: p6 b, }- b) ?$ ~4 ^, @5 e9 X! [' q; t
        printk(KERN_INFO "LED unregister!\n");
) M6 M4 ~6 R4 x/ q( E: {}+ L4 C; d; K1 G$ |9 G6 H5 ]3 ^# X

4 F: y6 A( T4 Xmodule_init(led_platform_init);
  V; S! A# p( M  m% {module_exit(led_platform_exit);
( }4 ]: M( R4 f# V* y1 _3 u# K& o1 h
MODULE_DESCRIPTION("Led platform driver");
+ M. z6 `, K  U8 m! g, D6 NMODULE_AUTHOR("Tronlong");+ D1 \# D, l% x( y& E0 u- e
MODULE_LICENSE("GPL");6 q  T$ s& G  R  p$ t* y2 E: U8 u5 N

& t; R% d* X: v1 a4 F
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-16 06:06 , Processed in 0.037925 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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