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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; ?" S2 I/ |' {$ o2 P3 u) k% V) v#include <linux/init.h>
5 Y6 j9 I, H" t( u5 y% _#include <linux/module.h>+ m8 `$ z& C, @5 t: G
#include <linux/kernel.h>) v; x* _. r! z2 K) p* R8 i
#include <linux/types.h>
% W# B+ l/ A" P2 c$ T  I#include <linux/gpio.h>4 S8 i% _3 g+ J2 l$ U9 ]
#include <linux/leds.h>8 ]# F: I3 ]( {8 Q% J9 S6 X
#include <linux/platform_device.h>$ y9 `3 ~; u3 h* F; }! Z0 d

+ S! ~# \  x; L2 N) s/ O+ j3 R#include <asm/mach-types.h>$ b2 l3 f* @& K2 I; E. P* n
#include <asm/mach/arch.h>/ }6 n( ?$ O! m3 z% b6 C! @
#include <mach/da8xx.h>+ ]; q4 U) `0 U6 Y! U. T
#include <mach/mux.h>. @" Z: b6 O) r, C! S& U4 w
) p8 n% h# B5 [: \
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
. a0 j8 N3 s8 Z4 I#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
% k+ p& Y! R* W#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 w7 M; |. I, U9 B) r#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ w0 _" \0 m# Z  A4 |, R9 i

