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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。* r& F7 }3 z8 z8 E
#include <linux/init.h>8 ^& {9 C$ `3 k
#include <linux/module.h>
+ q) c4 c# V" b! y#include <linux/kernel.h>
/ a0 A) k& x' J$ z" r#include <linux/types.h>
: \, E7 h* Z; ~+ w+ ?3 l& i#include <linux/gpio.h>
, R  z4 z9 z7 A5 x7 {6 y+ \#include <linux/leds.h>
1 J  w" {/ J: R; n5 W0 Q) T* h1 |#include <linux/platform_device.h>
( D1 D; M" y& G, `, Y3 {9 M2 `$ s$ z8 \5 `* c5 Y% ?
#include <asm/mach-types.h>4 O# }5 d1 M" X# r* u' p5 Z8 ~, n
#include <asm/mach/arch.h>/ m4 _/ y# \+ N2 ?9 U
#include <mach/da8xx.h>
  k. k& U& L. V" y0 x1 E' a& v, ?4 e9 O#include <mach/mux.h>
" V% k+ w8 a3 O, h5 D1 s. v+ P
1 X* M4 A8 w, e3 ~, Y& @#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ l8 [' a: f- T0 i7 @8 G6 O$ u
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
. e. r1 d9 q$ y#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)* K  E- q8 i( ~! E" M; V7 E" Z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)4 k: o0 x5 z9 q3 ~& O& t# \$ i

$ p2 t' {* Q' k/ ^5 H9 ]/* assign the tl som board LED-GPIOs*/% U" `( a0 q2 F3 U! z
static const short da850_evm_tl_user_led_pins[] = {
6 K2 H" f6 [) b# {5 p, W' n: l        /* These pins are definition at <mach/mux.h> file */% E9 m' O( A, ~/ o- \2 w
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,  ~6 V. I/ ^9 y0 t0 J
        -11 G3 J# g- F) r( R0 A/ I! Q$ S
};7 t; K, m( ?6 [- I

) d8 N0 ]9 ~: r/ Y. Z: R+ W( kstatic struct gpio_led da850_evm_tl_leds[] = {5 g/ U( ?7 F. R
        {! s0 i' {; v8 b; R7 f: _4 P
                .active_low = 0,) s& j5 [1 ?+ V4 m- U7 a
                .gpio = DA850_USER_LED0,# o0 U5 n, b1 I) Q3 Q; J
                .name = "user_led0",  f" s+ ]9 v* {
                .default_trigger = "default-on",3 y6 a' K# p$ r% S" n/ m5 q, E
        },- s) Z0 L, F0 s7 N! v
        {" W  H' a. u- S/ k0 t) q' t3 p; L
                .active_low = 0,0 |5 k5 y" }7 G9 ^3 E
                .gpio = DA850_USER_LED1,
' V! e1 b* T0 G, U# }0 W2 l                .name = "user_led1",
+ I% Y) p* F5 d0 i                .default_trigger = "default-on",
7 K5 h- c- ~) T. j1 B7 r# |        },8 o* n1 H8 u+ m, h7 Q
        {+ z. B6 D) A" M( j% R; J$ M
                .active_low = 0,
5 E  w6 o3 n0 u! C8 @                .gpio = DA850_USER_LED2,9 K6 Z7 T8 K, F9 f' o: m  S
                .name = "user_led2",
1 }, h. Z/ U9 b/ B/ }                .default_trigger = "default-on",
$ g; ?" e) A) K4 }; v6 T2 K+ v  S        },0 Q- u2 ]9 j" b) K" U9 I
        {
; E+ y7 S# [  E6 l4 ]                .active_low = 0,
& I! }& D+ P! A$ ]                .gpio = DA850_USER_LED3,1 ]$ Y; K) V7 Z' o
                .name = "user_led3",, K5 @$ p& m+ g8 ~8 \6 g
                .default_trigger = "default-on"," X7 i  X/ Y8 x! @/ k; n
        },
