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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。/ |+ z+ t* G3 j
#include <linux/init.h>- S- k, x" h$ m0 p6 n4 D
#include <linux/module.h>+ V. N- |8 e0 R- o
#include <linux/kernel.h>
  V8 Y8 q9 h" u$ @. J#include <linux/types.h>
, l& g8 w# z7 @9 |$ F" d; Z+ v3 I#include <linux/gpio.h>- {3 c* o6 r& i) t+ [: M+ m) d
#include <linux/leds.h>  J6 e- g3 X( ?) _6 f. t$ h9 a4 i! k- y
#include <linux/platform_device.h>$ w/ Y; f: V5 p; j
4 @1 }2 G& n  w5 w
#include <asm/mach-types.h>
$ |1 j$ u4 H* r  @" S#include <asm/mach/arch.h>
, j: W! V& X) T. Z3 G. B#include <mach/da8xx.h>  ?2 a4 M! i: I  s' L
#include <mach/mux.h>
8 K. z- K' g+ z4 r: B" I( `+ y9 A4 u; f. Q
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 C* L; Q$ m0 H8 k5 p9 F2 d& {
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5). {9 O5 m- o" t( i$ {! I
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 n  j2 q3 O! f6 }#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)3 [* n8 }" t9 u2 q
8 F9 z2 b) a# c
/* assign the tl som board LED-GPIOs*/
/ L) T) F4 x! q0 Y) f3 ]% P/ [static const short da850_evm_tl_user_led_pins[] = {8 ]# h7 Z' T# [
        /* These pins are definition at <mach/mux.h> file */
* ^* J& T" r3 d        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,4 T- b6 n% E9 m# q3 z# i! v
        -1
( o; I% f& A6 K4 @};
  L. ?; s9 J, ]
9 j. |. z  Q. N7 Y7 ^static struct gpio_led da850_evm_tl_leds[] = {
, E# b3 E! G& |        {
- }5 I2 C" e- J                .active_low = 0,
0 Q/ P6 M9 C: w+ C4 ?3 ]7 i                .gpio = DA850_USER_LED0,
# o9 A" p1 B+ X6 `. t' H. v3 N* W                .name = "user_led0"," [# e: r, D( F5 p3 b
                .default_trigger = "default-on",
0 P8 ?: G* u9 S$ K0 N, Z7 c        },) B3 x) l9 L+ O$ L) s) r
        {: o; }1 ?/ B) z, l
                .active_low = 0,
! @- l" [1 E# o" n                .gpio = DA850_USER_LED1,7 c( k8 q5 m$ W! W" E
                .name = "user_led1",
2 p- e5 X) ~4 T0 s/ K# r: N$ I! S                .default_trigger = "default-on",) C8 }' M$ I, z
        },: K$ `: s! \9 u  v& V( g: a, d& k
        {
( i& \8 Z' v- d4 j# {; |9 B                .active_low = 0,; M/ f' s+ {4 d* N+ ]4 u
                .gpio = DA850_USER_LED2,
8 q6 T/ f2 Y7 M! M9 T$ ~" g+ s                .name = "user_led2",
8 Y9 w) s# f; y( D+ j                .default_trigger = "default-on",
" f# j# ?3 j  S) ?        },
5 \! D5 _4 u$ I        {% A* J' v4 k# U9 Q& }7 H7 g! u
                .active_low = 0,
1 @8 n6 J& J/ Q5 d                .gpio = DA850_USER_LED3,
$ n  V+ a4 Y3 y) ^) R( U                .name = "user_led3",/ B0 x$ @  v) u# z
                .default_trigger = "default-on",
. D5 ]- M3 E/ A6 _$ H        },& C" S6 C4 Y+ M% D+ l
};& [) r9 D! I. `- K! n; o

- c; e& o/ f! U# [6 [static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {. N& t1 R0 T: l! ~8 z( I+ G. R
        .leds = da850_evm_tl_leds,
& s; _  `  v+ }        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
5 B% K' F" v2 W  I8 H};( k% O$ y9 {8 |! ?1 z

& N8 k5 k$ e1 Z1 Y5 c" `static void led_dev_release(struct device *dev)" o# u; s0 W& z4 A7 H
{6 ~0 U& ~: K4 g  l) D* a! z/ I
};# N# w  G) f6 ^4 l- b+ t& {3 j

3 s, C. D: m! \. M; Tstatic struct platform_device da850_evm_tl_leds_device = {
- b5 v9 r( U4 y6 h8 L        .name                = "leds-gpio",
; y" Q5 ~- e1 F8 W+ G3 A        .id                = 1,
5 d5 r3 ~% y0 S5 }% V        .dev = {- w; T' r. a* `( d& n& b# G' Y
                .platform_data = &da850_evm_tl_leds_pdata,' F0 ^3 J* q. G9 y6 |
                .release = led_dev_release,
7 K8 u, c1 ^6 \( f9 C$ o: b! j. y        }6 p& M, I# j& Q$ c  E, g- ^' M; l
};' v* o) w/ U& J/ ~- @$ x
! M% t. D1 z3 U- G
static int __init led_platform_init(void)2 e2 Y! G# t4 p! H; t: U# X
{' L6 T  a% m! @# W1 [3 \
        int ret;8 b  L" D8 ^" \/ @8 \& J+ {
#if 0: i6 C! z( Q* f- ]3 r$ Z  S
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
1 M$ `( x9 q: F6 t0 T. D2 P        if (ret)
% H$ s; F* E0 m8 d6 E7 }                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
, X9 E1 ?# q- r# b                                "%d\n", ret);
: \) x) n) C+ D/ j2 p#endif
9 W1 L( V. p9 h6 \4 L# E        ret = platform_device_register(&da850_evm_tl_leds_device);
% ~! e; b0 y! _        if (ret)& {. Y' `) |; B+ ?, \
                pr_warning("Could not register som GPIO expander LEDS");
" c/ E/ O# |6 A9 s" ~        else  v7 Q7 p" o+ ?* r
                printk(KERN_INFO "LED register sucessful!\n");
4 s3 ?# Y7 E# q* l, y' r
6 y8 h- U# c* w0 ?        return ret;
4 w& W( B! c0 X& M2 d* Z}
5 S6 M8 V2 v# p* ^7 R" l' P) f4 R$ L! B; E  V& J( k6 ^9 D4 m* n6 o' _2 W
static void __exit led_platform_exit(void)' U# u8 J+ E* @
{; @9 d0 b% r6 q1 R2 V$ u3 |) Z" f
        platform_device_unregister(&da850_evm_tl_leds_device);
& F9 U( O6 O+ _1 F* t* Z% _. Z. E# j3 u% n+ [' m
        printk(KERN_INFO "LED unregister!\n");, ~( P% u  f' r8 M
}9 {4 V. |$ I5 J3 S2 v4 e
+ X* `: ?3 U. J  E
module_init(led_platform_init);" O2 }. u& q) ^0 U  g
module_exit(led_platform_exit);( x! k) [) `. C& s* G+ B* C6 h+ o
' i7 F! o* A2 f( h8 U/ c
MODULE_DESCRIPTION("Led platform driver");
; r6 f3 i0 X+ |; q' X+ E. rMODULE_AUTHOR("Tronlong");
$ u5 k0 B* Z6 n) F* N9 dMODULE_LICENSE("GPL");
, F$ u- n) U* U7 H# X/ ?8 q# S' n0 y/ C& P: Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-8 01:53 , Processed in 0.039367 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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