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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
$ f% C% s2 C9 a#include <linux/init.h>
+ ^$ q0 R8 \3 E" J5 E$ c#include <linux/module.h>0 m; q# d9 q5 V$ P- F
#include <linux/kernel.h>& ~2 _* V0 W9 ^+ G; C- Q
#include <linux/types.h>" R" c$ h5 c; G# {
#include <linux/gpio.h>
/ ]% ]9 s6 U$ b4 M: a4 q  R: \#include <linux/leds.h>4 y6 ~! Y. C( c2 d
#include <linux/platform_device.h>$ G+ ]$ T( a1 f1 U/ O6 w

. M$ Q" [" G/ I1 @5 ^#include <asm/mach-types.h>
8 ^8 o: b- @5 u7 k% h- ]5 D# I/ k#include <asm/mach/arch.h>
: |) y* t$ G. ?#include <mach/da8xx.h>
6 q* k- o9 I- b* T#include <mach/mux.h>
3 g* F8 ], V) ~/ B% C4 Z/ o  y7 m- y  o- B- m
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)9 t4 _2 c; @7 v! X" J. I
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)) h9 `4 b, d7 N' ?. P
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 f* ~2 x1 K$ e, v+ g
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)- u: ?( M1 t) U: x4 |6 j4 l
5 |: Q0 R3 p. Z
/* assign the tl som board LED-GPIOs*/) e6 m  A& h+ m0 S( |7 W
static const short da850_evm_tl_user_led_pins[] = {
6 T, K. I) `, _# Y9 N# ~5 w        /* These pins are definition at <mach/mux.h> file */1 I$ D( E* V, t/ J
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
* ]  T- a  R+ m* L0 O        -1
- v# D# ~  d6 a# S. N/ H. V};# Z# X$ j0 }6 Y# j4 `
+ z* _2 d: q4 b  |
static struct gpio_led da850_evm_tl_leds[] = {) }8 z* z0 x  l( j+ d8 l- r/ Z
        {
! B7 p# t! E6 r) Q5 T% |                .active_low = 0,
- @- G: ?# ~/ c& k5 _                .gpio = DA850_USER_LED0,! i6 m6 w6 h3 ?$ \0 c6 p
                .name = "user_led0",
/ Z" C; X+ [+ D; U5 I4 B                .default_trigger = "default-on",
" d5 q  k6 g# c1 \8 m+ S& p        },
+ y$ P" c) R/ k+ g' J/ Z/ a        {( Z& g7 H; P/ k& H8 i
                .active_low = 0,
' W& q! F4 X7 ?& s+ Q# L                .gpio = DA850_USER_LED1,
6 i! y2 a8 w/ P9 x  R; D                .name = "user_led1",+ m- o) L2 E) m% R% N
                .default_trigger = "default-on",& K! F* v) U) d% y0 f1 ]
        },0 u  M+ k- u8 p0 B+ N
        {
  u# h+ z; G' Q9 e                .active_low = 0,6 J2 q) q8 @7 v$ w7 [
                .gpio = DA850_USER_LED2,+ r- L% E7 L' k/ x
                .name = "user_led2",9 t% H* E6 Z4 S% q  W
                .default_trigger = "default-on",  I/ e: z* P8 h
        },
5 P& q: s1 ^0 ]        {
) d- Z' t$ z- i' s6 z  g                .active_low = 0,3 m- W* M4 K3 ^) P
                .gpio = DA850_USER_LED3,
! M6 Z. a* \0 [7 y                .name = "user_led3",' M8 [+ R) ^# e3 K, Y+ I$ s
                .default_trigger = "default-on",- p1 [6 R9 ~# `3 J) K  |- H
        },
' }7 Z% {2 n+ ?6 M2 |4 S};! R" @' V0 l* D" k" ~- p
' Y! Y# s) e$ a$ E. p
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, I9 K! p3 I$ Z' J        .leds = da850_evm_tl_leds,  `7 D4 [) p. H* I
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
# S) z% e/ \/ b* t/ A};# _, z' E7 a7 g5 T$ Y
: S$ r1 P" w) B1 `/ I5 t
static void led_dev_release(struct device *dev)
7 ~8 p) V- t. d& x* w{
; W% f% j1 g, b) S" e) C};
9 O: x/ s0 A( L0 W; S; X( B: E0 `1 `( l
static struct platform_device da850_evm_tl_leds_device = {
9 H- Q  o6 V+ @8 F  L% J        .name                = "leds-gpio",
/ H# ~5 U9 ]+ \% ]) C        .id                = 1,# [2 H( [! W# z+ f
        .dev = {6 d$ q- l. ~& J
                .platform_data = &da850_evm_tl_leds_pdata,/ m/ E" n* p+ u' i4 O9 A
                .release = led_dev_release,. i+ d" P' Q% B+ G, }6 s
        }5 v/ h+ i+ y. o: f. E$ r: V, @! Q
};9 k7 ~3 X+ V% W4 M
8 o' e- e% ^1 X+ W4 R5 Q4 m# J
static int __init led_platform_init(void)
, k& _6 C% P7 a7 }/ N{
: _% C/ q+ Y7 _7 y7 ~        int ret;0 _5 M3 Z. ]6 W3 V+ p/ f* x
#if 0* \$ [9 J) p2 w  I9 N( s; z
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. N! o0 O0 D  T' M        if (ret)9 v5 q+ U5 d+ G! p
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
" k2 K- p$ K( S                                "%d\n", ret);+ X# q$ i  }% M' \& n
#endif
5 u, \) \5 N# w( T        ret = platform_device_register(&da850_evm_tl_leds_device);
" m3 N. _1 m1 k8 I% y        if (ret)
- S% k9 w. K. B. d! i) p8 r0 M$ F+ F                pr_warning("Could not register som GPIO expander LEDS");
- m3 L% M) F$ C- V; O1 P& t        else
5 w$ I! C; J% Y( m) \                printk(KERN_INFO "LED register sucessful!\n");
/ a2 b( g4 i4 p/ C' U& z; M/ _" B. X; v
        return ret;5 n9 }! O: S4 m
}
& t+ z  j! h- A8 @! ]% [# C; S9 C& c+ d5 A4 L7 ^0 d+ a/ b
static void __exit led_platform_exit(void): E/ b; L. q; M4 h0 C$ F
{
, V) U4 |2 w" P2 R# z) E        platform_device_unregister(&da850_evm_tl_leds_device);4 [- L, j( R3 i( n" l* }5 A

" N: X" g! P3 ^8 S9 }        printk(KERN_INFO "LED unregister!\n");5 ~2 z& s% S  K9 B1 |) O5 N
}* s/ t$ }& x+ f8 H/ H
! e& I, r! K* Z* V6 c* Z
module_init(led_platform_init);- y0 ]( y+ L! ?) Q6 j9 @
module_exit(led_platform_exit);
# w4 V9 d/ }4 j5 s: Y" f
' |6 x) i5 {# s  Q' t! }2 ~MODULE_DESCRIPTION("Led platform driver");
' }; r9 m9 {4 F  a1 tMODULE_AUTHOR("Tronlong");
8 `) b2 n: `1 Z% DMODULE_LICENSE("GPL");
4 v, Q1 ]5 H: R9 J6 e
4 Q% ]* O. O: Z4 E6 g! N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-20 06:41 , Processed in 0.039417 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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