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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' c& v( c( ^3 U  T#include <linux/init.h>6 y8 Z' {2 a) l- j0 \+ |" M. h' M
#include <linux/module.h>4 r! G% E! H1 O: K! C
#include <linux/kernel.h>
) m0 Y5 h' I, l# l8 l3 ]+ z" ?#include <linux/types.h># r( ^1 G+ T: o& x& L
#include <linux/gpio.h>( V# t6 r# I4 [+ y" i
#include <linux/leds.h>7 T+ G) J( S& t8 r) x- ]2 w8 J
#include <linux/platform_device.h>
  I: J' O/ q. N& \
, W# z! @# S  W7 _6 x  J#include <asm/mach-types.h>4 E- U0 G) w7 i3 {* R2 [
#include <asm/mach/arch.h>
7 d% _& S# G3 P#include <mach/da8xx.h>) ?5 u/ T" \! y* ]. f
#include <mach/mux.h>& k3 i8 z+ B  g$ c1 S4 j
: y2 Q7 Z  [. {+ x% ^
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
4 x; c, ]; f2 d/ ~#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
' h! [- p5 @) o. R( E#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( T# @2 e2 J5 b, v  G7 o# q#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)7 t) o! r- ]3 T1 S3 L' F+ V
5 T8 c6 F7 C7 l# ]( a+ {7 E- P
/* assign the tl som board LED-GPIOs*/
6 N3 F1 J. B, B8 P& @* H: O( hstatic const short da850_evm_tl_user_led_pins[] = {
- G; k! K* x1 I        /* These pins are definition at <mach/mux.h> file */  \& s; Z$ P/ T- U3 [
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,4 p7 U) {' C" v% G
        -1
2 _( p2 v0 e% a" i; S+ ~! l5 T};
1 }; ^$ e" S. n- }
) D* z' l& ?8 |0 Rstatic struct gpio_led da850_evm_tl_leds[] = {( ]5 B) Y( E) g: p
        {) |" g5 x! I( D. V( H& i+ N( N
                .active_low = 0,1 L( I% U0 H% r- S- i' a; q' i
                .gpio = DA850_USER_LED0,. O6 J. Y  `9 ?  D$ P8 X/ z* \
                .name = "user_led0",' t8 D/ X) R: g5 k; l6 S& t: H
                .default_trigger = "default-on",: m% a# U0 N3 Z8 ?+ v1 c  {6 E
        },
- c8 O: w1 v) z8 f5 C+ O: C        {6 b) n+ S# v7 ]0 K" O/ E
                .active_low = 0,# K) a) q% T$ a8 C8 b% r  E" _
                .gpio = DA850_USER_LED1,7 @1 H; W- s3 Z7 n! ?+ @2 j8 K
                .name = "user_led1",; M. @0 V) \3 U, @4 i1 x
                .default_trigger = "default-on",
2 c3 C6 h* n8 f# \& w. v        },
' U+ o" l  J2 d+ e        {% A% x# ~) l. M& V8 i: p
                .active_low = 0,
; w: X6 q& W) b+ G; I* `3 n+ N0 f! w                .gpio = DA850_USER_LED2,
* @$ o" C' M) C1 X3 x                .name = "user_led2",
( W+ L# L+ Q& z. a- O2 ^                .default_trigger = "default-on",5 ~: d8 g6 T- ~+ ?: U" T+ m
        },+ ~# O8 |* _; Z' ~. V* m
        {
1 h) j$ d. V1 Z' V                .active_low = 0,) H7 c7 ]; r. @1 ~) n4 L
                .gpio = DA850_USER_LED3,1 a6 E- l- w" L0 {; j
                .name = "user_led3",0 Y4 b+ \1 r, h- U- ~1 S+ @1 D3 U6 ~
                .default_trigger = "default-on",
+ n" y7 u6 D3 H+ f, I& f        },
9 i5 e  u6 l0 j2 a};5 Y1 R: N) a& ^

* _; k8 J4 b2 q$ z2 Mstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {) n9 o7 Z2 f: Y. l' }
        .leds = da850_evm_tl_leds,
( o' I6 s) l/ I( C( z! T& k        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
2 C; P; v' A3 g0 q};$ c  T3 V9 o: o# h6 Q% W, m

$ x1 n2 e. w9 J6 T3 u# u4 H! Ostatic void led_dev_release(struct device *dev)- g6 v* o; d4 \$ t
{: f; f, J, D1 {
};
# i8 Z9 ^( a1 S3 o9 ~/ N9 N2 D$ [% z4 a% c7 x: T* {6 d8 ^) Z2 J
static struct platform_device da850_evm_tl_leds_device = {  `" `( b0 N* \8 Y2 K. U/ I
        .name                = "leds-gpio",
; ]% S3 @& p  m4 u+ d/ X; X  ~        .id                = 1,3 A+ l% t" `( h. z$ \- u' j
        .dev = {
- G7 h% u* O0 r: s- E& L% }  H1 t9 O                .platform_data = &da850_evm_tl_leds_pdata,6 |  L: \+ d  x! q  b! r
                .release = led_dev_release,
4 g& t+ Y/ U; {, Z* p, X1 \        }
& l5 {8 i3 Z5 ~2 o' ~1 H};
# L' D, S0 W& y& H: Q1 o3 d, }3 K# r; c9 i- Q6 B
static int __init led_platform_init(void)' Y: I, I1 n& W1 ]
{6 K# m2 R; e  `) }' y/ {0 @
        int ret;9 O& X' `* g; a, R9 i, [
#if 06 I- G7 p0 j/ s
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 W  ]4 ]% ^% O3 K: E! \) u        if (ret)5 I( j. h! k* N1 t6 G8 B
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
. C% ?4 \, \7 Q% U                                "%d\n", ret);1 Z- C5 ^9 D! U* u, C: f& b
#endif& e3 A1 p. W% Q" b3 d
        ret = platform_device_register(&da850_evm_tl_leds_device);
7 Z; \; z! J$ z$ L$ m/ u6 p6 n. x        if (ret)
% q9 {1 c# W7 q  p$ e                pr_warning("Could not register som GPIO expander LEDS");
5 Q# i  D/ r% C& L$ `: F0 A        else# y9 D/ ]- l& E/ d
                printk(KERN_INFO "LED register sucessful!\n");
$ B/ T/ i, n. a2 r, t
* i$ C$ R. C8 _        return ret;
, _# z: {1 g. P6 z" K}
( T# n: s7 k+ Q$ f6 D% w
4 ]$ `: t# k' Ostatic void __exit led_platform_exit(void)
7 t% ~3 Z6 q* _! ?& G{: R1 _! x& w% i% [
        platform_device_unregister(&da850_evm_tl_leds_device);( M8 D# ~! E, T% {: b

$ o* N) k' o3 n3 c6 Z* T% ^7 H" p        printk(KERN_INFO "LED unregister!\n");
4 F- r- [- t5 h: }}
7 {. h. @: s8 F5 b2 e  X$ \' i1 Q7 _- b3 k% R+ p! F9 }
module_init(led_platform_init);, U+ I5 i! o1 `' H4 u
module_exit(led_platform_exit);! t3 e# M% y1 v6 j& A# F0 v$ j1 `

& ?9 R+ i+ F4 s& T8 fMODULE_DESCRIPTION("Led platform driver");
/ w0 L5 }. i3 v2 T3 |0 FMODULE_AUTHOR("Tronlong");
" r8 H" O& k* Q8 {" hMODULE_LICENSE("GPL");. J$ ~  C4 n, I7 u

9 s( R9 j$ s  R; T! _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-24 16:31 , Processed in 0.038506 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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