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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。/ Q. [9 i5 N" n! g9 S" g, I
#include <linux/init.h>
7 H! \: G7 ~0 L! N#include <linux/module.h>
( k6 \, n1 ^) D% ]#include <linux/kernel.h>
! f$ X6 N- {9 H" {2 M#include <linux/types.h>* S3 j: S' i! F$ c0 b
#include <linux/gpio.h>) V  r- R* z: D" I) X9 S' o. o3 F/ |
#include <linux/leds.h># k+ V3 ~. _3 W; O* H) E
#include <linux/platform_device.h>
: ^" i0 d8 L) c9 r7 h, w# [
8 @, _0 h9 Z1 _( D- ?1 V* Q- p#include <asm/mach-types.h>
- t# P, N$ M6 `+ N: c; R#include <asm/mach/arch.h>
0 g3 ?  @/ |) Z% g* }# z#include <mach/da8xx.h>! j1 h. }. p$ x( n
#include <mach/mux.h>/ H1 C0 o% _8 E0 s# z

' _0 c) E1 T) t4 a" m: X* L2 y#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
7 d$ y9 D( k9 K" s. ?! t- s. G#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)4 b1 U' T4 n& v
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1), b0 d. @: N  C% C: l6 b
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)5 M% g, @& u; i% n2 ^
1 N- C& Y, B- `6 Z' j
/* assign the tl som board LED-GPIOs*/
7 r# b  Q# M5 B) ~( p# v3 \static const short da850_evm_tl_user_led_pins[] = {& U+ m3 Y9 x: y: |
        /* These pins are definition at <mach/mux.h> file */9 I2 x; K9 I2 C
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,0 R- M" k. ]: j; D
        -11 d9 X8 c9 b  \8 s/ V( H+ _
};
4 h+ F3 u  r- K) K  h
4 z# y; V. g0 }4 sstatic struct gpio_led da850_evm_tl_leds[] = {- x" h' R1 X; u4 Z  X" Q- @8 u7 b
        {
9 f' q- z+ ?& v$ D! i* c0 A                .active_low = 0,
* T' s+ ~  v; \1 U' v                .gpio = DA850_USER_LED0,
6 Y0 _1 I9 A. ^8 ~, a1 z" L) h                .name = "user_led0",8 ^+ l# e1 \, C7 K# ?4 H/ }
                .default_trigger = "default-on",4 k( L6 n; m" _! w" u
        },  j" O3 W* g4 \: E3 f" \- d
        {6 x: q' _( H6 M. V2 k
                .active_low = 0,4 Z8 j1 A5 c; J3 A% b
                .gpio = DA850_USER_LED1,
4 v7 g) l6 e+ A& y+ U/ X7 l                .name = "user_led1",
8 V8 \& |* _5 j6 F! J5 M( i                .default_trigger = "default-on",
  S/ d# a0 F' J& o+ D        },& S" L( x- e* A4 R# `( e- a. |
        {% s, g( j6 C" x: }. D3 S( H9 h
                .active_low = 0,
& w; R6 T. r8 T4 `                .gpio = DA850_USER_LED2,
/ X: I4 X8 I  J8 ^. [                .name = "user_led2",
7 a1 ], q/ d! O- {' C: z                .default_trigger = "default-on",  c/ M6 U7 z+ e0 [/ M3 r$ |* X  w7 D
        },6 s% R9 J7 y  _- H' O; e
        {9 X3 E& v& C9 T% O/ @# z2 a" ]0 ?* f5 `
                .active_low = 0,9 b  B; |4 b8 W3 q
                .gpio = DA850_USER_LED3,
* H# U' `/ M  I7 e7 i2 b0 F                .name = "user_led3",
$ ]( l# t5 k9 L1 B) `: q0 q                .default_trigger = "default-on",& s4 ]. C/ f. \6 z3 }: S# q' {
        },
8 I! v/ P" }1 A' F# T" A};9 Q7 {( L1 h6 j( J) I2 d5 o
) z% o# i8 }( w+ r- K1 d5 r5 J
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
9 s5 z/ K9 Y  C/ E" Q        .leds = da850_evm_tl_leds,6 O2 ?9 ]! w  z' A! F9 J
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),# B" {+ m; v! H% ?- v4 I' T2 Z
};! R1 d/ a, @! ?( }; \
/ U4 d1 Y# j. F* w+ K- f; E
static void led_dev_release(struct device *dev)
7 p/ e* r& Y5 L{4 d+ b! j: ]/ F' [1 a! R
};' }3 e7 N( m; X# e( S
; ^/ H8 N" P: `! z, K
static struct platform_device da850_evm_tl_leds_device = {
" m% _6 W7 q# o/ f* P8 n) T1 m( l% C        .name                = "leds-gpio"," T6 [/ f2 H1 U0 V( G5 j5 z9 V
        .id                = 1,
0 |/ H6 u7 e: L% x8 v0 C/ Z        .dev = {
4 R$ [4 D" c  F# L; ]' P                .platform_data = &da850_evm_tl_leds_pdata,
/ Z6 f! U0 s" e$ D$ k                .release = led_dev_release,
% r0 b) D" B7 s1 O; \) K3 q* m& F        }3 H- j! U( {5 W) n4 k. u
};
, J% N4 q; S+ O* N2 W
6 h4 z/ H! m- q! G( {% e" rstatic int __init led_platform_init(void)
' N$ _; Q' z# ~8 m{" U; h& M2 ]" q: [- D( n" n
        int ret;
% e, H& h' q: X# ^- }5 p( a4 m! w& R#if 0
4 l/ E% p1 B4 J: |        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
  X; x1 F/ X5 B* h+ H7 l* r3 w7 M        if (ret)
3 Z8 D# O( e# K+ V                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
6 A' R- y/ t- f4 b( V$ Y+ p                                "%d\n", ret);1 H: [/ A( q# B, u! F
#endif/ @; i$ [6 v9 P) p  n
        ret = platform_device_register(&da850_evm_tl_leds_device);
! {; V5 G4 e" Q$ b. F* F/ f        if (ret)7 d$ W4 k8 V' z8 Z! m
                pr_warning("Could not register som GPIO expander LEDS");
7 k5 Q( C1 c8 V9 s" p3 p1 e  N4 s1 i        else9 U. s9 e4 |0 m+ y% X& S5 X
                printk(KERN_INFO "LED register sucessful!\n");& ?4 s+ p& S, [/ |9 V
, u# e$ p3 L) d9 ?6 m* U% O
        return ret;
, M( B5 M) T( p- \# w7 g}# s; B  g- m5 }% d8 p

; [% `* Q: B! T8 I9 o' mstatic void __exit led_platform_exit(void)
3 O$ a( Z0 U0 `. R+ |' K{" g6 z, {' E8 t0 K3 G% g1 h
        platform_device_unregister(&da850_evm_tl_leds_device);* e( s$ R0 w6 _' A

! ]9 ~" L/ O/ v! O        printk(KERN_INFO "LED unregister!\n");
- ?( b+ C0 \; }' v4 {}- c. J) K8 w0 P: [' b1 \

0 V' F' s) W% i6 `$ s0 Imodule_init(led_platform_init);' F5 H- Q3 Z; q& \# n
module_exit(led_platform_exit);
! z- g  C: Q/ W0 i  ?
8 j' t* g8 a9 a* A: |' yMODULE_DESCRIPTION("Led platform driver");
. G# F9 ~  A; l: b9 t5 ZMODULE_AUTHOR("Tronlong");- `. T' w7 W" y) d
MODULE_LICENSE("GPL");6 U1 Y' Q2 ~# J3 Z3 L& ]2 G( _4 Y
+ T1 ]: q" O" {) r6 s
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-24 08:55 , Processed in 0.041053 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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