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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。& D% _( N9 S8 ?" d  S* H
#include <linux/init.h>
# `- @3 H  w4 }$ `1 D#include <linux/module.h>
  v- v1 J+ K) K1 v* r: R#include <linux/kernel.h>
/ m$ y& v+ _0 S! \% A$ U#include <linux/types.h>
: k, t7 s+ o( j# P- c4 v- q) ?#include <linux/gpio.h>+ [/ G- |; C# P7 j8 y
#include <linux/leds.h>7 {. ?, j, P8 G7 [5 h
#include <linux/platform_device.h>+ a. z6 W5 D1 C* e9 \
9 z* F/ _3 E8 M$ d$ x& o
#include <asm/mach-types.h>8 V2 x8 C% q% O$ K+ p" p9 |; s# p8 \
#include <asm/mach/arch.h>
) a9 H7 Z9 c9 E0 T#include <mach/da8xx.h>
" z/ E, x8 N0 Z* B1 |#include <mach/mux.h>
" y+ F- K, b5 F
2 z4 p& h5 c3 M% }3 e' }$ N8 y#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
' t( Y. h8 U8 m  O#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)3 M& |* s1 T. ]# W
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
2 f& x4 n& m% H- L" D#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
3 y' E0 b0 x3 b; d1 P; I5 H. U7 c% q- b) ?# N9 Y  M* i
/* assign the tl som board LED-GPIOs*/$ j1 U/ R6 T# \2 _6 N+ y. w# U3 v" h$ r
static const short da850_evm_tl_user_led_pins[] = {
2 m9 [7 r! }+ O2 \        /* These pins are definition at <mach/mux.h> file */
0 ?) ~; e; j3 e, H; p1 y; O        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5," A+ [% T3 o  I0 K
        -1: @5 g. E# w+ x
};
1 H, b3 L* ^1 w& C/ T; C- f3 f+ A* E- B' A" [6 t# S
static struct gpio_led da850_evm_tl_leds[] = {. g9 Z% K2 J/ Y% e: A1 T
        {
: N9 b& R# V, E! h                .active_low = 0,
- A/ |  b( S* `" P, Q& t2 U0 d                .gpio = DA850_USER_LED0,
4 J2 |9 @* j. N3 `8 A% @                .name = "user_led0",% U0 ~- Y. c& @- g; W1 C
                .default_trigger = "default-on",
. r4 W: j* ]$ P. L, T+ j        },: j& ?* c7 O1 v. u* W
        {
- q% ?" f6 G$ [# \                .active_low = 0,
+ z( B8 K( I# G! c                .gpio = DA850_USER_LED1,
8 |6 {5 T5 v- P0 {9 T1 j% K* t                .name = "user_led1",
8 N- x3 u1 {0 m' q                .default_trigger = "default-on",# s0 x" W& }0 O  r! j7 X8 B
        },
/ b, ?5 B5 X- W4 v" F2 C0 f2 z        {5 f9 u( B- `' i
                .active_low = 0,
" c  z; m& P9 \# C8 J                .gpio = DA850_USER_LED2,, r5 K. a4 R) h5 Q" Z
                .name = "user_led2",
9 l. f# Y  T$ n& g8 c) _                .default_trigger = "default-on",( C) |6 s/ N  F% n( B2 H. t/ i0 V
        }," A6 g5 J; f3 ]" p) B8 p5 Q
        {
+ d+ v/ k7 Z! j6 k' l                .active_low = 0,  O: j  J: \1 P
                .gpio = DA850_USER_LED3,' Z/ a: G+ {% g" a; U
                .name = "user_led3",
& ?( i3 z8 [2 P2 H( O                .default_trigger = "default-on",1 O' ^, l$ v' f+ G
        },) D! I( ]. m$ ^) y
};% ?( u) l; I' W9 m
, z& e1 e- E$ v- _$ l0 @6 Q: W5 }
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
- Y) I* z+ w3 {. K" X7 B4 K        .leds = da850_evm_tl_leds,
. t0 {$ [9 U3 `" o: J        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
& I3 G7 d" C; E9 U7 L& V};1 [4 \% j7 I$ m, u
2 v" Z( [) F* v- G6 M5 F
static void led_dev_release(struct device *dev)7 N, o6 K8 g: N, t
{
  B, u, o6 u. Q& c4 u};
+ k+ D( |5 H) t. \
$ U8 v, S! Z+ L/ R" n; ^2 Vstatic struct platform_device da850_evm_tl_leds_device = {
# D( H$ E8 w$ d) K- }5 A        .name                = "leds-gpio",
. @) ?# c. v- H. Q- e& c& g% E        .id                = 1,
* ^( U3 ?# x8 E. ~' ~: o7 k        .dev = {
# J; G6 m- {2 u2 P. l. u                .platform_data = &da850_evm_tl_leds_pdata,
" j. m. s4 \6 o8 W. D                .release = led_dev_release,
9 E2 O# \( Z" ~        }4 b3 @6 F- J) ^! A- Y8 q; c
};
3 z& U0 U/ P3 @9 w7 @* N# [: W4 }% n( L
static int __init led_platform_init(void)& f1 n8 ]+ I- y2 \" r9 ?( Y
{$ Z2 X0 E3 b4 m& t- _2 d
        int ret;; a1 z2 s- K, c. E
#if 0
! P  i/ V9 k9 ?7 f+ K, k        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);7 S5 f3 R. O. J& F) S
        if (ret)- O- L# B9 M' k& [: O% R/ c0 K
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"( [, U5 G  H4 V* [
                                "%d\n", ret);
$ B! z+ G! X- \: v7 n! J#endif
: d$ Z  l  K; n  B        ret = platform_device_register(&da850_evm_tl_leds_device);
. z7 c- v/ P1 X        if (ret)
) ~3 ?: q, p, |& R. u  u% ]                pr_warning("Could not register som GPIO expander LEDS");
/ `7 z  v# O" H+ w% e        else
& t- V, L5 x2 H) z. y! L# W                printk(KERN_INFO "LED register sucessful!\n");4 }4 m; `& U* O
# K* ]% e5 t5 y3 u* x* J
        return ret;
$ f8 X& Y( A9 }& Y}2 `. a. S# S% }/ Y
, u6 b7 O3 f2 m3 i( Y0 e0 ^! ^
static void __exit led_platform_exit(void)
2 J9 X( [* n0 P' z{
" }0 K0 J4 O% q" o1 L8 `1 H! ?8 a        platform_device_unregister(&da850_evm_tl_leds_device);
3 G) F& c, X/ ^9 \$ Z8 P
3 W/ Y. ?: m9 [" s" L6 [        printk(KERN_INFO "LED unregister!\n");( l$ l5 ], G& k
}# w( s  M3 m& @/ S1 e& w
: z' s+ a4 {; `2 I6 A" P
module_init(led_platform_init);1 q$ S$ t* v. n' I
module_exit(led_platform_exit);2 k: P9 M+ N  P* X( C$ e+ `7 a

. n+ D! b3 D, x' ZMODULE_DESCRIPTION("Led platform driver");! S3 D6 R2 M* _" v" L4 ~7 j
MODULE_AUTHOR("Tronlong");$ Q) [8 }$ g8 J# D" b4 @
MODULE_LICENSE("GPL");1 M: W: N1 K5 p7 J
& ^$ u& S# z. G  _1 m/ D' r# R( n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-11 17:54 , Processed in 0.039843 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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