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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
: Y/ g! i# X: v, o# M#include <linux/init.h>
) I: ~2 b/ S# [#include <linux/module.h>5 ?/ |: `2 U4 b5 v" g( R% h
#include <linux/kernel.h>: s0 q3 L" ^7 u5 B; W
#include <linux/types.h>
" e  [1 v7 j& P4 W* g#include <linux/gpio.h>$ V% i+ s& Q6 P. h7 [* Y
#include <linux/leds.h>
2 q& T% y! p& A! Z#include <linux/platform_device.h>4 ~+ L' D- m/ r
2 [8 V" |4 `4 I
#include <asm/mach-types.h>8 |2 h" m* g' K8 \" C
#include <asm/mach/arch.h>, f, K9 T+ s0 @
#include <mach/da8xx.h>. s& D( _; J- d9 n' [8 T; v
#include <mach/mux.h>7 ]+ ~$ {4 [. x7 X: m& d$ j3 V9 H
  v! R7 s# h) g
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)7 E2 x' r' w% |8 k9 J
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
* ^- Q* ]8 h  H1 \* A#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
" R. y' t1 o7 @9 P#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
0 i1 ~; [) M; p7 J! y  n# m' [% s$ X1 h2 o
/* assign the tl som board LED-GPIOs*/0 [: J* U) i: z3 `0 \5 I
static const short da850_evm_tl_user_led_pins[] = {
0 F& M$ d* v& T1 r- [        /* These pins are definition at <mach/mux.h> file */3 m; i3 k& @/ B# c, B! |
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 A8 C% K& x6 J* h  w  ^1 i5 _        -1
( b4 V" A$ V/ b+ H, C" J1 G};
  a8 L/ a& n3 U$ q; }6 C* j) u3 y2 G) L# |; A5 o# g% h
static struct gpio_led da850_evm_tl_leds[] = {
! d) k" D: E1 b        {7 z$ ^( O6 t. ^8 v
                .active_low = 0,5 P0 N: b; i: B  M! D, K8 l
                .gpio = DA850_USER_LED0,! N0 q* X! x# h' M+ l
                .name = "user_led0",' a6 I' T" b# r3 x/ \
                .default_trigger = "default-on",6 g, Z9 c4 I, S; P$ f
        },1 x0 z8 Z" {, L: E; O5 N: V
        {$ \5 C; l# v( Z7 V9 F/ ~8 ~
                .active_low = 0,
: c, L  N5 y  Z3 a5 Y) Z                .gpio = DA850_USER_LED1,# C( Q2 X* ^6 E, d$ J* J5 ^
                .name = "user_led1",
" e& C) v+ ^. L3 v& O# J  b                .default_trigger = "default-on",0 C9 S8 H% P+ `) ^
        },6 c6 @9 u0 F5 I5 K! C
        {7 K; g5 T' Y7 |: L) _0 K, j; ^2 c. c
                .active_low = 0,
4 ?$ K5 b' {1 A8 q5 X0 a                .gpio = DA850_USER_LED2,  O# k& b& h6 l# K6 a
                .name = "user_led2",( X: K6 m0 M, E& |: g1 N: _9 X
                .default_trigger = "default-on"," X' t5 ~$ i- F& ?/ X
        },
" k. G8 b* |: y! t" Z* g+ M# `+ G$ n        {5 G/ b3 E% Z* ~# B% [/ r
                .active_low = 0,
9 y8 r; v: f9 @; r                .gpio = DA850_USER_LED3,
: `1 K% }8 ^8 ^. h& W( i2 z                .name = "user_led3",
( n# |; E$ {7 l! K                .default_trigger = "default-on",
5 n9 {3 X( o: L: ?4 b2 O+ D7 A        },
4 h- g, j# P  v};
' k; |! v" q6 E: N' Z4 d
; h, r# O6 Y( t1 w! [1 M- vstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
/ M: W/ p, o4 d% I        .leds = da850_evm_tl_leds,5 W2 p2 C3 h1 c0 B( }5 W& R
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),( ]& J  r/ F2 X% G+ }: c, V0 E
};6 }) f5 e+ w. B
9 a/ O: i$ a5 J
static void led_dev_release(struct device *dev)
; Q  ?3 U5 Z1 S( _# @; h0 k6 w{
) D& W, [" X# D};0 V4 P7 y8 k+ M- v. g& M

' Z$ `' j& V0 }static struct platform_device da850_evm_tl_leds_device = {
4 b" ]3 |% Q' @6 ^) b, [; B        .name                = "leds-gpio",- Q+ W/ r  A' e7 F% q
        .id                = 1,! @* ?/ [( p/ c! [2 f8 m
        .dev = {
. W6 x6 c& X) }# L6 M                .platform_data = &da850_evm_tl_leds_pdata,
$ W. y2 o. }$ d# m                .release = led_dev_release,1 h5 o: `8 O, f" v# R2 v6 ]
        }& ?  X8 g& p* @) c. r, {
};
0 e* _( H+ H! |) E
1 [: Q2 _  T7 y: cstatic int __init led_platform_init(void)
- K& I9 a- a. M2 ], [; K{
2 J% r  _* g4 t) t/ ^; O. {        int ret;
. ]. V$ K: Z4 C3 j& p4 l) Z& A#if 0
5 b' S  f% D7 Q/ W        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
7 R. K' t- _1 \8 d, @  R* s        if (ret)* X! W0 B0 K) E, s, S
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"' C3 h$ v6 ^. Z. y6 A4 v, Y
                                "%d\n", ret);
% ]+ l. b  Q/ ^) }4 r7 \" O#endif
2 Z2 T" X1 V) Z4 h) o        ret = platform_device_register(&da850_evm_tl_leds_device);
. ]3 m; {# B+ n+ b# g  T        if (ret)  {( @! y; @+ K( D  j% }+ \
                pr_warning("Could not register som GPIO expander LEDS");
+ R# r4 w* J4 e; N& {5 t. S6 \        else
! T, q% G9 I, M9 g4 \) j/ C2 ^3 x                printk(KERN_INFO "LED register sucessful!\n");
2 {2 R8 Z4 E, P% p: n9 N1 {
/ D) I% v' @; c        return ret;
# N+ [+ T% ?9 H5 X) a8 @! s}
  L' t) t7 g2 C+ C: o5 r
) p; ?' U: D6 p) I+ h- E$ [static void __exit led_platform_exit(void)
* E" u  w% N- Y. w, @{
' Y! h. W, V7 m' r1 ?  d7 {        platform_device_unregister(&da850_evm_tl_leds_device);2 E3 T7 ^; n; j" `  Z

6 ?: a5 }& ?& I9 c+ c- y        printk(KERN_INFO "LED unregister!\n");
9 ]6 r- k+ e2 y1 k9 d9 C0 h}* U. e. k' p# e& n
, h" i4 X4 g2 _* ^
module_init(led_platform_init);
  b- F6 {4 w; G- fmodule_exit(led_platform_exit);
" d) X2 G8 D7 h9 Z- E9 p+ R4 P  z* `% k. z
MODULE_DESCRIPTION("Led platform driver");! _# }$ x) _# }6 \) W
MODULE_AUTHOR("Tronlong");
) ?% u5 \) V. t" IMODULE_LICENSE("GPL");8 Z" ~* v0 p3 s* R$ I' S3 C
1 Y% C  `8 p0 ^  J- e! w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-8 03:51 , Processed in 0.039272 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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