% b3 p6 a* y/ M2 e6 ]5 ^4 _9 n};" |; q/ }+ t" |0 p1 K" P0 K
+ j4 S# |3 h6 @+ K$ l+ h+ s4 ^  R
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {# ^  s0 F  R% u) n$ ~& ]  M
        .leds = da850_evm_tl_leds,
! o, u1 x3 {3 c5 I2 q" R( w        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),( H/ Z5 C9 [1 {
};
6 I, U5 z2 k+ p
. M( d, o9 Q) S( Gstatic void led_dev_release(struct device *dev)
8 ?1 n1 j" e+ _/ H% F9 F9 f- s{- J- Z/ ]$ r4 v% V4 p
};! K6 a8 p  Q  Q2 |0 v1 V$ [2 |
- z, {" p4 Q. t
static struct platform_device da850_evm_tl_leds_device = {
  p  J. C- @* K2 @- g  d        .name                = "leds-gpio",% H7 Z/ ]5 G9 M% s/ c1 a2 V: w
        .id                = 1,2 A5 D0 y+ W4 J; Q
        .dev = {
. L9 Q" P- e/ p7 z9 n1 A                .platform_data = &da850_evm_tl_leds_pdata,
# \9 z% g& F: k1 u; M9 R                .release = led_dev_release,
& {/ \+ v6 H$ }. Y4 F" r/ x$ K: ~        }- H& b* ^5 ~- w
};3 Y% n5 r" T, J, v& j$ D  k) C

+ ?- @4 _2 ^& v' C9 |% h; a) Rstatic int __init led_platform_init(void), X$ n" P6 }7 C% q% l+ C9 r! w
{
( K" d  V+ ~" p" j; F1 q, n        int ret;
  U! A5 F9 n. k* \#if 0" ?2 A2 [) l* n% T& X
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- \& T+ c1 Z  L3 k+ k1 K        if (ret)
7 a6 l; h0 O4 G                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
: p/ N3 p& S" S' s8 @                                "%d\n", ret);
- ~. m  G. r% N- t; ^( w#endif
& s- u. z, x- e1 G4 K        ret = platform_device_register(&da850_evm_tl_leds_device);
3 `/ n3 ~0 l3 n& M5 z5 R' F) j( z* A        if (ret)3 M# C: _1 s* @3 L. W
                pr_warning("Could not register som GPIO expander LEDS");$ f4 q2 _3 H7 X1 x" a) K' ]( }
        else
- X# i# G3 B# S1 R( L' N0 ]: v                printk(KERN_INFO "LED register sucessful!\n");5 d: S$ `# f& j  A

+ Y4 l  O: j  V; Q% P, I- M1 S! z3 \        return ret;+ p4 i0 {. T5 B
}
3 Q; Y7 C6 _7 k" @8 t
3 A* O2 I7 t* a* V' m6 U2 j# mstatic void __exit led_platform_exit(void)
% l+ B2 T( [* x# q& }1 B7 r{6 u/ z" m1 v8 C' G) m
        platform_device_unregister(&da850_evm_tl_leds_device);0 {7 l0 E7 K" }6 V
9 I( M% J3 X5 m& R
        printk(KERN_INFO "LED unregister!\n");/ y4 j) h8 N+ Y  i& T0 O
}
8 g7 _" t) F& H" [! k" Y
0 ?9 x2 G0 O7 A  U# Hmodule_init(led_platform_init);7 Y6 H# M/ |0 w' R% X( ?
module_exit(led_platform_exit);% e' o2 v2 n( U

  B9 c+ z" g. i* Q# F5 n3 [MODULE_DESCRIPTION("Led platform driver");: f6 p% c: |0 H" D
MODULE_AUTHOR("Tronlong");
$ O, U: E2 y( F! c) ]! EMODULE_LICENSE("GPL");" [+ `4 Y; l# e0 ^% T
; G5 r; S7 \: S/ H
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-10 18:12 , Processed in 0.041298 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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