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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。7 n8 P1 f& M5 {3 c' G
#include <linux/init.h>6 W  Z' O2 x/ g: Y& F
#include <linux/module.h>3 Z1 U3 q: s( ~; ?- [2 q; o% r
#include <linux/kernel.h>
! j5 |# ]( t  P$ N#include <linux/types.h>
" |8 }5 Z$ h* a, a#include <linux/gpio.h>1 f$ H7 [2 z( e9 H* `0 H
#include <linux/leds.h>4 v! t( I2 I9 h
#include <linux/platform_device.h>
2 `( M! f" l# N' I7 ?# {: u$ {: B8 D# Z* I) D  \7 P$ O3 ~
#include <asm/mach-types.h>
; h0 u: A# `, Z* B# s#include <asm/mach/arch.h>& V9 n; `8 L& N2 n  x( v1 j
#include <mach/da8xx.h>
: E( p+ Y& F1 m% v! W( z$ {: I#include <mach/mux.h>
* T+ N1 z1 k/ S3 k0 n$ N9 D! ?7 |1 B
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)% \! h( v$ g* J' W$ R# S, ^
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5); J% g! c. Z: j3 m1 [+ R& y. J4 R
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- P, P. A" I3 B6 |+ d
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
8 a4 o# U1 b4 r1 C# m$ }% t% O+ x, ~
/* assign the tl som board LED-GPIOs*/
3 ^$ C( }) C. N$ e7 n. Ustatic const short da850_evm_tl_user_led_pins[] = {$ I+ I) t2 ^- L" K0 N
        /* These pins are definition at <mach/mux.h> file */
. C2 m  S& [- T# l0 L        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,/ x' s) _' |0 R1 ~, o: M
        -1, [# C7 U3 e* H$ u, l  m
};% H8 @3 g( C4 H/ y. u1 \: Q

& [; T. P0 W. G7 P- ostatic struct gpio_led da850_evm_tl_leds[] = {. M7 i* q+ Q8 h% s4 X! [  D
        {* }7 l$ y- m4 U! y9 }
                .active_low = 0,; V; @5 e- G  A, t* }2 |$ T
                .gpio = DA850_USER_LED0,
: S+ m1 _7 t, N  J- j                .name = "user_led0",5 P4 g2 Y$ q$ E+ G  A5 {  \' {" o
                .default_trigger = "default-on",
! u& }; W' g1 q9 L8 f8 M        },
. g3 y* S8 L9 A8 q6 o        {
7 B8 X0 p6 t9 G, N9 H                .active_low = 0,
/ B) p; v8 ]* m. i8 ~                .gpio = DA850_USER_LED1,3 H4 e$ O( D' Y( s* W$ k5 c
                .name = "user_led1",
$ W% u4 |9 O( l; ?( i6 F, Q2 p1 w                .default_trigger = "default-on",
3 z. b6 |1 j$ L6 \1 Q. b+ I& q  ~        },
) b& J, I5 L# G; L        {* q4 E) g  I9 g; M  ^
                .active_low = 0,
$ R8 @) u. c  [" N" E                .gpio = DA850_USER_LED2,
0 y* J3 o/ P: U! A% h* @+ V                .name = "user_led2",
. ~6 Z: i9 B( u                .default_trigger = "default-on",
8 O( u- S, L( F        },
7 p3 `- o  H: s- O/ B( e        {, @$ B8 ?! R; Y0 t8 c4 c2 o
                .active_low = 0,
, l1 C2 i1 h( x4 F                .gpio = DA850_USER_LED3,1 l# K) S1 G2 x  q8 \, u
                .name = "user_led3",+ F6 t$ p. M/ M: m! S& L' N9 F
                .default_trigger = "default-on",
) Q$ q3 ?  Y4 k' b1 p3 Y% d$ s        },
- L4 e; I. c( w6 u};
) @* x% t* j3 E
/ Q0 g2 H2 ~! D3 L* Tstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% l  d) X* N! v
        .leds = da850_evm_tl_leds,
' _8 I! x- c9 d        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
0 H5 G+ x% X1 R! h6 H' O( k1 d, d};# h6 W2 L( |2 S1 J, k8 f: r$ O

3 R5 F+ S6 L/ g8 T5 Z% T; Mstatic void led_dev_release(struct device *dev)- c( o5 P. K$ A2 S  z
{: z8 G3 Y9 {+ A9 v+ X, X0 @
};* D1 W& ?7 o' M
* k, L% [  \& W3 S; b  G: ?
static struct platform_device da850_evm_tl_leds_device = {
1 p# [2 ~0 ~2 T' |4 n  G/ A        .name                = "leds-gpio",8 T) u+ p; E# }% p  B" D9 s
        .id                = 1,
' m* L* \; d: C; B2 O        .dev = {
8 z: P! ?' Q( b6 i. ?                .platform_data = &da850_evm_tl_leds_pdata,
0 b) Z( ~/ b2 n' W  A                .release = led_dev_release,8 w, m8 \* X* x% h3 P2 J
        }, @/ N* O1 Y$ G. L
};" ?# Y( q# u7 `; V/ e
: ?/ B7 s8 d' _+ F( @
static int __init led_platform_init(void)
; S/ V( K( v/ O1 y8 f7 i{
5 _; d0 f0 t% x! S1 H0 e        int ret;
4 b. z7 g& S& N7 \4 o4 y#if 0( X* \, c' e( P" Z
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);2 d; Y1 I# G5 R! D; C
        if (ret). F* x; m0 O; c( _* K8 f
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"9 L% z3 c/ x  E$ x% ]5 j8 U
                                "%d\n", ret);
& z: I$ P: O+ g- y#endif$ t$ b! E" \7 [+ A0 M( Z1 Z
        ret = platform_device_register(&da850_evm_tl_leds_device);
* b" g3 l. p) M8 w: j$ x        if (ret)7 \: Y7 \# |" v! ?6 a% y
                pr_warning("Could not register som GPIO expander LEDS");
1 R! J  a; m4 i/ e        else% h! s# X2 ^" T" L
                printk(KERN_INFO "LED register sucessful!\n");3 r( x9 n" L. G/ l
7 K( [0 Y3 C4 \
        return ret;% b" D0 l) a* d* A6 H$ K3 V
}+ p! `- W; g$ U# j5 S

  P1 x7 A6 U7 f7 V( `1 B9 {( _- Gstatic void __exit led_platform_exit(void)
  f2 g' z, s8 `, ]- r) [" b: P{
( C, G" W( U- G% z( u# Y8 |        platform_device_unregister(&da850_evm_tl_leds_device);# r  k1 U- t8 }5 g  p0 r0 N

$ {& d5 J: j, \) Y, I% K        printk(KERN_INFO "LED unregister!\n");
/ E. D4 T$ U& O, e- J5 q, x}# y" q/ {+ e7 s/ }
: y; J4 I; {# }" O* D
module_init(led_platform_init);2 d7 ]3 u9 o" M7 f. ^
module_exit(led_platform_exit);
. R: l2 ?8 Y/ I  V/ q( R
* F/ l) k& p2 V9 C5 S& h) }  ]! y$ JMODULE_DESCRIPTION("Led platform driver");2 B! \0 F+ z2 J2 H1 R3 {
MODULE_AUTHOR("Tronlong");
; _; K+ u0 M+ X2 ~MODULE_LICENSE("GPL");5 S& }1 M: U( L( {. U0 g
$ z% E5 Y  G0 x' b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-10 19:13 , Processed in 0.038025 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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