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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。' Z, Z  o: @5 P! j9 V
#include <linux/init.h>
: A- g' I4 s- b9 H/ b0 g#include <linux/module.h>
# c' f7 ~; f9 K; F3 M#include <linux/kernel.h>8 {0 H+ N6 K% b, g, c/ k" B! B5 j* |
#include <linux/types.h>
% l- R* y" q) T, _3 R4 Z+ N! `#include <linux/gpio.h>4 p3 k  ?. Q7 J2 F
#include <linux/leds.h>1 J1 j4 T/ Y6 B3 r, L4 S$ H
#include <linux/platform_device.h>% d! X) H/ `* F" D

3 a1 @" u/ |2 B2 k2 C: F#include <asm/mach-types.h>, G# z+ v! e' S5 ~6 k
#include <asm/mach/arch.h>" K7 Z, J$ j! |+ D% P
#include <mach/da8xx.h>' y% V+ V1 D5 C; m0 f3 s6 x
#include <mach/mux.h>! ~6 V# X: R2 w& V

9 w0 I  |8 _/ f# U- x3 r  H#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)9 Y6 u$ j" o/ `9 t  M7 j
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 Y2 D1 W. c' Z, \$ N5 Z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
7 g9 [% `3 g* l9 n/ B) k#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
! z, }* |. e& p3 X6 A
- u2 i) w0 L2 |8 ?* H; j/* assign the tl som board LED-GPIOs*/% k7 g8 N% [1 E
static const short da850_evm_tl_user_led_pins[] = {
+ B- |7 ~. y  y1 Y8 @, |, @) W5 k9 G        /* These pins are definition at <mach/mux.h> file */+ {8 }2 W+ Z6 T# i
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,8 p, E; l% S8 j2 ]
        -1! g9 ^0 W, j; A, t( \& W3 ?6 s
};$ e3 b* J" N# ^' ~4 T
' n7 ]# u. ?2 ]. |( w
static struct gpio_led da850_evm_tl_leds[] = {
- J- D3 ]# v3 Q        {
/ j: r8 p8 A% n5 w2 }$ ~1 p                .active_low = 0,
- r. E4 r5 n, e2 j                .gpio = DA850_USER_LED0,
- C/ i% X4 ~3 S+ K                .name = "user_led0",/ Y% C  T2 Z& o" O' a
                .default_trigger = "default-on",
+ T$ t! B3 }( a( s- O4 Y        },
, y4 p6 [: ^' T        {4 ]9 i. i  N( w- |* C
                .active_low = 0,) m7 ]8 r- e, m& Y! ^2 T
                .gpio = DA850_USER_LED1,9 e) V& i0 s# H4 [
                .name = "user_led1",7 X9 S7 J' w2 D& u
                .default_trigger = "default-on",. N3 K! E; b  z& ^! i$ \/ G" L
        },, P* I7 c0 [3 |* y% w, U) p
        {$ P4 Z8 w0 ~* ^# E( J
                .active_low = 0,
) S. b1 @8 X) h# q, R% Z3 S5 f                .gpio = DA850_USER_LED2,
5 X5 j& {& B3 U1 b                .name = "user_led2",0 b, r* z4 J3 ]7 o( T2 e0 G
                .default_trigger = "default-on",
5 _. _9 K+ f) H3 }        },5 ?  m( E$ p* g" F1 Y% G
        {
& C3 r/ M6 [$ C' E$ F+ i                .active_low = 0,9 |; y$ X* v# G
                .gpio = DA850_USER_LED3,' d8 `. b: n) E# o! H4 E( j
                .name = "user_led3",- E; Q9 B  _3 K; z3 e" v5 i
                .default_trigger = "default-on",1 [% y( p# b9 k$ {5 M/ n  X
        },& q0 K) V6 Q$ i, d" n
};
. ^* ?, S  Q) K( R4 z, q8 j- r* Z" x2 l6 N1 M+ ?6 |
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
4 m) ^; P* A4 c) o6 U* z7 v        .leds = da850_evm_tl_leds,
, Y. {0 l6 u6 N2 r9 H" |/ }. B        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
1 T- b9 B- S7 J& \0 I% M' t};$ g" X% p# v, q$ m, @# R6 L

: w8 Z2 H7 W3 G+ z1 M* u4 H( rstatic void led_dev_release(struct device *dev)
. A& |) t" a( u; U/ h1 _% o{  n1 s  I. a% }) ~+ T  D
};" G- M' y/ G1 m

4 K6 O2 D: d, p( I9 f  P7 V4 lstatic struct platform_device da850_evm_tl_leds_device = {
1 S9 z: _& p6 f5 _8 D7 A# h4 }        .name                = "leds-gpio",
$ b0 W' y: D0 q& `  R% }  m        .id                = 1,/ `) P( C9 e7 ~9 o
        .dev = {
; g% ]- a. h5 {: Z% S                .platform_data = &da850_evm_tl_leds_pdata,
. T1 m+ O1 \" {! X7 @5 f                .release = led_dev_release,
& V7 i1 w! g4 G/ G, p( m) D        }
3 W1 Q* I3 [, {' J. w$ g};- h% H/ d. l, W! J

3 q8 B( p$ z; i2 _% vstatic int __init led_platform_init(void)
" f# c/ g2 s% _8 Q7 m5 L8 G{
; F- j# }6 m+ c6 E$ o        int ret;3 r# y3 E* j' a1 Q$ z; h
#if 0
4 _4 a8 \: i5 V        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);4 B. |& {& O- F( u3 T: F
        if (ret)
% r  q, H" [8 b. g2 ~                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"5 X, \! \& R( K4 U% [
                                "%d\n", ret);
7 p5 c/ W1 c4 J1 t; E: R#endif
' `& |7 `. B$ k        ret = platform_device_register(&da850_evm_tl_leds_device);* b5 Z5 ~3 `% [9 P: O2 E: v
        if (ret)
" j+ d9 k2 S; p                pr_warning("Could not register som GPIO expander LEDS");
) g; _. }( D- p4 D" j$ u        else
1 K3 A1 h+ j( @; M                printk(KERN_INFO "LED register sucessful!\n");; z" X6 N3 q8 @% o$ j

0 U+ Z1 F4 v0 w$ F# n* X        return ret;
' ?4 ~. i$ x1 N0 Y: p9 i' o! T}
9 `! n* ]+ _9 J" c! T5 ?2 O7 h' c1 W$ ~9 H1 i3 ~
static void __exit led_platform_exit(void)5 C" s. V4 \! }( R" l* A6 }# G. v/ ?
{7 r" C; |  f$ G' {; |' L
        platform_device_unregister(&da850_evm_tl_leds_device);
" \- K- ^3 I9 q
% ?$ h1 t% M+ a, p, n6 G5 R" o        printk(KERN_INFO "LED unregister!\n");
. x  q+ t! _: Z' x}4 S7 D2 ~! x2 P( b, d
4 M! B% X  {' M5 b
module_init(led_platform_init);
& h* @; z0 n" j# A/ lmodule_exit(led_platform_exit);
8 F& t# U# n* H# n0 z% C  R2 d! d! e7 Y8 o2 G( {
MODULE_DESCRIPTION("Led platform driver");2 D/ q/ u# G% j* h7 g
MODULE_AUTHOR("Tronlong");
( |7 G2 y) t5 L& d3 |MODULE_LICENSE("GPL");
9 }% k. O7 w1 A- l5 A
( J' E9 j6 U  T  }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-10 04:28 , Processed in 0.040893 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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