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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。! c, \2 N7 l# M5 G+ j# q
#include <linux/init.h>: y$ u2 p' c& [. d
#include <linux/module.h>, f& d5 m5 C& v
#include <linux/kernel.h>
* }# U+ n( c4 W7 d0 z/ V#include <linux/types.h>
/ J, e8 c$ p! p( D! j; k: v#include <linux/gpio.h>8 B. o4 m. o) S: l4 @6 P
#include <linux/leds.h>, r6 K) X! n8 R, l0 h  S/ j& O( N
#include <linux/platform_device.h>
9 t: A2 e9 l4 g( ?4 @
3 i" N$ m3 N5 K1 }( n1 {% ]5 U) o#include <asm/mach-types.h>: S" m8 F! H& U, x5 `
#include <asm/mach/arch.h>
, {5 S3 G0 v* a5 d3 o9 O#include <mach/da8xx.h>
% z( W' c5 e( E) s#include <mach/mux.h>! C# b  Y) I/ v4 x9 u
" W. A: {3 t: l" ]! Z4 v/ S) s
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- C4 w. x: B# j0 S0 X. x1 z+ n
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)2 G# V0 i  d/ M, u) O
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
, F* @- `8 {- }- [+ O#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
0 C; M# ^! |7 w: `, ?/ i% H
8 |, P! u3 d/ R  Z/* assign the tl som board LED-GPIOs*/" g* K* K# e3 R( t) H! @
static const short da850_evm_tl_user_led_pins[] = {
# s% W  n/ _, }6 k        /* These pins are definition at <mach/mux.h> file */
- g1 K  V* f4 z5 N0 H, n        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,4 ?5 }: o3 C7 }: V; o
        -1" P- W" H. y9 V3 c
};
: m5 z. Q  j" V2 z) h+ k
# n* {9 ]+ N$ W9 \' I& \static struct gpio_led da850_evm_tl_leds[] = {
' q* ]% u. Y8 O! }6 G$ I* t: p        {
& M: l6 U0 @* l                .active_low = 0,6 B+ ?% N6 L# \5 ^
                .gpio = DA850_USER_LED0,. s3 d  k! P  T  r
                .name = "user_led0",
" l+ L- h# k1 ~) h( ~- D! E6 m% @                .default_trigger = "default-on",3 ~8 \# n0 {; Q9 b
        },# z) o; l, G, b" W0 H, s
        {% f! C. i6 w+ M
                .active_low = 0,
) \% D  ^, L+ m. f: r* c                .gpio = DA850_USER_LED1,
6 U6 }0 E: b) U0 s9 s                .name = "user_led1",
* D0 o& k+ I5 ~) x" ~                .default_trigger = "default-on",1 O$ [! m  c* }; \! l& J0 k
        },( l/ J" c3 a6 f- C! W4 G: x, @
        {  N8 ^- u& y- E8 W
                .active_low = 0,: u& C6 j( U& o8 M2 B. b" Z
                .gpio = DA850_USER_LED2,
  h4 d  s9 E; y4 ~' Q* D                .name = "user_led2",* ]" T$ V8 {+ q  |# f  X
                .default_trigger = "default-on",( A) y! z2 [7 B0 M  V
        },+ P2 \, V( y2 Y# b
        {0 Y0 Q! y6 ^( u( P# _6 S- O; R! L, z
                .active_low = 0,
' t" u/ e7 O( p- |/ o6 _% U                .gpio = DA850_USER_LED3,! U/ i( O/ y9 ^( |& p8 u
                .name = "user_led3",7 x# ~: _, c! A  G
                .default_trigger = "default-on",9 I. _) K8 H! t. o. v3 I. ~1 [$ B
        },+ B5 c- M0 N. Q3 v& d
};
! j* u( K! ^$ l1 J. a
) o7 J$ t5 f( C& B) vstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
- j+ Z" P& Y" T! G0 h2 p% Z        .leds = da850_evm_tl_leds,
8 d1 p& O% ~) J. g7 D$ `: h        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),4 g) S7 @7 |3 K1 b: i
};$ I2 Z# G* i( V. B0 D! t& N# H+ |
6 {) p) N9 C+ C' g
static void led_dev_release(struct device *dev)3 `! X8 j( u" o6 g7 `3 d  p
{3 e5 L9 P& b# i* R5 `0 v
};
$ F. J9 i+ q3 Q- i9 f9 J  K/ w" v2 E" D& C  Z
static struct platform_device da850_evm_tl_leds_device = {
) p& }9 ?+ z5 v% f0 i/ u        .name                = "leds-gpio",& V* w  L/ j. l, C
        .id                = 1,
. e9 s( o4 Y" \* z! h- x        .dev = {6 ^- i( o# P# b0 X$ y
                .platform_data = &da850_evm_tl_leds_pdata,
; T4 t+ G2 i  x  K/ P9 u- c: j                .release = led_dev_release,
2 y; N* M, T2 i        }" O: h1 A6 F3 u6 e7 G) h1 c0 ?# \/ V
};
2 p0 H2 D1 j/ m
9 f- t9 i/ N/ W/ M* D9 ]0 @* _. O3 Kstatic int __init led_platform_init(void)* g+ f' U" K- `/ o2 Q% {
{
! V) Z4 N0 [. d, g: k        int ret;+ n( b  u0 }, v& Q: L1 L! ?9 O
#if 01 ?4 O. j# Y4 C* `2 p6 J7 o
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* M8 a; i, M& [  Z. Y; t; d7 K
        if (ret)
( {6 Y- d1 H' r6 Z                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ Y8 u. y# y! Z& q, X
                                "%d\n", ret);) m) i* p5 j# H) M1 k  N* _
#endif
1 U/ [% b$ P) h# _- r! e0 a& B        ret = platform_device_register(&da850_evm_tl_leds_device);5 a( k$ _' T# |" R9 |
        if (ret); `- f" c( W9 S+ x
                pr_warning("Could not register som GPIO expander LEDS");. v7 j& ?6 Z9 ~" w) O
        else
8 H! f1 u: n4 I                printk(KERN_INFO "LED register sucessful!\n");
/ q6 ?1 Q$ v4 a8 K* g
$ `( b/ w! ^3 I  u& z' G/ t4 \) M        return ret;& {& F. ?& e* A1 J
}8 p" j- P  o, F& F% }: y+ q) z

' r# g. B" Z" N* y8 w3 f' jstatic void __exit led_platform_exit(void)
, N$ D( Y0 l/ }$ n& J& s. R{! Q" x  x" q, p
        platform_device_unregister(&da850_evm_tl_leds_device);4 e/ M0 f' H$ X2 t  C

& z! C6 V' j) A' h        printk(KERN_INFO "LED unregister!\n");
( K! R' g/ b  x+ H: Q}& X7 f0 f  E6 x
) I3 u6 n6 R) a0 a
module_init(led_platform_init);
8 T, U: V) @& @0 A  M# ?+ w/ Cmodule_exit(led_platform_exit);3 v3 s: v, |8 A  W
6 z: B7 X7 R  a4 b
MODULE_DESCRIPTION("Led platform driver");
9 L8 m- K4 V9 t9 wMODULE_AUTHOR("Tronlong");& n4 j9 e1 s; M: B: A  T6 n
MODULE_LICENSE("GPL");
  u' R) Z: U1 z! q
! _$ G6 ], O0 M% D
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-1 09:14 , Processed in 0.037988 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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