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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
) F4 }3 B' V: I9 G2 W, [6 D, e#include <linux/init.h>
+ u$ c8 B! c) B#include <linux/module.h>
* ~  O" r1 f: Y% [+ y#include <linux/kernel.h>+ k. r+ _, d5 c
#include <linux/types.h>
# G0 |" k; J+ f1 @  k) M#include <linux/gpio.h>
! p, b! {  @: k5 k; U% g8 X5 j) B#include <linux/leds.h>
% |+ h, o' ?5 w0 r" Y4 I+ u4 T#include <linux/platform_device.h>
$ o# f0 W& F! M
5 d8 @; c1 o2 b. Z( _$ q3 H#include <asm/mach-types.h>- R7 m9 Y9 r  \" \
#include <asm/mach/arch.h>+ S1 j8 ]6 c4 `6 U) b6 J2 P
#include <mach/da8xx.h>
* E! a: I, R8 p9 L5 ?& C& y! }#include <mach/mux.h>( {. }1 U4 ]' V, @- {2 S

6 p" Y) a! |: I. H$ F  H: U#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 B3 e3 o( v- ?#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)2 R2 @7 k) x" R0 f$ ~" T+ c
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
% Y  W9 t& k2 `% L#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
% X0 J/ ~0 X  h( C( v- @. E3 P7 J4 ~) @+ B4 L. ]
/* assign the tl som board LED-GPIOs*/
' G7 M9 }# S4 G! R9 K# X5 p0 Tstatic const short da850_evm_tl_user_led_pins[] = {9 a2 V0 d3 G" K# h) I
        /* These pins are definition at <mach/mux.h> file */% n% E! y3 b* Q0 b  w4 {9 v
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
7 Y( q9 c9 J4 \        -1
; f* c$ `% j$ c* Z( x6 K& Q2 A& W};$ @  p) s6 C  D9 h' |

. s; k( X' d/ ?7 Z9 hstatic struct gpio_led da850_evm_tl_leds[] = {
) C/ ?' Y( W* @) S        {
9 w* K  ]; j- y+ R- Y; @                .active_low = 0,: d3 k8 ]$ {) j; `; d
                .gpio = DA850_USER_LED0,% H7 D) ~) z4 e* v* y6 {
                .name = "user_led0",
+ C- k% ~# `+ a6 ^$ [  I3 Y                .default_trigger = "default-on",
$ A/ R2 N2 Q1 u8 ]' v        },1 `* X0 P& Y' ]  f: O1 X* K
        {, Y+ Z0 O) f0 J9 W. V
                .active_low = 0,
' a$ s6 E7 J2 G, Z                .gpio = DA850_USER_LED1,
1 j' v* _' D/ z' x, v$ _& g6 z. v6 y                .name = "user_led1",9 S* a+ n' o+ ?9 j  t
                .default_trigger = "default-on",
' n0 G5 y: Y. y2 n$ w        },
1 C$ W9 F7 c- d& p9 t) c/ D        {! Q+ T* w4 A$ u' I- p0 p
                .active_low = 0,% R% }, b5 r$ m+ r8 d
                .gpio = DA850_USER_LED2,
