OMAPL138如何在Linux下使用EDMA3驱动 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] OMAPL138如何在Linux下使用EDMA3驱动

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 : W4 ~+ _( ^3 {/ C; Y( L6 T
  1. [code]EDMA sample test application
    7 d# K0 k8 f% k: _& h
  2. /*
    2 U- F: d: E0 |: W* I# V$ L
  3. * edma_test.c
    3 n  b) B! P. z
  4. *
    0 O  U4 P3 ~# ?9 x8 y( @4 T
  5. * brief  EDMA3 Test Application
    ( E7 N. V' j* ~% P% X+ ~
  6. *9 ^. z0 H/ [8 P
  7. *   This file contains EDMA3 Test code.+ i9 O7 u1 |) e# S. j
  8. *
    : O0 u+ E# E" a# e  C+ g
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    6 I( g; L# q! j- s/ L+ n
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT8 X  k9 C7 D! x4 s* y* o4 V
  11. *         TO CHANGE.# V  d/ G' v2 R/ C( \! p0 g5 a! C$ @
  12. *
    1 d: R: F* Z5 B5 X; {! A; I3 g
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/# D+ g! ^5 _6 K: v# W2 F
  14. *" e# e) r& |, s
  15. * This program is free software; you can redistribute it and/or
    6 ^- m* A/ a. R0 I
  16. * modify it under the terms of the GNU General Public License as8 @' h- R( C3 V; B
  17. * published by the Free Software Foundation version 2.$ L6 j1 V% z( ~: r# w& V. `; K
  18. *: A! I; G3 K# ]. ]
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any7 K0 u: Q1 n  {% Z# V# n  e
  20. * kind, whether express or implied; without even the implied warranty
    5 z) A+ |# U' Y; z7 w; w4 v9 n) ~
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the' k0 R, W: P; O9 U. r0 F
  22. * GNU General Public License for more details.
    ; h$ B# L, t# I( _* e( B7 W! d
  23. */$ }' j4 q8 h$ o3 r: K/ x* v
  24. 9 A, }; `3 ~6 q2 p% U* K  U. k$ A+ E
  25. #include <linux/module.h>3 e& k9 l& u4 j5 o/ G/ s: {
  26. #include <linux/init.h>6 `5 U' J1 Y) h! {6 W% s
  27. #include <linux/errno.h>
    ) Q! G' m7 k( V- D
  28. #include <linux/types.h>5 t- X0 z) h& O+ F' K) a
  29. #include <linux/interrupt.h>! y1 e! O& s# x' `* l( g1 J; Y2 f
  30. #include <asm/io.h>
    4 k, R5 k7 c/ k% ~. j. ~0 M% M
  31. #include <linux/moduleparam.h>, a! l1 ^" q) m
  32. #include <linux/sysctl.h># _4 @# M4 y) h" y' r. O
  33. #include <linux/mm.h>2 Y, P& G* O/ O, Z7 d$ f! m, e
  34. #include <linux/dma-mapping.h>, L  X$ ]5 {. y
  35.   I$ N- v$ l! L& x, ~
  36. #include <mach/memory.h>
    ; v6 C; F6 b5 A4 i4 I4 d
  37. #include <mach/hardware.h>7 U- s) _8 l9 L$ s* ?1 h2 w
  38. #include <mach/irqs.h>
    ; z- c# M" N7 d- I$ U4 M0 q* E3 e
  39. #include <asm/hardware/edma.h>
    ! l# o: g; L9 b% Z: O( C

  40. 5 x0 y! [/ G1 W1 S: W) V
  41. #undef EDMA3_DEBUG
    4 b9 j/ q4 o- ^; O% f( C2 g
  42. /*#define EDMA3_DEBUG*/$ V5 e! T& T; Q$ F/ g* Z
  43. + b  b) o+ g! D6 _
  44. #ifdef EDMA3_DEBUG
    # Y: e; t( V# x- i  t$ B
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    " M" P3 O7 O6 u: M
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)% k" R& v  [, i, J/ k; X# x0 a5 |- p
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    - E6 X, A/ }  c1 L( L# r
  48. #else
    . {  s- f& d- n: L) \& @4 i# {/ s
  49. #define DMA_PRINTK( x... )$ |* b& ]! p2 q0 u
  50. #define DMA_FN_IN& q# _/ Y5 L3 W- I- d
  51. #define DMA_FN_OUT
      J2 i, u* N; ?3 T7 U$ y4 S
  52. #endif
    # f4 E% G" N& ]( W

  53. % u2 S( g. c, v" m3 g: V1 u4 [
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    & O- j3 W1 L$ X- I8 }* e% d
  55. #define STATIC_SHIFT                30 ?* Z) d2 A: J: C8 z
  56. #define TCINTEN_SHIFT               20
    * \% A2 z" j, m0 a' S( X
  57. #define ITCINTEN_SHIFT              21+ L& R( n) d2 a) B' R% g* B
  58. #define TCCHEN_SHIFT                229 U1 J0 R; K0 E8 r& W
  59. #define ITCCHEN_SHIFT               23
    + w+ R1 K( B3 X5 E* T6 Y* \5 {6 C

  60. 5 [$ C( l1 P5 v) R7 @
  61. static volatile int irqraised1 = 0;
    0 ^3 Q1 F# A1 r* w: z
  62. static volatile int irqraised2 = 0;
    & @0 i  y% @+ x: T6 M6 a/ d/ v. W- R
  63. $ c1 `, N1 n4 P0 P# W( P+ D
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);4 Z2 g( J7 M% a# n* q
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    % @! }& b" f1 p+ E  T
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ( h/ z; y% T. e$ I" _
  67. ) a0 U& h9 r) @0 q: V6 ^  i
  68. dma_addr_t dmaphyssrc1 = 0;
    . L, z: u* ^/ g0 D% p0 J
  69. dma_addr_t dmaphyssrc2 = 0;
    - r6 O2 a' O: b( P2 Q
  70. dma_addr_t dmaphysdest1 = 0;
    9 v) X; f! A8 C1 a
  71. dma_addr_t dmaphysdest2 = 0;
    ' o  k9 q# [/ V5 f, a
  72. " ?6 p7 a; {' S6 ~( b, Y5 P
  73. char *dmabufsrc1 = NULL;7 u: i5 }! f% T* ]' h2 d5 r
  74. char *dmabufsrc2 = NULL;
    / W( e3 @' H* g3 F( q
  75. char *dmabufdest1 = NULL;
    3 k" v, E& }4 g8 ?% l. P, j
  76. char *dmabufdest2 = NULL;- R1 Z8 c: S+ ]) m
  77. ) j5 Y$ b$ m$ C/ s) ^
  78. static int acnt = 512;
    + A' p! F, w2 Z* {( H: m( u
  79. static int bcnt = 8;9 i! Q$ }5 G0 h7 k
  80. static int ccnt = 8;  @! c% K6 e( i7 r; d
  81. " h% J1 g: O. a3 f- T3 I* V8 s
  82. module_param(acnt, int, S_IRUGO);
    & a8 m* i( h# ?
  83. module_param(bcnt, int, S_IRUGO);
    + p" `! r8 A- B7 }
  84. module_param(ccnt, int, S_IRUGO);
复制代码

: J4 U$ ~4 k; i9 T) u0 N
: l' j4 f) g4 Q9 ^" T- C4 \      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用4 C5 ]4 M7 w3 ~! ^
arm-none-linux-gnueabi-gcc  -I /home/tl/omapl138/linux-3.3/arch/arm/include -I /home/tl/omapl138/linux-3.3/include  EDMA3test.cpp -o EDMA3这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。7 P8 z6 K% A/ V5 j. l
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
" A+ Y) e8 M8 }$ D7 ?
7 j9 m6 F) {7 u  U: Q8 c
$ h( N1 a$ z4 R4 f# r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-21 16:32 , Processed in 0.039319 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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