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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ J; c2 f% c. w8 W! F#include <linux/init.h>% g4 m5 a4 I( Y2 H
#include <linux/module.h>
- v0 O( q$ G) h1 ]5 l# {#include <linux/kernel.h>" K3 D6 T! }/ R. ^, w
#include <linux/types.h>! t* J/ w# m3 D  n) M6 d
#include <linux/gpio.h>
" Y, k. D- y: N, }8 _( A#include <linux/leds.h>7 D4 C8 x# ]0 X3 n
#include <linux/platform_device.h>& O/ r  }* B% {

) V% Q; `; M+ T# t5 z; D1 t#include <asm/mach-types.h>
- `3 b, e, v' |; |: K$ |. r#include <asm/mach/arch.h>
0 k5 m: A  n) g# n. s#include <mach/da8xx.h>0 v0 r6 j) l% l) Q$ E
#include <mach/mux.h>, {. z- L7 l1 z/ F
& u) j$ `1 x- E0 p0 W
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
# w( W7 n( V( y  @#define DA850_USER_LED1        GPIO_TO_PIN(0, 5): d- }7 r2 U2 m1 G5 C8 f
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1): b: o" u4 X' `5 V
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
; }  @; A+ g* a, n2 W: l
2 H" ]: ~% E4 L# X$ d) O, y/* assign the tl som board LED-GPIOs*/  j3 ?; W7 r3 H/ J
static const short da850_evm_tl_user_led_pins[] = {. k. z1 `- h* v0 L- k
        /* These pins are definition at <mach/mux.h> file */5 z6 T& p* {! d
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
2 E* k" b" D: g& i8 e. z        -1
0 K! U4 N0 \& p* p4 v# B};8 k: z9 }9 l" O9 {; ?% ]
( [% w8 W$ A$ m  ]
static struct gpio_led da850_evm_tl_leds[] = {
) a3 L* Z& |5 U3 T+ F2 v( J+ Q        {5 b* z6 _1 ]9 k: Q" u+ m
                .active_low = 0,
# {& U/ b' g2 W- U                .gpio = DA850_USER_LED0,
- b" H$ r% F  Q! v+ U                .name = "user_led0",7 ?# t2 n7 L8 B% }/ [6 L7 V/ `. J- ~2 f# p
                .default_trigger = "default-on",8 C& Q* n+ T" r8 i7 n9 k
        },: Y+ ?( p, `/ Y
        {2 e" G0 y1 q; f
                .active_low = 0,; v' e2 o1 ~. m
                .gpio = DA850_USER_LED1,
( D' A8 i' d- s                .name = "user_led1",! g! o7 d( V1 i" x$ k; C! ~) ]# c4 e5 u
                .default_trigger = "default-on",
% p% B% a2 I& ~        },, F' t2 r( C1 |# Y
        {
9 L8 B+ p9 }$ d4 C( n! L/ w                .active_low = 0,
# j: I! T% C  I, w( R2 x                .gpio = DA850_USER_LED2,+ x3 D1 x2 p+ Y7 \. z+ u
                .name = "user_led2",
- q. ?; N+ ^# o: Q                .default_trigger = "default-on",. Q, y; |6 u% N/ ?. O% k
        },
% t$ i. X3 Y" q! l        {
' l0 f5 B% L% O- O: f& c                .active_low = 0,
. w6 H' p% L2 Y6 C# f                .gpio = DA850_USER_LED3,$ w4 i- Q+ o. Y' O, s8 w8 @0 X
                .name = "user_led3",1 I% o4 e% R& i0 }1 ]/ N) L# s, ?
                .default_trigger = "default-on",
! Q2 C: [! l* ~# E" M8 F/ f, |        },7 D6 Y) ?3 ]& x5 j! @' z. o$ n; o" }
};
; j5 E1 G, M8 o2 c2 V! R# O: S* {% I9 m" v4 |
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
$ L0 g$ S5 F; x2 t        .leds = da850_evm_tl_leds,$ G2 F9 L4 m" b) f9 W* \
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 @9 S7 r1 h6 V9 A7 @6 X$ Z1 }# J
};4 R: @# X: a! Z/ C* j" Z. e6 v7 `) [
6 z& p. F* o; `( H8 q
static void led_dev_release(struct device *dev)" Z2 I/ c1 c- a4 @% J! n
{
( D1 }) K) F* D% P2 c5 R};
9 Y9 c7 }1 n0 ~3 N' n+ r0 Y% H9 _6 L% ~" L' i
static struct platform_device da850_evm_tl_leds_device = {+ h6 T+ g9 X( G9 O, A
        .name                = "leds-gpio",) L; H: o0 k# Y4 U
        .id                = 1,/ ?! J1 K* z0 Y( e3 Y6 K" U
        .dev = {/ m2 Q: u, P  c& h
                .platform_data = &da850_evm_tl_leds_pdata,+ K  `  [& M0 M. ?1 o3 G( V* _0 p
                .release = led_dev_release,
$ L* D; Y: C$ {* C. J        }
6 P, b( ]7 y4 z- R8 K5 a};
% I, D+ `1 g. G( ?8 u& _9 B4 d( C6 P* C) I  V, A% A5 Y' o, m1 o
static int __init led_platform_init(void)
6 w! k2 ^; t( e{+ P7 a/ h# N( Q
        int ret;% }# M3 t4 _; E: y8 L& Z
#if 0; ^7 f+ m7 J( R
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);7 R) N: g% k; X  W
        if (ret)
& p% r5 V/ T* Y                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ x2 ?6 ]1 z+ O8 }+ \                                "%d\n", ret);% I6 K& j6 x3 w; `& R
#endif
  }7 S6 \4 R# v& d& g        ret = platform_device_register(&da850_evm_tl_leds_device);
/ ?5 s' ^% m# w2 ~1 ^: y; B        if (ret)
0 M$ o3 t6 v7 {2 X; ?8 @                pr_warning("Could not register som GPIO expander LEDS");
% h9 E& L; G7 v7 A% K% ^        else
( b3 W  w9 F9 t2 O, {: p                printk(KERN_INFO "LED register sucessful!\n");( q9 I$ }! h" i) z' ^
, v3 @3 n. v  d6 k% e9 [
        return ret;
7 E% o, ?) j$ Z" x}) V9 z/ A- l( h, {5 I

7 z5 p# T! R0 v* Z* dstatic void __exit led_platform_exit(void)0 d6 Z; d. t7 ^9 R
{6 W, d5 `" i3 S  ~# {) A6 C
        platform_device_unregister(&da850_evm_tl_leds_device);
! f6 f4 ~  |5 P0 {0 O% W/ B) @1 q: x' f; Y' R& a, C
        printk(KERN_INFO "LED unregister!\n");
3 ]2 K: q! \5 o) o0 A8 w}- R" C) {. {8 H% o
+ ^) d* u$ ]) j: ]
module_init(led_platform_init);7 `* S" u" o/ R0 T! L
module_exit(led_platform_exit);. x5 m* k3 v1 W2 [6 t' f/ R% Q+ q

- v5 Z% c" I+ Q" n( [MODULE_DESCRIPTION("Led platform driver");5 g2 R5 V1 o* C" h6 X7 s1 x
MODULE_AUTHOR("Tronlong");* R- U" q" Y  _! w* J& ~$ _- a: T/ {
MODULE_LICENSE("GPL");
$ L6 z. D2 N8 [8 l9 _% n( R; ^7 r" o+ T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-24 06:45 , Processed in 0.040319 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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