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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。# a+ v8 q) ?6 o, \
#include <linux/init.h>
2 s5 ?0 _- q  x4 `" `1 y  K: s#include <linux/module.h>" g* D4 u% @6 ]+ e3 }# k. E' U
#include <linux/kernel.h>
0 h( ^" ^" m# y8 b  d#include <linux/types.h>
$ y  Y8 D/ C! X) \  W: u7 p- m7 Q#include <linux/gpio.h>+ U1 h, p" G+ y  [4 \% D& ^
#include <linux/leds.h>1 V- s2 A, ^: u2 M  O! @9 O
#include <linux/platform_device.h>
) n3 \4 l# S8 f$ ]* v6 o) [' p
' Q$ b% T( T/ j#include <asm/mach-types.h>
) R4 E3 Z( @0 c; n, U  P1 T#include <asm/mach/arch.h>+ |1 I* @7 W& l2 \8 k
#include <mach/da8xx.h>
( O8 j+ F/ @. j) W" R#include <mach/mux.h>5 F. ]5 F  V7 T

( R' }& B& w5 k#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)& a+ ^0 S2 c4 I" z: I
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5): H. p& s2 T" m, h  a2 @
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 O0 {3 I/ Y  F- x, u( w4 d( u#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
, R5 ?* |3 F$ B  p7 B( \7 u; a- ~2 Z6 Y0 H$ E
/* assign the tl som board LED-GPIOs*/" ?4 Y2 x  x, J+ g2 `" g' q
static const short da850_evm_tl_user_led_pins[] = {' T0 Y6 r+ P, H/ j7 l& O1 V+ }
        /* These pins are definition at <mach/mux.h> file */6 V7 _: W$ c  A% k8 G
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5," \$ ~0 \! j/ J4 a& b# [3 W2 K4 [
        -1; Y) C3 L6 I4 X' f6 L& s' m
};0 w" B( [8 W9 j8 p
! G& a5 A* j: r" F
static struct gpio_led da850_evm_tl_leds[] = {! g+ d, s: d( n
        {
# Y/ p; ?6 d/ H9 x/ ?4 ]                .active_low = 0,
5 r  x  s7 G6 k6 @4 z1 y$ ?                .gpio = DA850_USER_LED0,7 W4 v4 |) P; }2 z
                .name = "user_led0",) [6 I0 V0 ^5 B8 I" F, f& J
                .default_trigger = "default-on",
: P& T# H3 ^$ B  E+ X- B& F        },1 [' Q& z' E3 V! j* ~
        {( r9 |3 }) k" n: X) n+ a. O
                .active_low = 0,: c3 R* W  W& s2 B2 A) n2 S- b
                .gpio = DA850_USER_LED1,5 @! j6 i- b, H
                .name = "user_led1",' Y2 o0 g! P' O1 G; L
                .default_trigger = "default-on",
5 J. {9 f; ~, Z* `, A        },
9 R0 X2 u7 T& t; g1 U) P$ r7 X        {/ A* V7 y! G& `! y4 Y8 ?2 j
                .active_low = 0,
- U6 S" ?& j$ u  c                .gpio = DA850_USER_LED2,* K* z5 k* K2 ]8 [: Y+ j: v* B
                .name = "user_led2",3 f) J4 K( z# N! q. @
                .default_trigger = "default-on",7 d7 j2 r, m, r9 x6 Z* a! A
        },( ~* S8 |! C: W/ i9 I
        {
% M5 |/ D1 W; ^. f" t/ z2 A; H                .active_low = 0,- o4 c! k! W4 q  L# Z# ?# r
                .gpio = DA850_USER_LED3,, l$ ?& Q; \& q4 }5 d' K9 a
                .name = "user_led3",4 y7 O0 a3 K3 W( p" [
                .default_trigger = "default-on",
* `* N1 @0 x% D! M- `) V# B) A        },
( @' y. W! d$ R};8 e8 b2 Z, M, V8 l
8 |" _1 J7 X6 t8 U3 S; j: h
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; W# g" U# i9 \: e0 P% r8 S        .leds = da850_evm_tl_leds,
5 k! o  O& f! w, T        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 ^4 K' |! G; y# X
};
( g4 e. m9 p9 E( J3 l3 S& k1 q
+ U# |$ h, e; dstatic void led_dev_release(struct device *dev)
) o  E. F8 B1 u; m8 \( A: ~{" x/ i8 \) ]- I
};
! l* m' i1 Q* Y% j+ \
( A( F+ K- }5 ^' h1 V" Q) Dstatic struct platform_device da850_evm_tl_leds_device = {
+ V& h- y; Z% H7 Q- G; b1 k        .name                = "leds-gpio",
# C+ A; m( ]' A+ m$ ]- U        .id                = 1,
* b% P8 E5 H* h# r- [# n) Z        .dev = {1 I7 x% W( @/ }1 w1 L
                .platform_data = &da850_evm_tl_leds_pdata,. e) S8 F2 j( R. ?
                .release = led_dev_release,6 z- Z  L7 W# I$ j! H# C
        }$ n- j) i( O# {% H0 d, l
};, A, n( x( _: W1 r" H5 v

5 f! u: t4 A2 R8 t/ M0 h) {static int __init led_platform_init(void)/ G$ U4 H6 }$ C- g* N6 y5 r
{
4 \- o  o! v$ M- H+ \! Q        int ret;
4 ]/ T6 Y4 a) n! a. L( b/ I( Z#if 06 k' c  l8 S$ Y: q* e* Y
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  T9 f; H% L9 H$ Y% x1 B, t
        if (ret)
/ N, t: V1 M: n! B, K) B0 F                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
' r; `* @! \) M1 R6 ^                                "%d\n", ret);
: N8 b' J+ Q' U  c$ m8 [2 m#endif
! o; o# h- @! l6 ]+ l, N3 W        ret = platform_device_register(&da850_evm_tl_leds_device);
" @/ s/ o4 x6 H- ~( m        if (ret)6 ^8 F4 c, d+ T: n2 e' A9 h% ]3 v
                pr_warning("Could not register som GPIO expander LEDS");( \' D$ F# F, |4 F6 r1 M
        else/ I5 x7 r3 z3 _1 o7 |3 s
                printk(KERN_INFO "LED register sucessful!\n");4 o/ v; e4 D% n- |

6 A2 n0 m0 d+ k        return ret;6 ~$ b6 r9 A" C7 I( E6 O
}$ ~  r$ R& N. p$ [# y! {

& c: d( p7 g) y) wstatic void __exit led_platform_exit(void)
0 e2 y5 A5 O& v6 O8 p{
" `- U5 W; f' T. _        platform_device_unregister(&da850_evm_tl_leds_device);
, v% a) e2 q. J, h+ `6 n0 ]5 X1 s1 T- [3 l
        printk(KERN_INFO "LED unregister!\n");4 F! d' s. u$ v2 O# V; H9 Z3 ~
}
; a' \7 ]1 p' n  N3 n
. n# A8 V: M* \module_init(led_platform_init);: ^* \# _2 a! G
module_exit(led_platform_exit);' i* D' f* t$ @  ~
+ l. G' R9 p, g* C& X. G# A& m
MODULE_DESCRIPTION("Led platform driver");
' M4 o/ `) ?" L: NMODULE_AUTHOR("Tronlong");( z9 r/ p) i6 j0 R1 Z
MODULE_LICENSE("GPL");
( W2 ^1 Q. T2 K5 L" f: N- H% {6 q9 G5 f# g7 z4 p6 ^1 g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-1 12:25 , Processed in 0.042851 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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