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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
, s* Q3 B' f& n& u#include <linux/init.h>- n$ p+ `: f5 z9 X) ?
#include <linux/module.h>! ^/ o' T- q9 O& r* U4 |
#include <linux/kernel.h>
- l+ Z+ P& ]1 T#include <linux/types.h>+ U* b$ \6 ~+ ]( O% M
#include <linux/gpio.h>
" n+ N. ^: y3 n3 v; {#include <linux/leds.h># }! s# A6 W8 [
#include <linux/platform_device.h>, n9 ?- p. M) R: x" [1 g+ c
4 _% b0 z. @$ Y/ u, L5 J0 g% d
#include <asm/mach-types.h>
" x% h( {# K) f#include <asm/mach/arch.h>6 m2 v6 @+ [* }) U& G6 L
#include <mach/da8xx.h>
' r9 m( F+ E' H: R1 V#include <mach/mux.h>
0 |! B" [4 p$ @5 M+ m4 g6 |; Q  k/ {3 S& o3 q, y, {% S9 |
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
5 O  T" h+ E  o6 W" v' B/ c- G#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 c( k, z, t7 ~9 t) a) R#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)4 y5 R" \+ J; d5 |
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)& _7 K+ `5 X% E6 j7 `

4 \# E/ r4 M) |( e/* assign the tl som board LED-GPIOs*// j( H: ?6 e* F! n2 I0 l
static const short da850_evm_tl_user_led_pins[] = {6 q0 h5 c9 l) s; w  G1 l2 |
        /* These pins are definition at <mach/mux.h> file */4 A$ y, G. a# P7 H
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
7 Q6 d" Z) V. a3 t1 z        -1
+ I/ E4 @+ C* H, ^( S};; d/ f" d. m5 w. O- d& B; h

8 F0 h6 L0 d8 y5 I) L  Vstatic struct gpio_led da850_evm_tl_leds[] = {
! g- a- L) V" b* S; |; H        {; h! z. J5 l7 H: g+ R
                .active_low = 0,: m) a3 [) j& g3 P: ]8 n# z
                .gpio = DA850_USER_LED0,
6 S, F  G5 Z) d" v# M9 r; v9 d                .name = "user_led0",
) Z: v  z3 F) U                .default_trigger = "default-on",
! z9 E, L3 O9 M, V: K7 q        },* Z, r3 |$ w$ R* |0 D& @( }
        {4 x  A3 o6 B6 B- \- d* h) K
                .active_low = 0,  R# U7 j4 ~9 R
                .gpio = DA850_USER_LED1,9 q( \+ w# I+ K/ ^3 Z7 x
                .name = "user_led1",
  @5 V0 c+ g6 |2 a) A: c3 P4 Q  U                .default_trigger = "default-on",
( M1 y1 y) d& s0 N' P+ c. Q        },: }' j6 c) u4 m5 U  a8 G# e1 u
        {& ?; T# c3 k8 t: ~/ ?1 t, D  b
                .active_low = 0,
9 ?: X* n1 O' r3 L$ m% n                .gpio = DA850_USER_LED2,
5 W6 _* Z$ M1 e" g, q+ I4 p) D                .name = "user_led2",
( ^+ B, l, j3 u* K/ @- e                .default_trigger = "default-on",# f5 o0 E* w+ f6 r" S7 P& {
        },
# l, s8 C% ]" H0 ~        {
6 K- e+ ~/ w: Q- i                .active_low = 0,3 h; P4 o, }$ `, R
                .gpio = DA850_USER_LED3,& B; H" p1 [4 ~7 P' ?- u
                .name = "user_led3",! o9 Q% Y8 n' x/ G
                .default_trigger = "default-on",
4 v' W; Q4 q# \, y        },7 l0 g6 m, ^7 M% {+ c# }2 P) ^! w
};
5 R" _4 P; z+ q) t4 \5 ^0 a
; V: x3 m, ^% `, Pstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {4 ?) u& G) j  ?5 M! o
        .leds = da850_evm_tl_leds," z' f& ~" D2 f
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),: K! c$ `/ I0 e0 R! i+ b% A! h1 Z
};+ v5 O  T* ]) w1 @5 W

1 t* |" d4 Z# q/ A3 ~static void led_dev_release(struct device *dev)
* c& i" O, ^3 C! q: f{1 m  x7 M: M7 Q# I, I7 y$ ?9 m2 [; Q
};. ]( f0 T, T0 T9 X& V0 |- v

4 N4 C4 ~9 ~6 U5 gstatic struct platform_device da850_evm_tl_leds_device = {" t+ [5 l5 Y/ E* m0 E5 j2 Y8 u
        .name                = "leds-gpio",/ C2 u! R( V' b9 |* K$ I
        .id                = 1,
* g9 t7 k8 I1 E' Q' a        .dev = {
) O1 v3 d( W7 H, k% b  _2 D                .platform_data = &da850_evm_tl_leds_pdata,8 U2 H2 O3 Y; M) s  y* X
                .release = led_dev_release,3 s( W2 [  |) @2 b1 M0 [
        }
( K; p: `# A4 k};
1 @- V* a2 g) @" @. G" @9 j$ @/ T* A& M
static int __init led_platform_init(void)
+ J) K+ t5 U5 X0 \4 O" g. P3 C{( M% Z! C, l  [- I$ K
        int ret;3 N& b# N, S- n: B# Q/ U/ O
#if 0/ l  @3 w' Q" \8 u/ K7 L: ?
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);' n" L6 Z: a* L) C2 T
        if (ret)
+ |/ ^6 `) m" a7 N6 C" S* d                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"5 z" w8 Q* Q, F0 N+ q/ x, [9 s& P7 H+ E1 _
                                "%d\n", ret);; A0 K, j, I. C8 h( y. j
#endif7 C/ ]7 A' \, C! y% M
        ret = platform_device_register(&da850_evm_tl_leds_device);
# N4 w. }$ s/ y0 M* v- y        if (ret)
4 V) k/ R0 q7 U: n/ @/ B; C                pr_warning("Could not register som GPIO expander LEDS");
6 @- g$ n( i3 ?        else
5 M( @: A2 ]5 h- a                printk(KERN_INFO "LED register sucessful!\n");
8 y$ f+ r! V4 R8 j/ l
' t' j: a2 V2 v  S+ }) P: F        return ret;" l8 L! ?, ]5 w* Q4 u3 n- ^% ?* O( K
}# [/ |, `7 J6 L+ f7 [* _

- j* S1 ?% N; N5 k9 b6 Kstatic void __exit led_platform_exit(void); p$ F  `9 S7 g, s/ A- s$ p
{2 E9 u4 |3 J; B  T* \4 W1 i  A
        platform_device_unregister(&da850_evm_tl_leds_device);
. q$ b& M4 q) y) e8 k  F( R; B' }8 y: ]& ~) v7 ?: h% E
        printk(KERN_INFO "LED unregister!\n");6 @) |9 J0 H5 @) z
}% `1 j4 L9 E7 \
1 ?* u6 x# u0 n1 ~0 r7 @) K
module_init(led_platform_init);
1 a1 j, w) A  g& T- `: {% o+ Cmodule_exit(led_platform_exit);  J6 m/ R! f' L6 n

2 V0 Y/ a6 f- F, iMODULE_DESCRIPTION("Led platform driver");( g9 |  Q, A2 V
MODULE_AUTHOR("Tronlong");
* J( T) k3 U- Q. lMODULE_LICENSE("GPL");
4 R! r, ?6 @9 x! v
) s/ M( m6 u0 I; P- @3 \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-8 00:09 , Processed in 0.045175 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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