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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
: w) }+ G1 D4 k; u+ q#include <linux/init.h>
5 ]" e* V5 d0 u: F#include <linux/module.h>
' V. g$ x, q5 f! O#include <linux/kernel.h>: }9 @- b/ S5 F8 Y# s
#include <linux/types.h>
- S9 [. p! M. f2 F. o#include <linux/gpio.h>
2 J; f5 F. l' ?#include <linux/leds.h>3 t. T( e- B" N$ Q  K3 S( j5 `, l
#include <linux/platform_device.h>
3 ^' c2 R4 B, H: d  B4 |, M2 m# l: b
#include <asm/mach-types.h>, N& R# p: m+ d- r" \. y- D
#include <asm/mach/arch.h>/ N8 B+ j: I2 d" w
#include <mach/da8xx.h>
# U: V2 ^, s/ `% V4 V- l6 N#include <mach/mux.h>
# i: s2 F& P& r% |) T
% S# {' x! e  M3 w8 d+ q#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)  S+ f* p$ \! v. W8 b. D9 m7 z) ]0 |
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5); h4 C" t4 C! \
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 q8 m1 N+ l# X6 v  @% A#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ d, {1 }/ s# b$ K3 g  h
( U% D5 @: R0 m- {  W3 s
/* assign the tl som board LED-GPIOs*/- p3 T( ~' a  c- c
static const short da850_evm_tl_user_led_pins[] = {
) ^9 r3 o& U' x6 A( v. X        /* These pins are definition at <mach/mux.h> file */
/ W8 A( E9 A5 W  Y1 V! F, r6 x        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; Q$ I6 u& b, U0 ~
        -1' }1 q' g7 ]& W* x$ V7 b! x
};
% B" z. c* f* `; k4 I  h7 q& y0 G; T
static struct gpio_led da850_evm_tl_leds[] = {
0 Z2 C' ~. I$ \/ ^% d, G9 g        {
' j1 [* D; v4 s* p+ q/ I4 |                .active_low = 0,3 S$ X' q5 r+ e8 ?' `) Z
                .gpio = DA850_USER_LED0,
. w' {7 A9 }. m$ `/ {' a, ^                .name = "user_led0"," ?/ ]* D$ O# w( C0 N
                .default_trigger = "default-on",& u& ]' h* t! B9 M
        },
5 ]  _$ M( i$ W7 l6 N1 [4 w# M: c        {. E$ S3 v# D4 g: C
                .active_low = 0,  N* _4 n: q& E. u' ?
                .gpio = DA850_USER_LED1,* Q/ R  i# \5 c' m* L" _: R9 i! F
                .name = "user_led1",
" p. O; |+ e  |; F7 S                .default_trigger = "default-on",
1 c* Y5 A2 H+ N! `4 O        },$ K4 F8 x: x; m/ j" p
        {
- r) E0 P( J  L  G                .active_low = 0,
" ?5 z  q( X2 V, r6 f: C                .gpio = DA850_USER_LED2,
6 \: C1 ?( a! X* }1 \9 Q1 r                .name = "user_led2",
+ G1 p/ c  L: k. k. D7 B$ j                .default_trigger = "default-on",
9 c" `" {/ R3 [2 w6 S        },
* D  ^. C+ V5 d$ r; u        {% R+ w6 Q- o, ?& g5 Z8 u
                .active_low = 0,- \! t8 C8 }$ ^, s
                .gpio = DA850_USER_LED3,
6 U5 |1 A& G: }, V6 }6 [                .name = "user_led3"," o% ?1 [+ }! y* Z
                .default_trigger = "default-on"," m& d2 S5 p: v4 j7 z
        },
* C5 x' `( @. R/ {4 \};# g0 ?. x- H" z
( i7 ^9 a7 x# d/ q  _3 R
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! c0 s- Q$ O7 o4 j! Z% Y' j5 x" U
        .leds = da850_evm_tl_leds,  t  f: {- E7 \
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
" U" h: P: a" B: E( ^! ^' c: H};( A3 _$ t, t0 R
* q3 i! ]' s' u. V
static void led_dev_release(struct device *dev)
- _1 g9 ?- h1 M/ o  ~$ K4 J3 M{) A: w: j" w3 N4 v0 e; Y: g+ u
};
" H# j+ c4 v8 i  Y3 E; X3 W; D2 W+ o5 j% Z& j
static struct platform_device da850_evm_tl_leds_device = {7 H0 z6 H: B; }
        .name                = "leds-gpio",6 X6 _, y' v1 G/ ]. B
        .id                = 1,
, J1 K1 \7 g6 w" l        .dev = {
: I# [5 A( G; a                .platform_data = &da850_evm_tl_leds_pdata,! ?, u# }0 F: p& c) j  y! b0 D$ }
                .release = led_dev_release,
$ [1 D- u+ c) ]5 I% ^6 S        }, R' B  n" s" O, f, W
};
# J- E: }  l; }& I  ?$ M* m5 u3 E" S( T
static int __init led_platform_init(void)
4 H- v8 P' y$ z' A$ w& c{
5 c& X8 V* M0 @# Y' a        int ret;/ v; a  F+ k0 ^: P' n
#if 0
! k' q/ e8 \2 W7 X% T' ?        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);5 e3 D- V; X6 b# G6 \, N7 Y
        if (ret)
1 h, c1 g; V8 y                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
3 R3 T" b+ A) [+ P3 q+ g                                "%d\n", ret);& w$ I# F% @, T4 M
#endif. \  @# I" G8 V( N
        ret = platform_device_register(&da850_evm_tl_leds_device);8 N1 j. J. F& @; @. K' j6 x" ^# H! p$ h
        if (ret)1 `- t0 n4 f! o/ ?" @: b- w
                pr_warning("Could not register som GPIO expander LEDS");- q; a3 R" ]  x' I4 `+ b' D
        else8 A) x: y/ b% Q# ]
                printk(KERN_INFO "LED register sucessful!\n");/ b+ Z8 t/ j- [9 O5 k

" X% u/ Q$ N$ Y$ f8 O) T" a        return ret;1 q3 A5 Y( y. ~5 x
}
( a! H9 R; v# Q5 `! q$ Z3 _$ v
3 d2 I* h. l" _# }  `static void __exit led_platform_exit(void)" g" ]; h( m: M. p* P8 |
{' _3 q* u# d8 W) b$ l
        platform_device_unregister(&da850_evm_tl_leds_device);
1 p8 A4 h, Y& c! D, w
; r" B8 R* Q/ y1 }1 R: e7 M  P9 q5 ?        printk(KERN_INFO "LED unregister!\n");# K0 l( ]5 F0 f! \* H
}
& w& Q+ p6 R1 R! e( }
1 w8 L5 Q$ j7 ^7 bmodule_init(led_platform_init);
! ?& C- d4 A; P- H) Lmodule_exit(led_platform_exit);5 d' @/ Q6 G' M: A( K! m
& F) z1 b2 m, s6 P
MODULE_DESCRIPTION("Led platform driver");. h1 u1 |. x8 Z3 n
MODULE_AUTHOR("Tronlong");' w2 w3 ]# f) L5 n
MODULE_LICENSE("GPL");
7 i* R6 c6 I$ [
! `, R& o* |9 |) U4 P. L5 w+ d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-6-11 19:00 , Processed in 0.041057 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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