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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' C8 l+ W4 ]+ C& ~$ [5 H#include <linux/init.h>
. D# M9 R0 d3 F* b+ P1 t#include <linux/module.h>2 G' r5 K+ ~: Z. ^
#include <linux/kernel.h>7 q5 ~& Y' S7 n: Z& s; z7 B
#include <linux/types.h>
; {% j) n, B2 W$ P( N8 l/ a$ H; e#include <linux/gpio.h>: s! _) D! |2 e( F' s" F  V
#include <linux/leds.h>
& A. a0 j7 O; m3 g) b#include <linux/platform_device.h>
. j4 N' T) ]# N8 C6 E& P6 T( S' G6 D/ U9 ^4 o3 J
#include <asm/mach-types.h>
! x/ ]' t3 w5 W: m' s#include <asm/mach/arch.h>' G0 c  U5 v* L. W# c) ^
#include <mach/da8xx.h>/ [! z' c! R9 |
#include <mach/mux.h>
6 s! s* L& T3 H$ U, N1 ~% }, t8 I5 q7 j) ?0 i% [
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ J2 t+ q! l" y& n  C4 t$ h* Y! ~2 H
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)2 `2 @) c( i; {6 J: ^  b) {6 H: b" F
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
/ J  c" N, V" [* Y. L, h9 h#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: q8 r- k1 X" Y0 V) e" S  W. @3 U6 j
/* assign the tl som board LED-GPIOs*/3 [# t$ D* d+ R. A' p! m
static const short da850_evm_tl_user_led_pins[] = {
8 J, H0 S0 t  L% j8 `* j. }        /* These pins are definition at <mach/mux.h> file */: l' i/ [  q: Z- e3 j' Z
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,# r  K* r/ c) K& u
        -1% m5 ^& X# t" [. d+ o- o, A
};% l7 ^+ H  b3 z  b$ ~) @) ^

) v! V% H$ E1 ~) W9 istatic struct gpio_led da850_evm_tl_leds[] = {
+ x3 s* o$ r! @6 K* c. r        {* A% i- ~+ ^* \) Q+ k
                .active_low = 0,$ M0 J# a3 u! x
                .gpio = DA850_USER_LED0,3 m( O- a% u. p
                .name = "user_led0",
/ T3 R" ?8 V0 u                .default_trigger = "default-on",1 h5 X6 \. l, P# y$ _# O+ g
        },7 H+ A- X0 y' v# M
        {5 a4 U$ ~& X  T9 \5 V% D
                .active_low = 0,
" C; K! ]$ F0 I# R- P7 o                .gpio = DA850_USER_LED1,3 P5 I+ L- H% d0 y) e3 r
                .name = "user_led1",1 Z/ B0 ?8 Z; ~% [$ u5 }
                .default_trigger = "default-on",/ H! m2 @8 `" k$ k! I0 G4 I
        },  d0 X! n; M' ?% V6 l
        {5 R$ ~4 A/ a: q8 E2 m
                .active_low = 0,) y7 {" Y! H* Q: Y6 M: J
                .gpio = DA850_USER_LED2,/ h2 P+ I! B2 x2 q' w
                .name = "user_led2",- r* v+ j' q# f) f3 x
                .default_trigger = "default-on",
4 R4 s5 i# ]3 u8 k) \8 l+ {        },
( g- q7 z. t. J        {
/ r7 f$ j8 V/ Z6 i( l! W7 G                .active_low = 0,
" X( q$ i2 o3 m1 d6 c                .gpio = DA850_USER_LED3,
" F* C/ W" w7 W; K# W                .name = "user_led3",) |/ S, W9 H' a* w. t
                .default_trigger = "default-on",
0 {- t  B) y' f  }1 S* U: m        },8 E2 h$ d' F1 U6 X
};# n/ [: H* y* v1 z5 ~/ q. ~2 A/ i7 ^
3 e9 g2 l: M* i
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {( m) Q; a# q4 J, A
        .leds = da850_evm_tl_leds,
6 Y5 _+ Y" ~  Y4 H7 e$ e# x        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& n0 j5 V) V. d3 {0 w) S
};2 W  X6 h& c% n+ s+ P' [- R. \! ?3 D

* M. S% }# W. G. |static void led_dev_release(struct device *dev)
( Q; S6 C: G, q* E, V{
& I' B9 i. A& _+ v1 F9 a5 d};( v" ]6 G$ t# _7 A
% w, |* s( a( ?6 Y* q' R+ R7 u: p
static struct platform_device da850_evm_tl_leds_device = {5 c7 ?" Q7 o# Y9 C
        .name                = "leds-gpio",1 W7 |5 \  e: L6 q" Y
        .id                = 1,
1 c% J% t( i  t2 J. R' q: y: j        .dev = {
  L$ l. {6 p, \$ g2 M# K                .platform_data = &da850_evm_tl_leds_pdata,4 h, e8 W6 {2 J9 E
                .release = led_dev_release,4 a$ t( p' y* M9 J
        }0 S, L  l3 ?: J
};) B" i1 x  H  u) N0 G

, N* T2 h/ u( ^$ P9 K+ hstatic int __init led_platform_init(void)7 [1 G0 ]7 h2 w( r: _2 I+ S; X
{* U( u" c) O; N- a7 E! b' {
        int ret;  _2 C+ n8 Z' z! b
#if 0$ X) ^. x+ B0 y0 F  ^
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
$ O+ J2 C: \, k7 c, W3 z        if (ret)
$ y3 K. U& i6 r                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
3 R+ A7 ~/ D/ I: Z! Z5 q4 ~7 F) B                                "%d\n", ret);
# l6 X: j2 h0 B( H" r) a8 c#endif
- D6 Z! W1 G" C( n* k' _        ret = platform_device_register(&da850_evm_tl_leds_device);
% e5 ]' K, {" \        if (ret)* V* k3 J4 k& w  A. s
                pr_warning("Could not register som GPIO expander LEDS");$ ?$ x6 B- G/ `# G8 [- Y$ W' }
        else. V! m  F+ H. g( P* T4 {3 m9 p
                printk(KERN_INFO "LED register sucessful!\n");
0 X" u3 k! _6 H4 O9 y1 n' O* h8 G+ \2 H# [7 D
        return ret;
  j& e9 m1 n0 {, q* [}
- C. s" l& c$ D# J- v0 W6 `: `  w9 o0 {, {+ g
static void __exit led_platform_exit(void)
! x, v2 v% b/ _: T{
/ |" X/ S" W. \) U) j' u/ k        platform_device_unregister(&da850_evm_tl_leds_device);  s5 \% o4 p8 n! V  G) J' g$ u

: Y+ S8 z! j3 {6 m, d: x) |        printk(KERN_INFO "LED unregister!\n");
( r% Y9 q& a  N5 ?0 o/ D6 _& ^}
$ d9 u* L' N) s) a3 W# O; G( p1 x5 i/ |1 p# \$ h' p% y' K
module_init(led_platform_init);3 A& w7 w4 P( I% h& {# V4 g+ \9 m
module_exit(led_platform_exit);5 ^# |! o0 ?  w' K8 A8 D* e
3 D" I, h9 O" m( G
MODULE_DESCRIPTION("Led platform driver");$ P! t5 i8 `& U  K
MODULE_AUTHOR("Tronlong");
8 t$ r# k9 d* E$ d: o+ w% }MODULE_LICENSE("GPL");" |& v7 _3 ^. A. U  i: `
- [# I7 j7 r" B' [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-7 00:49 , Processed in 0.036801 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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