! S: h8 c+ B; Z  D% Z/* assign the tl som board LED-GPIOs*/6 B; e4 J$ m2 q7 U
static const short da850_evm_tl_user_led_pins[] = {
* N* X9 F( s5 C; w% G& J        /* These pins are definition at <mach/mux.h> file */
7 @) v; k/ ?2 |        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,% w9 W1 ]. H, V0 Y( E1 i! b
        -1! e1 m* u. Z$ m* Q9 P% P+ u1 a
};
- ?( w; l* ~4 @7 a( ^" I
( h( j& |0 R: b5 N9 S1 gstatic struct gpio_led da850_evm_tl_leds[] = {6 u) A7 s) n, g( k
        {/ I; F* l+ _, ^/ K2 {! R
                .active_low = 0,
6 Y* v- d. Q6 B3 m7 g6 W; `& L                .gpio = DA850_USER_LED0,
) J2 P) q* N6 y- e8 @) }8 w                .name = "user_led0",- \1 f/ v& y3 s0 R5 }8 F" Y% o+ ]0 @
                .default_trigger = "default-on",
7 d+ d* O! o/ l7 }        },
1 E! c7 n; s" f        {
0 s% _  P7 n% ~! O0 x( ^0 g5 |" ~                .active_low = 0,
* W. ^! {  `# O/ R/ }1 Q% G                .gpio = DA850_USER_LED1,
$ I0 C) i" ?) m" v7 T# ?                .name = "user_led1",9 ?; E- M; U3 i
                .default_trigger = "default-on",
, L) M5 P4 ]# U7 c$ W" p        },+ j( N+ ?2 ]1 q4 C5 ], T0 S
        {' Z1 J" b/ |2 r7 D
                .active_low = 0,
& d, I4 q% [7 r4 ^  I2 p                .gpio = DA850_USER_LED2,! {$ j; }: b" o4 R8 D+ e
                .name = "user_led2",
% Z, g1 y9 P+ Y                .default_trigger = "default-on",1 X( [" Y: s7 s
        },( ^1 V9 @) h8 f/ j6 o, ^1 z
        {# `& I: U' P: v- E( a" H8 f& q) A
                .active_low = 0,
  Q" |. Y" f3 M. K                .gpio = DA850_USER_LED3,% I# r+ ?. k! Q; l- T* w9 ?# _7 C
                .name = "user_led3",! j' J/ K/ a9 [! P1 v
                .default_trigger = "default-on",6 n6 J  @; e3 l% ^
        },. M8 a; L) Y8 U, T, l
};
6 |, a' V% \; @$ S- D, i6 q3 h. K! p$ W7 h/ a" F5 v
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
2 P+ Y; v9 c* z* i( E/ p        .leds = da850_evm_tl_leds,, T6 i  |1 h/ Q- `6 P1 B  q0 ?# m
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),4 C( {2 U0 h% ?
};
& X/ ?" W! L! [- ]( }3 p8 B9 `" I6 E6 g9 k- v  @
static void led_dev_release(struct device *dev)
) L  j8 m, p* _{: c% p, r" J1 _6 j9 C: T
};
4 |7 k4 I" u6 C# }  t4 x7 R0 C# |. R* \% ?# ?7 W* P
static struct platform_device da850_evm_tl_leds_device = {8 _8 }) r+ N* r+ R' O8 l
        .name                = "leds-gpio",/ \4 [; H5 Q3 }3 P/ e, Y4 V
        .id                = 1,
2 C$ z. V' Y. ^( @4 Z; p% T        .dev = {1 G. q1 d- h% ^. _% R
                .platform_data = &da850_evm_tl_leds_pdata,+ n* f! r( ?6 @8 F
                .release = led_dev_release,
, Y  H0 l1 E# ~: G        }$ p! ~9 v* a& W
};
. c7 z# [! [0 Q" E/ l9 b6 S6 M+ L) b" C
static int __init led_platform_init(void)) h9 H1 G4 I3 w5 D' I' h* s$ H& X
{
, E7 S7 W3 X( U( H2 y- D        int ret;
" _5 E* u# P/ m5 z# v5 X" E& k2 g- A#if 0) `/ d( s2 w3 p1 O6 f$ y7 H
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);% V3 d! O/ n; e+ R6 z: H* l1 |2 x
        if (ret)
! D- }* [6 D% e                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
) j3 H3 C; l# ]+ m" O$ I7 P1 ~                                "%d\n", ret);, K0 o. p) e  X9 n
#endif
( L! ^: b( Y) r, X        ret = platform_device_register(&da850_evm_tl_leds_device);
/ K/ h+ X9 j9 ]5 z        if (ret)
/ E" @/ S' R* a% L                pr_warning("Could not register som GPIO expander LEDS");& x8 s- o+ H8 a2 c+ l2 D
        else9 G, K- ^) _6 |) |+ Q0 d; A: f
                printk(KERN_INFO "LED register sucessful!\n");4 I" c5 |3 l3 F6 B
- N/ d+ j' ^6 Z
        return ret;
) |1 M+ T4 l+ z; j}( L3 i% m5 Z7 M8 W( z7 l- P+ s6 w
6 G, g" z1 S; v! h
static void __exit led_platform_exit(void)
  s7 Y1 c; u! k7 I{$ A) [2 e' ~6 z) n' v5 _
        platform_device_unregister(&da850_evm_tl_leds_device);
' m; b$ C$ Y! h+ n- o" |+ |; M% L1 P: x  a
        printk(KERN_INFO "LED unregister!\n");0 ^9 x, e( ?+ O" Y5 |- B0 k! P
}6 Z6 v7 E5 M- F5 L1 s3 \

% I1 i- y# {9 U# N& U5 Imodule_init(led_platform_init);
% O2 B; N( w+ ~/ Emodule_exit(led_platform_exit);
3 D3 D3 }6 z0 s9 K; a' B: m) Q. o- G- X. o. k2 u5 \" ?) h
MODULE_DESCRIPTION("Led platform driver");' w& c& ]( s7 ?, a
MODULE_AUTHOR("Tronlong");
( Z" j2 ~- e1 A$ Y0 e# JMODULE_LICENSE("GPL");
2 j2 W, {) q) E1 z  B! A% v8 ^5 r: y  I  [* V# @8 B1 g2 X8 B- M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-30 03:19 , Processed in 0.038079 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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