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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. E  x3 g. T5 I  M6 A" M/ _" n! l#include <linux/init.h>
  ~3 T: W2 i: y' J8 p2 C#include <linux/module.h>3 A$ J4 l8 v2 N% X6 J
#include <linux/kernel.h>0 F  B* L; P+ V$ O
#include <linux/types.h>
2 C: ?) {) T: B2 k( m#include <linux/gpio.h># y# u, b. e5 @0 F$ K
#include <linux/leds.h>
4 ~- u% ?( X5 g6 B- H5 M  O#include <linux/platform_device.h>% \2 z6 ~+ r& [
4 [2 i# ~2 q' V
#include <asm/mach-types.h>
( l! T  p  J% E#include <asm/mach/arch.h>+ }! v: F# D/ m: n9 J+ T+ I
#include <mach/da8xx.h>
, _' r4 o4 \( }; J  f#include <mach/mux.h>: q9 X' \1 m8 F- P
& V7 D# V* P7 g* r
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
/ P) z7 M, }' e# q  T- z#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)+ r7 B( C% V# C: X0 h2 l8 i. U
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( z  Z% s* k$ J/ b) C" L1 w( {: `7 h#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# Z3 i: O! R0 Q0 O" r- b. W  c9 Y/ h7 w6 t# W/ ]9 ^7 H
/* assign the tl som board LED-GPIOs*/
) g% [8 _! c2 N; f1 U( h% Pstatic const short da850_evm_tl_user_led_pins[] = {2 d3 w5 b, g$ B
        /* These pins are definition at <mach/mux.h> file */
9 \, V) u3 F/ ]' G5 z, f        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, }7 @( {; i4 {1 j+ L5 O        -1
% [( L3 N' J- O% Q* ^8 x};5 W4 e$ h7 A( d2 C
9 e% C5 w8 q" d
static struct gpio_led da850_evm_tl_leds[] = {5 z6 d, E0 d5 R4 v4 N) J2 w6 |' h
        {& L4 ^& O# i4 |7 n* f
                .active_low = 0,
) G1 a9 b; `: i5 L+ r5 c# ?                .gpio = DA850_USER_LED0,; b  o1 Q( I/ \
                .name = "user_led0",& |1 Y' k. Y" Y+ W* g/ U
                .default_trigger = "default-on",
" B% q8 U  L; h# E5 @" B0 H        }," `" h* V. Q5 G5 h
        {
0 |% O- n: F' n: ~% ]3 G                .active_low = 0,8 _0 K' w: }$ |) l
                .gpio = DA850_USER_LED1,# T5 Z: Y3 q- {* a0 p
                .name = "user_led1",$ ?* Z0 U& j, ]9 A
                .default_trigger = "default-on",8 h& }- K8 I; Y: X4 o- ~7 r2 I- w
        },
$ P' W& b  o" B5 F        {  d! O4 Z1 [. b6 M, E9 p
                .active_low = 0,
- T; _( Z# g' Z                .gpio = DA850_USER_LED2,% K2 H+ @0 u+ O) X
                .name = "user_led2",
! |8 M% g; |+ w. j/ ]5 X! _                .default_trigger = "default-on",9 M/ v# K% P% d* R& W2 O6 J! i
        },2 D* ^' G: O2 K' Y
        {
' e2 n8 d. A, p/ v9 Q  r                .active_low = 0,5 `5 e. E3 p* z- Z9 t
                .gpio = DA850_USER_LED3,+ Y5 \) ~; Z. l0 n
                .name = "user_led3",
5 D0 w$ }: b- ?( ?$ G$ _                .default_trigger = "default-on",
3 [5 k4 \- T% R( d2 p9 E& u        },2 J3 a* }. u) L/ ?6 S
};3 K# k$ w+ C! V

% D' E- H. P' kstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {* t; n7 o' p: b9 X) V1 v- P
        .leds = da850_evm_tl_leds,8 E. d* l6 }* q$ J" D5 z8 |7 e$ e7 I
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& B& H6 n% [  H7 y! w
};
) j+ D# g+ ]) m' z. `+ M# n2 s& `
6 O. W+ N& f: lstatic void led_dev_release(struct device *dev): _" m/ P8 Q7 Z0 y
{) K6 |1 {8 p1 w1 v8 q% k# ^
};5 V, p! ]. F( b/ e) }

# B( w  U$ m) P. ~. s* Xstatic struct platform_device da850_evm_tl_leds_device = {  Z  d8 y2 Y) ]9 s/ D  K
        .name                = "leds-gpio",
7 w/ y) s, u) e  C$ g        .id                = 1,
- G8 C  y( c- U) T* T        .dev = {
: T( K7 l0 a4 ?* X                .platform_data = &da850_evm_tl_leds_pdata,
% F+ L9 }  Y. F- v4 J                .release = led_dev_release," g, w' B+ E! K3 Y
        }
% {: A4 H. Z- L$ q2 o/ u7 o' d};
4 x- I$ w/ h: k/ b5 K& q8 U
7 c3 i1 j5 K0 A0 Wstatic int __init led_platform_init(void)
# Y( p0 |( L5 H/ M2 H6 X8 W{, `- }& \5 H. k
        int ret;4 e; v2 e  `9 B; [
#if 0
7 n( s( Q4 p3 o; C% T3 ?9 {        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);) d6 _7 |$ A- b# M/ j5 Y/ M
        if (ret)
3 G$ L2 |6 `% D9 ~3 q8 r7 o                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"! G- \2 v/ x. c4 X, f: [1 R
                                "%d\n", ret);
$ n; M+ G5 n  J9 d& X5 [" g#endif
  s$ H1 F$ H/ e8 w7 k# A5 b" Z9 f4 \        ret = platform_device_register(&da850_evm_tl_leds_device);
5 ]) N$ @  u$ X! p/ _. l3 i' }        if (ret)
: h8 _6 x/ T1 g7 i% v" ]- k  |7 m                pr_warning("Could not register som GPIO expander LEDS");/ ^& F" T0 p8 B
        else  `" p, e; R( V4 \& l3 [
                printk(KERN_INFO "LED register sucessful!\n");$ n& X  g3 A9 v- @: C* U$ H
8 d1 T) K; X- g, ^) f; @2 l
        return ret;
/ E/ h! {: W% Z+ j: w/ C}
, c8 r1 a2 H4 W* ~+ \( L& p7 ?4 G: H/ b% ]: r7 |( T4 I* Q
static void __exit led_platform_exit(void)
8 N3 U9 b( f1 F, X, d+ J+ e{
: |7 k  X* }" y/ x2 Z, |        platform_device_unregister(&da850_evm_tl_leds_device);
4 ^6 l5 p9 B' d9 W) I1 `
) y7 Z) b* V( N; x5 r  o$ M1 A- P        printk(KERN_INFO "LED unregister!\n");
: b/ r5 u$ C, x}* u2 c" z4 M. q2 b
' A; n# w% ?* }2 s2 y+ F
module_init(led_platform_init);$ }0 K8 L7 N; S" z9 m( U
module_exit(led_platform_exit);
, e, l- h" w( z* K
1 d9 D. s2 {6 `) `6 M% fMODULE_DESCRIPTION("Led platform driver");
# @0 v6 J+ \& s% H9 sMODULE_AUTHOR("Tronlong");
$ Y. i8 f! O9 }7 |3 G" u6 oMODULE_LICENSE("GPL");8 N9 J1 d. w, z/ b2 [" u' Y( m

) B# U1 l! P$ K* W( [6 _6 v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-4 17:18 , Processed in 0.037377 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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