1 T% g* Z5 z% M8 u" r6 J                .name = "user_led2",
- H4 i4 i' W/ [1 X) B                .default_trigger = "default-on",
: r4 a- A2 j- y3 o        },8 |' i. M9 w+ p
        {
6 |# m( J7 N) _  h& T- l                .active_low = 0,1 ], q6 y% v: X1 U6 z! d$ b
                .gpio = DA850_USER_LED3,& g0 b1 |5 Z/ p: O2 m
                .name = "user_led3",  z" x! p2 i5 f- g& s
                .default_trigger = "default-on",4 }3 Z. \( K4 f0 m( e: Q' X/ O
        },
# I) G- a; w' \. j0 W7 X! s};
; [( i" K2 b1 Z( j# z* C$ X. a; f3 N, b+ X% |7 n. w/ t
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* F% O7 z, C6 W: \2 I2 R- l        .leds = da850_evm_tl_leds,
4 @4 ^" H0 Y4 @+ L8 ]# E3 c8 }4 x        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),9 q/ G) |5 r/ F# \: Y
};6 D+ W, H/ P2 g5 e1 u
( ^  _# P  n* ]8 Q* j0 H
static void led_dev_release(struct device *dev)
8 q3 C, o; C3 _% x' b{0 q8 k6 U, A, N6 J* B1 ~! ~
};
4 H8 w4 M2 }+ Q3 B; r9 G8 T. H0 B  ?& U
static struct platform_device da850_evm_tl_leds_device = {
* C0 t% @5 b, F) r        .name                = "leds-gpio",
4 F0 a" [* s  `# e+ z/ E6 K- A        .id                = 1,
/ k8 @: ~( w& y/ i, D. P        .dev = {
. G  P0 h! J" x) e+ O4 X                .platform_data = &da850_evm_tl_leds_pdata,2 w+ z+ K8 I1 R) y
                .release = led_dev_release,) I" T. t) R4 ^  ]
        }( ?: H, e' p8 V* P. K9 ]
};
  a4 H1 B# C- {) b5 _& ]) B7 o, k- K9 V9 r( O# Z( B
static int __init led_platform_init(void)
9 ?/ }# W7 C7 O0 F. `" ~/ @{- Q0 P  S. }0 u2 H: B- |. p! {; q
        int ret;; a* c7 c% e/ V
#if 0
& g/ a: H: e9 Z        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
0 x, R. ^: S1 d8 t1 D  n        if (ret)
3 s0 u7 A) U% t4 N% \) `5 n                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
: @1 j+ f. h: T, J                                "%d\n", ret);: e) h% g! N: _: i# M9 R+ R
#endif
" q8 f' L- p3 t4 }, W; \# Z9 l% R$ G0 _        ret = platform_device_register(&da850_evm_tl_leds_device);
  X. j  Z1 b% V- D        if (ret)" r; X% v( @& j
                pr_warning("Could not register som GPIO expander LEDS");& ^; b8 G2 l; h- w- G9 _4 {
        else; t  I' i- m( [! Z. C; e" `1 a) c
                printk(KERN_INFO "LED register sucessful!\n");
% U7 {. R8 Q- f2 z# P4 Y, R$ @, D* `. {4 X
        return ret;. v3 Q$ U  Q, u8 E& W6 \
}
) p- U, @. q/ ^+ Y, e# i
( ?0 ]& Q- y5 mstatic void __exit led_platform_exit(void)
4 C4 [- ]$ \  E' E- c/ w9 M- ]{) }0 L. q. s$ S6 ^9 |' I$ B
        platform_device_unregister(&da850_evm_tl_leds_device);( _8 m! S1 v9 x8 {2 A& P( n! z" |! m

/ k  z- p! ^  J7 q4 m        printk(KERN_INFO "LED unregister!\n");$ L: x" |$ Z5 D3 e
}
% r' f: H! q6 y1 L2 g1 w9 Z% C/ u
; R; R' m* X0 A8 G/ Y* d# \' Xmodule_init(led_platform_init);
0 b1 Y7 H* k; i/ f' U6 g2 t* |. }0 Jmodule_exit(led_platform_exit);
9 [5 x& d7 n6 d  H4 [  N* E+ q; C6 b7 ?! \+ L1 v
MODULE_DESCRIPTION("Led platform driver");
* N( m( J8 J* ?5 Z, E" o  @/ jMODULE_AUTHOR("Tronlong");1 e, ~+ ^" h* [2 s7 E
MODULE_LICENSE("GPL");2 D5 e! @  n1 \0 ?. C9 G+ Q( n

8 m' \( o3 S( ~: y" L& T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-2 11:24 , Processed in 0.037369 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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