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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。  F3 E& T# p6 a
#include <linux/init.h>
' a9 _: m4 r" N7 H& E8 c2 I#include <linux/module.h>
/ K% `+ G' x! U7 M& Z#include <linux/kernel.h>1 m9 b+ K, `6 ?6 p+ U5 I
#include <linux/types.h>
+ D: n% M' G. W! G* a#include <linux/gpio.h>9 f+ d  o4 d5 c( V! B
#include <linux/leds.h>
( s' J; i$ z+ ^! w1 L4 y#include <linux/platform_device.h>
; u/ a- A& i- g% M9 y5 B" w4 j0 p3 F
#include <asm/mach-types.h>
9 @0 m, w' Z0 U9 S1 u#include <asm/mach/arch.h>
: v; c0 Y$ g6 H* @% R; ?#include <mach/da8xx.h>5 N0 c0 ~6 Q( |" g8 c# ^% f& \! H1 P
#include <mach/mux.h>
  C7 Z6 w2 u- Y/ r5 \- A9 z
, Y( \" w0 C0 h, t# w; k6 N5 |#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 R$ {8 l3 F6 A- }. }4 k
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 Q2 Z7 x5 B+ R$ _7 j% _" Y
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)' f" q* x& ]/ G3 f! V9 _9 x
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 D) n3 }  g4 k% n# A! j' c: q& w% L1 Z, f! {) p6 v/ h- I) z2 u' {$ E  Y
/* assign the tl som board LED-GPIOs*/0 L% a( ^4 @2 C+ F0 ~; K9 H
static const short da850_evm_tl_user_led_pins[] = {. r" {: I% c( ~, P( j3 I1 \% t, [
        /* These pins are definition at <mach/mux.h> file */
: K3 M) O/ C- t  t        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
6 }$ ]6 l6 L* `8 M6 o: E        -1
+ R  K5 j  w9 S; i1 F& x7 t6 N};# p2 n- ]7 [  }2 L6 [

3 H' [( P4 g4 Y2 }6 {3 p: q( x& y  Istatic struct gpio_led da850_evm_tl_leds[] = {
" k& K6 i* M+ E: {# e, L: M; N        {
9 x4 D% e2 w9 ?; c7 p                .active_low = 0,+ H7 s, f! u) t2 I
                .gpio = DA850_USER_LED0,8 R7 t0 y# j: |$ @9 i4 R! w
                .name = "user_led0"," g0 H" E& V3 N# n4 \" A
                .default_trigger = "default-on",
1 O2 [4 f4 ~8 }  E; c        },
6 d- U! ?+ L- r% T8 @, p8 }& ?        {
  [5 M$ C% M  f( Q1 `, K4 o# Z                .active_low = 0,
! H" t/ g8 H% X- k                .gpio = DA850_USER_LED1,
- G( I" ]( V- q7 x" W, N2 r                .name = "user_led1",
+ w' c, C( M) Y) a* x                .default_trigger = "default-on",7 S2 d# j: u! T- H  A/ ]
        },# y7 w( E# e. T3 C' g
        {- L- b5 ]5 ?' a! n, K( l8 D/ ~
                .active_low = 0,3 S* R0 q1 T% a# }9 z8 s0 @1 \
                .gpio = DA850_USER_LED2,
