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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 q0 l/ L& p; Z' S6 J#include <linux/init.h>
% _8 O5 Y& O! g5 |#include <linux/module.h>
' E6 ]% T! G& J# o; c#include <linux/kernel.h>
; L4 a2 Q+ x8 Q. V1 W  v. V3 Y# z#include <linux/types.h>
8 b, T* ]. N, w  P#include <linux/gpio.h>, k  b5 U# w6 j$ M5 q/ @
#include <linux/leds.h>
: i' R' @: [& x% j$ m; I#include <linux/platform_device.h>
+ c$ ?; y7 m1 V7 u2 ?- h$ j9 G4 E& N
#include <asm/mach-types.h>( ?9 m. a- w2 [- y7 c
#include <asm/mach/arch.h>
% v+ @  g$ j1 L6 w4 m$ M#include <mach/da8xx.h>
/ _  B$ S8 y  Q5 r- Q0 a4 O#include <mach/mux.h>1 Q7 B$ h: d$ t

$ X, t# D5 R# \  h: L#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' c$ K: B( K' ^$ [
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)  m3 F, @2 r0 W; Y1 y& j  H+ Q
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)# F/ z& ^* |0 k! T9 h8 ~
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 J/ I8 G/ v" \! R. b9 Q" p$ U! `1 F
1 Q  b8 q- i" d! O' e( y
/* assign the tl som board LED-GPIOs*/
. O2 A( L3 }& t- _6 P9 x4 q# }% Tstatic const short da850_evm_tl_user_led_pins[] = {
& B. l4 g" S1 ~" R, l* q; d3 h        /* These pins are definition at <mach/mux.h> file */( x$ I2 I  M. F* }. W3 [
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
0 D; |. K! f% T" H) t        -1) C/ R( K6 G9 s
};
3 b( l% @# c2 X- m/ P6 x5 r
$ p$ t# |# r7 a5 \: M( astatic struct gpio_led da850_evm_tl_leds[] = {; \7 P' n+ o9 ?+ D% @, I
        {% ^' ?% r: t* o5 E- v4 t
                .active_low = 0,7 p3 ^+ r3 L/ r9 F
                .gpio = DA850_USER_LED0,
5 `/ d9 A5 N5 Z, X$ R                .name = "user_led0",
9 ]  l- Y9 ]# X1 `. Z( R                .default_trigger = "default-on",
/ O# L- k  z+ F        },& v% {  g% ~. Q# u
        {; z( }5 b; Q8 m
                .active_low = 0,
0 J9 g6 H" q% w  V9 f                .gpio = DA850_USER_LED1,
1 I2 b% M1 ]: _                .name = "user_led1",  u; L* u, O0 L: Q1 _
                .default_trigger = "default-on",
. S5 F# R% D6 L        },+ X+ i6 q" f& l/ l  M
        {
+ {2 g# [5 }# d2 u' F* t                .active_low = 0,
% R: ~- n* [: U1 n                .gpio = DA850_USER_LED2,
2 \1 W: f2 W. y$ u                .name = "user_led2",  W* C. s) B$ h0 D
                .default_trigger = "default-on",
5 I' l7 N( `& ~, x! u; P* a        },8 x: h8 [" z+ Y( ^9 _/ P* l, q) @
        {
: F6 y* s2 }& C8 d                .active_low = 0,
1 [& [% x, d0 M. y* {. I. `                .gpio = DA850_USER_LED3,
: h# Q0 _# w6 x% b                .name = "user_led3",4 A/ F6 @+ a3 N! h, M7 B% j
                .default_trigger = "default-on",
# M% u2 C0 a# q* @3 w* j# z# h/ h7 @        },( v$ Z* l9 z, H; x9 @) Q% Y# g2 V5 K
};  D3 H, C/ |# c( c# C9 @5 U* I$ s
! g. q- p& |$ H% Q
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: ~5 V$ ~: ?4 A' b9 r        .leds = da850_evm_tl_leds,3 q' L& P: n/ C5 {5 C. L7 D3 X
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
& c! U# Z& R9 K! ~1 O};2 Q% f- O- M9 s

0 _$ U! Q) w9 C% w7 N, `0 ostatic void led_dev_release(struct device *dev)  I5 E0 v0 S: x! ~
{, P6 W- \  v' ]0 v
};# y* N  B* J( V+ k9 B; f

. I' ~9 \( r8 Y: g8 ]6 hstatic struct platform_device da850_evm_tl_leds_device = {( O6 e% D3 [) \
        .name                = "leds-gpio",  e& s+ N/ T$ [$ m
        .id                = 1,5 r7 G2 ?3 s- @0 ^
        .dev = {
4 x: C$ K- }& K/ _( i9 n. V+ I                .platform_data = &da850_evm_tl_leds_pdata,
: K3 ^7 I2 {$ A, N) v# E                .release = led_dev_release," J  U) q: F; D& p( Z% Y  K
        }3 K" c# d( r( _) e
};  s) t( T8 r" y( z: c! R9 f, d" Y5 |
# c1 o% k5 L; W7 S! N+ ~, f7 G* m7 r1 E
static int __init led_platform_init(void)
% q+ Q1 G5 H$ O- ]8 Q; l! f4 W{
- a6 K2 N  \, q& J# L: V        int ret;
  j2 _3 M: j3 o#if 04 V0 b1 r+ u$ E1 S! f
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  i6 [. M2 n( r/ D- j) w
        if (ret)
, X) y' l2 c& p7 M/ I                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
8 o  g0 M1 {: ~( Y. b( K                                "%d\n", ret);, M* L' `% ^" D7 r* [
#endif
* k3 E& u) E8 W  u        ret = platform_device_register(&da850_evm_tl_leds_device);; K+ |6 O+ d) B$ Z
        if (ret)4 P$ a( |" W: ^6 r7 P* Y
                pr_warning("Could not register som GPIO expander LEDS");
4 [* x" p9 i' K2 f" L        else
( ~. Y) k- g9 {, g# N# [                printk(KERN_INFO "LED register sucessful!\n");  S: v& V# M+ B8 t
+ ~" e9 g9 T, E  C3 U. c  _: L
        return ret;% C6 V  U1 P+ @1 W, T, n. K) s
}
' o1 Y4 P1 z* w, K* N, [: Y/ I( a& r. n
static void __exit led_platform_exit(void)
8 z8 V6 f* |+ G{
) C4 \) l  G( R! G4 Q, t$ i7 \        platform_device_unregister(&da850_evm_tl_leds_device);
4 r7 E1 R% @6 k5 ]2 F
, D! b% B* G) ?6 x5 i# L        printk(KERN_INFO "LED unregister!\n");( W7 Z5 J" {# @* |: b
}) J5 z$ S4 q4 g+ ^# u

0 Q, l5 a: N; m# o/ T( z& Kmodule_init(led_platform_init);( L6 {5 x5 C3 ^4 C1 Y4 e
module_exit(led_platform_exit);
7 ]& v' K  y5 ]' U/ B9 _1 S) S' i- ^
MODULE_DESCRIPTION("Led platform driver");
0 ~( I% q2 C: f% R0 ^8 HMODULE_AUTHOR("Tronlong");2 G- v: l' t# W. c' c, `3 J
MODULE_LICENSE("GPL");# V; l5 z3 a/ Z

" J* L1 M4 @0 H+ q% j; U  ^( E
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-7-5 09:14 , Processed in 0.040459 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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