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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
! o& w, ?# q3 k! ^#include <linux/init.h>
0 I" C- U" M, z#include <linux/module.h>) I7 S4 M% i: L8 Y
#include <linux/kernel.h>
) |4 s* r, X$ i7 M1 `% x) O#include <linux/types.h>
  D7 K! B" z+ ^7 E$ L; {#include <linux/gpio.h>
* d, a9 f4 D! z; s#include <linux/leds.h>
" o* U/ \# }( r, \# ~; b4 D6 [' I. C#include <linux/platform_device.h>
7 ^' v% w. x" {* c0 M6 ?! A1 l* S8 \) y5 b- t# a9 r% p, D
#include <asm/mach-types.h>4 |. X  A0 E! n( o+ c( K$ e$ }
#include <asm/mach/arch.h>
! l  Z# y* A: Y5 k+ C) P7 i#include <mach/da8xx.h>) m# t: c* Y) u4 B
#include <mach/mux.h>
1 Y: T, R/ o* a* s9 X  c9 K& E* I1 w
/ w$ A, c5 h9 e, e& p/ P#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 m2 o! X# z. B/ _7 @
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
4 @- n  J6 Q' Q9 W2 I) c1 d#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! T7 i9 A* N; x" V, _2 `" Q$ }6 w#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
  g1 b* h  W7 E. f* l, o6 b& r: ]7 s$ j, q
/* assign the tl som board LED-GPIOs*/
. h; Z9 J5 T: c* `static const short da850_evm_tl_user_led_pins[] = {6 D8 E, g( M0 u; l
        /* These pins are definition at <mach/mux.h> file */
& d0 E# P. ]% A" M        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,1 }2 O0 |0 _1 m/ ^$ w
        -1
% }3 C7 ^% ^/ N& ~, L" k! c) O: c};# Q) [& {  k5 S

8 }  S. n9 S( P( K5 c+ C# c2 ^static struct gpio_led da850_evm_tl_leds[] = {" }% t5 c) P- m+ E3 w$ Y
        {, M% O/ _4 T3 T5 E* G- j
                .active_low = 0,
. y& z& F9 J! M% _2 |4 b! Z                .gpio = DA850_USER_LED0,
9 I9 \2 u' w0 E+ A3 ~                .name = "user_led0",/ J( Z0 B. ?7 {, b# p
                .default_trigger = "default-on",+ ~* u" V0 n5 s0 i; [3 s
        },
* _. f4 A' B8 b) m        {
( s2 T6 [3 l+ G" S& O4 P                .active_low = 0,1 f2 Y$ x* o$ N1 n
                .gpio = DA850_USER_LED1,9 {' n6 ^! h( K" _* e1 B" m
                .name = "user_led1",
2 V+ \7 g7 F) A                .default_trigger = "default-on",
# j1 z& g; Z% e9 M        },
+ \! T% [+ ^. U8 s        {! N9 t+ T* I% B6 S
                .active_low = 0,7 t; O( }* _& @# z
                .gpio = DA850_USER_LED2,8 r; g5 g* N) I8 m% U
                .name = "user_led2",( t" G5 o: s: ?5 g* k
                .default_trigger = "default-on",$ H7 b* W% ?) N9 Z
        },
3 R) g$ D; `2 g0 _        {5 x9 H: g$ L. l
                .active_low = 0,6 e+ R' l6 Y# \
                .gpio = DA850_USER_LED3,
5 f0 _$ R  q- H9 |                .name = "user_led3",
. A& u" @1 i* }                .default_trigger = "default-on",- p0 K+ {+ h8 _8 m2 ~, [$ w9 u
        },
6 B% H( Z  q, `2 n};
. Y, w3 t  j! d$ a$ u  M, W( O7 T2 ~
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {, u$ p% O' f' V# ~! ?6 x
        .leds = da850_evm_tl_leds,7 L$ u5 [. s' G
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),- J- W2 e  W' z6 P0 L2 ]
};' h! L; q3 \4 P- l7 o
4 v! Z; x7 T7 ?
static void led_dev_release(struct device *dev)
* {" J2 z4 V7 y/ V3 n( `; ~3 Z6 b{
- T3 o$ I2 s* X! S& ?};
* Y4 G- p1 j0 F' k- B$ @7 ~% E6 ^4 y' M2 P3 w9 a
static struct platform_device da850_evm_tl_leds_device = {
: u4 k; X# ~, y3 b0 Z# B        .name                = "leds-gpio",
! l, S2 s- n5 ]! k2 Q( h/ y1 O: r        .id                = 1,: F, G- F' Q: ~( X4 o8 u
        .dev = {
! l/ Y3 P; ?/ |; z- c                .platform_data = &da850_evm_tl_leds_pdata,! J( y% Q# x( _
                .release = led_dev_release,$ u+ w8 b: J4 W- b$ ]% P
        }7 Y# u" a+ B/ j6 G( Q4 B& U
};5 s& }! B; R/ O
( z3 X- j' D. A
static int __init led_platform_init(void)
1 R) Q' ]0 Z$ l{
& E  Z% c+ t6 q, a3 X        int ret;
, F- b9 T- }- `; M$ _#if 0" A" C4 C1 l( q5 Q. c2 ]) i: f( |
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 o' o( h& Q" k3 h        if (ret)
2 I! ~; m/ e  w! |2 d6 C5 J+ M                pr_warning("da850_evm_tl_leds_init : User LED mux failed :") ?* M' d8 M- y  V
                                "%d\n", ret);
! w( J- O% R! v% G/ V0 G2 L- L#endif9 T( H# j. r; u# u
        ret = platform_device_register(&da850_evm_tl_leds_device);
& R$ y% q9 W% S0 s; E. L        if (ret)
( [) \" n; F2 W8 ~$ r4 X                pr_warning("Could not register som GPIO expander LEDS");/ a* P, K9 Z. C9 A! V
        else
- P+ w+ ?- e6 a, Q0 k4 i- k                printk(KERN_INFO "LED register sucessful!\n");, L* i- a& Z4 H2 K( _! n' I
8 K5 m$ C* G& y8 e/ w5 v
        return ret;
0 m6 B+ s; g8 ?" T- O" v}' ?& ]9 h$ X7 s/ f* P- j
6 Z- g7 ^1 J, y" q+ T* I0 \
static void __exit led_platform_exit(void): M$ J' S1 M% ]; f* M! M& }
{
3 J% U) k- q$ a+ l        platform_device_unregister(&da850_evm_tl_leds_device);
) Q9 v3 ?, o+ h- f- [+ M" E* ^9 F+ g! p' Q+ Q
        printk(KERN_INFO "LED unregister!\n");$ f+ T# [) P+ o) y4 \
}
2 w  O" [! G9 C4 B! D% }) o; D% T3 K+ n9 M
module_init(led_platform_init);
/ J- t8 I, ]0 Y( O, y$ i4 P$ L3 Emodule_exit(led_platform_exit);/ y+ a% Z5 @" k" z7 Y. U
2 Q( V- V! ]: i  B. S8 @/ x- j% s
MODULE_DESCRIPTION("Led platform driver");
: _+ Z3 Y" D$ d# U8 z9 W4 {MODULE_AUTHOR("Tronlong");/ a* ?6 d9 \. @% `1 Y
MODULE_LICENSE("GPL");
, b; W" D5 i. D8 \1 ]. P: Y, F: X, Q: }" M+ U+ `" f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-3 02:00 , Processed in 0.064780 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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