9 i6 D3 c4 t7 A) j* Y$ A, J                .name = "user_led2",' z$ R' q! a. ~: U  Z, M
                .default_trigger = "default-on",1 H& G+ ?! v% o) ~8 M- [( J8 k5 z
        },/ z& ~' \" \9 |7 P# b
        {! C! f9 z* p9 x8 _% f1 |
                .active_low = 0,7 k% `$ o2 G# o0 Q' |! ]
                .gpio = DA850_USER_LED3,
, Y, @: [7 l- Q; {1 W% o6 j                .name = "user_led3",
# L% {& ^, Q  Q0 `! F                .default_trigger = "default-on",9 d- w. n" }! Z$ ?5 B
        },
3 d9 n- f; L0 q! O+ e9 r};
- i: r7 l& J8 {& J! n+ t' |* ^  f! l. K) M% E' t" v( i  R
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
8 Z# L0 D6 \! j8 S7 K& ^2 A        .leds = da850_evm_tl_leds,9 u" Z# A; o4 e/ Q
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
' y! H  y$ v* L! }3 Z8 s9 l) K' @};
& p8 R+ Q) }7 R4 ]/ a- L% L: n( g2 l9 X0 M: T2 b. G* O! L
static void led_dev_release(struct device *dev)6 N6 O& D1 S" p; W  s' ?) b0 z
{
0 `& {2 k. L, D  i4 A8 x* |6 i2 N};6 F/ A( o8 w8 k9 C- H
) H8 d+ ?1 N6 K4 A: w  [
static struct platform_device da850_evm_tl_leds_device = {
4 O7 {' ^. ~. E- {, w& c        .name                = "leds-gpio",/ }# }/ E6 d7 J
        .id                = 1,
/ q# u3 F7 q- ~        .dev = {
$ a( z0 k# a" B9 f0 i7 L* U- m                .platform_data = &da850_evm_tl_leds_pdata,+ n$ r) W# h5 _0 J0 `8 |
                .release = led_dev_release,  b' A- E1 y1 t  y+ n1 _
        }
: E8 X7 a) b& }" S};
; K: R) z% j& F7 _' L1 T0 a( v. l8 C* F& A. r
static int __init led_platform_init(void)! @0 Z% V5 Y2 K
{5 S! y3 F% A# [# |  u8 _! _3 [% x
        int ret;
# I. J' {$ K8 J, q4 n#if 0
. a8 {# }& F% h2 i0 g        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);( |: y& q6 y$ e9 R# r
        if (ret)
! G! M- Q) ^# J8 ^; p                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
* k2 U. c3 }$ B2 ]+ ^8 N- u0 ^6 Z                                "%d\n", ret);
  a/ k  \8 K  J( L0 }0 j8 t#endif! t$ A% J) o7 s* U) x7 m, v+ V, g
        ret = platform_device_register(&da850_evm_tl_leds_device);# ]" p2 r, o4 J! N9 p) [0 p
        if (ret)
; O0 ?, |, G' j0 i% A                pr_warning("Could not register som GPIO expander LEDS");
3 t  w# N2 G! q* ]        else2 {/ z# d$ K5 {, t! P1 E
                printk(KERN_INFO "LED register sucessful!\n");
. N+ @  f" z/ U" P, ]
. b- o5 m( c6 Q3 W        return ret;( G' V. W: O% @2 ~8 m4 Q
}& V8 c8 F# l4 z

% a# Q, |+ t; ]/ A' x8 \static void __exit led_platform_exit(void)# n: b/ R4 v. U
{
4 Z1 L! x; N, ^4 d* @' A/ h* C        platform_device_unregister(&da850_evm_tl_leds_device);5 t% ]9 t: o9 I& C$ @

2 N& {( X4 e9 [: C6 R0 `        printk(KERN_INFO "LED unregister!\n");9 E# \- {5 E4 M2 F) ]
}
1 z* t9 \( n% [* T6 O0 }
$ k1 Z# X4 Q2 dmodule_init(led_platform_init);
. b% [9 h$ _; m2 x1 `9 V8 ~module_exit(led_platform_exit);! a1 H8 N# Z! R/ j, @  \

4 S, Y" T" J  V" I" B9 r) \MODULE_DESCRIPTION("Led platform driver");/ ~) j, D% |" A/ [3 I4 b
MODULE_AUTHOR("Tronlong");
3 ?& `1 g, E: R) D0 I9 f  eMODULE_LICENSE("GPL");% s8 G2 \. |- u& @1 w

# y2 c! ~' ?! a* d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-23 16:48 , Processed in 0.037666 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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