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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。' F+ y# R- |' K8 W# l6 S- G* y
#include <linux/init.h>% a. J/ y& F; U/ J$ c) c) N  u2 G  S
#include <linux/module.h>
  H" m. l7 X: B. n#include <linux/kernel.h>
) S  L, j  K% b#include <linux/types.h>
/ A% ^$ o8 b3 W( n#include <linux/gpio.h>" V6 y) k$ K# c! g/ K" }( F* ?
#include <linux/leds.h>
1 t; N6 t7 V! _3 {#include <linux/platform_device.h>3 k3 l; X' c( B. D% \2 Y

2 t, M9 I3 j  Q% {$ y( A* g#include <asm/mach-types.h>* }+ V4 R0 b" A  b$ L- W6 k
#include <asm/mach/arch.h>1 H. w( n& @" X6 t( Y/ G9 G
#include <mach/da8xx.h>
+ u, g  G& a; l% p% `* I/ X- p$ U#include <mach/mux.h>" I% L6 Q8 J6 x* c
7 H& g2 X1 M7 r
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)8 m$ }1 Q- m; Z
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 M3 C6 |* t' f/ }9 b$ B* `4 K#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)% l1 O& O4 S. |/ L* _( Z$ L$ F
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)- r8 D  W9 k: [' q9 u
' q$ T0 e$ h2 d# K& D  V
/* assign the tl som board LED-GPIOs*/
8 g# w" ?; T/ g0 w% R. o& v6 l' Rstatic const short da850_evm_tl_user_led_pins[] = {
0 u# @& }- {5 n        /* These pins are definition at <mach/mux.h> file */
. B! U5 a; [5 F0 F  ^8 K& f) w5 o3 v        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
( B) J/ N9 D: _  s' H        -14 L3 {4 a5 k2 H
};" C$ L2 M( M, s, j  z. Q% d
% w, d$ L% A: R+ [4 c% D& K
static struct gpio_led da850_evm_tl_leds[] = {+ o( H' w3 m; C. L
        {
1 p9 Q9 C: G9 H+ p                .active_low = 0,4 p$ g! ~6 o- `9 U
                .gpio = DA850_USER_LED0,9 `# u" t( |1 H# e% a: k
                .name = "user_led0",
9 M  }5 G) L8 a3 @! v; y6 g                .default_trigger = "default-on",3 M6 W7 C% z( b" ~; Q/ H
        },
- ^4 B3 d2 l. J+ d7 t; D6 z        {% X: B: B8 L6 C+ L( X+ U
                .active_low = 0," I# q; n3 j: g' j/ ~, u/ @
                .gpio = DA850_USER_LED1,
& |( \. \3 ?% ?5 Z( z: V                .name = "user_led1",
% I) \' `0 L7 ]- S7 K% h, b                .default_trigger = "default-on",& i+ j" P; u* I
        },8 p6 F& N( w, A5 s
        {
+ d0 }6 ?0 Q6 j$ i                .active_low = 0,
& Z' U0 P3 ~1 y( T) d$ [8 {) ?                .gpio = DA850_USER_LED2,
5 p3 x# E2 P- W) K2 M; F6 c                .name = "user_led2",# Y, G! }% w' R$ X
                .default_trigger = "default-on",
5 b% }. h2 W1 F6 J8 R! H        },
3 G' |3 N4 c$ B        {* W+ Y" F$ j3 Q
                .active_low = 0,
- }; m1 R3 a# ?$ A' n                .gpio = DA850_USER_LED3,$ @; |# Z, S' h4 O4 x" f( I5 h) O
                .name = "user_led3",
$ a% w7 q' ^6 s2 O. K  }* Y9 i8 Y                .default_trigger = "default-on",
; z7 G. a. d4 k4 A$ i9 O+ c        },5 d, X6 C; L2 z* o, k, b
};
9 D+ \6 P! g' f7 W5 d% S
* B; L; |8 D5 }$ ^2 r) }/ s+ fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {$ z- D  J; r0 G
        .leds = da850_evm_tl_leds,
1 r+ |- w1 d% B        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),' S; C7 \1 @% [/ O/ X5 T& ~6 T
};
7 U6 z  P% J$ t' X3 ]8 T. r2 q0 l4 s3 y+ ]: q" j# r0 v
static void led_dev_release(struct device *dev)
1 H5 k- ]+ w+ ~" S0 _% m% W{
2 t! p: N* ]( b! k0 c};& P* F; L. N$ V  I0 Z! S
* n8 C9 `$ b% a/ W' F/ a. e: m
static struct platform_device da850_evm_tl_leds_device = {
! a7 O4 g" G- `( z# F4 g        .name                = "leds-gpio",
3 ?+ ^- _( h' _: _        .id                = 1,# ^! I6 k* i) G+ D9 |; s* f1 C0 ^
        .dev = {+ F3 ]/ N7 T7 V% D4 w! h
                .platform_data = &da850_evm_tl_leds_pdata,2 ]9 X) x- ^' V) @2 _0 i( D% O9 I
                .release = led_dev_release,$ X" v1 o. m. j) e4 A
        }# N9 {+ r9 h, ^$ m4 c9 ]
};5 Z. o+ A8 X3 o
+ W9 @( ~4 F- }9 g% d
static int __init led_platform_init(void)
1 \, H6 N$ a: C/ g6 ~( }% `{! l1 ?4 ?' A* h" g' ?1 N
        int ret;
' x) _% I9 v4 j+ ~8 r0 R#if 0
, F' f# W' h4 R9 _# r2 u        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
7 F, N4 V* D3 R" Y$ y, m        if (ret)
9 X8 }) s+ {6 \3 w) T                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
2 ^, Z0 g9 w. q0 O. n# n                                "%d\n", ret);
; I9 K1 G" m2 d) @& |/ \#endif, e# ^; X# O8 Q" w& E: s
        ret = platform_device_register(&da850_evm_tl_leds_device);" K" r& l3 t# J3 h& u" u
        if (ret)
) |* W) T% [5 j$ {( a0 T8 A  d( B                pr_warning("Could not register som GPIO expander LEDS");0 F4 w$ [" E/ V' f
        else
" J6 f7 j+ j$ h% _                printk(KERN_INFO "LED register sucessful!\n");
1 b( `4 R2 b2 S9 Z# h% o& k, U( o
" g$ @! C0 W+ L- m- y        return ret;7 [  G& y* Z2 M9 t
}
, `% Q0 v0 t3 m: f% @
0 B9 s$ m" O, Q7 r8 G  _/ @static void __exit led_platform_exit(void)
" u* S) y1 _! F  S) {4 t# x{
& k+ k! x. r$ c! m        platform_device_unregister(&da850_evm_tl_leds_device);. G9 L4 ?) t& G/ v; i; R7 F

# F' @% |  \0 a) d        printk(KERN_INFO "LED unregister!\n");
- j9 u6 Z6 H, c- K}
5 I. G/ D) u: i% u
0 q) F( b, v' s5 U  F9 ymodule_init(led_platform_init);
1 B8 ?) U2 F, Z* z! Emodule_exit(led_platform_exit);
' d: M) H0 ?( n9 \# v' C2 V8 L# P3 t! b6 r9 A
MODULE_DESCRIPTION("Led platform driver");' P6 ?: O8 I. G% u" e0 y3 d
MODULE_AUTHOR("Tronlong");
8 _9 Q" Y& c8 Z7 HMODULE_LICENSE("GPL");& [- r2 w, v2 r
; ~: E8 P: p! r8 {9 q( \  U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-23 22:32 , Processed in 0.042033 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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