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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
0 E( A; R, ?: h+ a
  1. [code]EDMA sample test application
    $ T% R, v+ H# Q- L* V
  2. /*; m8 F( X( j0 P, t" q' X1 x
  3. * edma_test.c
    $ t$ u( L4 X( r& t6 }, E
  4. *2 q: g0 y1 p0 B* x
  5. * brief  EDMA3 Test Application% n8 ^! D+ a, i
  6. *" ~: r- e+ p. C! W
  7. *   This file contains EDMA3 Test code.
    3 N0 i( r; n, E1 }, f( {
  8. *6 S. ]* t, u, z6 b' y+ m) D
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    ) B6 o1 h$ ^3 U* y
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT9 \, A) \* H% k* `, M/ Z. F
  11. *         TO CHANGE." \7 I3 E2 p) i. [
  12. *
    & u  E: A- B, @: Q" c- o
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    0 U& i0 b: P( _& `; c/ P% L
  14. *2 i) ^6 Z; |% _! d7 }8 q; S* J
  15. * This program is free software; you can redistribute it and/or
    5 ?3 ^' o) F6 @0 f# h; E2 O& s
  16. * modify it under the terms of the GNU General Public License as  h6 l5 {2 m* m. v( w' q1 m* J0 N
  17. * published by the Free Software Foundation version 2.
    5 Y. ~6 K8 F0 t8 w; B. w' x
  18. *
    4 j0 {8 M' U0 ?8 U! R
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    5 C4 D4 L" x. q" t  P" S
  20. * kind, whether express or implied; without even the implied warranty
    ' |+ N. Z$ [* _) Q4 r0 o& x
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the: l; z  `4 c2 k$ y3 Q! b
  22. * GNU General Public License for more details.
    : o; }: p4 T# W
  23. */
      f$ F" L3 a. J- M( r6 L

  24. 8 h! o: Q3 m4 Q4 I, u3 T
  25. #include <linux/module.h>+ C. \( e; ^: \7 v9 ~
  26. #include <linux/init.h>
    , A+ R2 S+ j+ m0 s
  27. #include <linux/errno.h>
    8 _+ d9 i' E" a' n* n. V1 a; s
  28. #include <linux/types.h>
    : y$ W& F2 U% N9 v
  29. #include <linux/interrupt.h>
    3 J2 \7 i2 ]- B' @: J2 g+ T
  30. #include <asm/io.h>* i3 H8 o7 n7 L
  31. #include <linux/moduleparam.h>; f2 j* n! }, s6 I
  32. #include <linux/sysctl.h>& A/ n$ Y0 x% h' L: I
  33. #include <linux/mm.h>
    $ h+ P$ x. {8 r. \) d' z7 \
  34. #include <linux/dma-mapping.h>
    ! {8 B9 }4 H  Z7 c

  35. 4 @" S9 G3 M8 H
  36. #include <mach/memory.h>
    $ O, h+ `$ }  g$ ~# S" I- [4 o
  37. #include <mach/hardware.h>2 x4 ?2 w" W7 y% l" s8 C5 F
  38. #include <mach/irqs.h>
    & u; y! U* a7 W7 q- a; X- g* z
  39. #include <asm/hardware/edma.h>* Q6 A# V5 e8 C+ ]
  40. 7 U5 m3 ?: B  N; v& T
  41. #undef EDMA3_DEBUG
    % Q8 e# Z! B  `0 k0 R
  42. /*#define EDMA3_DEBUG*/% b+ g5 f( M  f4 C3 O

  43. ; I& L/ V8 X" `
  44. #ifdef EDMA3_DEBUG8 R( v3 V+ G: {5 V# o9 T8 ]6 z
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    8 F! H, F: D# u
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    - N% s( v& V1 a& f! a  w& W
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)7 z) h$ N6 B5 s% z1 s3 w: h1 z
  48. #else0 x8 A- f3 a1 g, `7 W
  49. #define DMA_PRINTK( x... ): {$ S7 b1 |7 T
  50. #define DMA_FN_IN
    5 [7 i2 J. g! [+ ~
  51. #define DMA_FN_OUT& L% D/ A" P. h, a: q" s% L1 u
  52. #endif3 L6 I9 y# b* J3 @* b  |. j2 K6 Q7 D

  53. # z4 K7 V6 w, [' a* y7 p  O# S
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    - l; Z: u0 |0 X5 H8 q
  55. #define STATIC_SHIFT                34 C) s  l7 F# o3 Y
  56. #define TCINTEN_SHIFT               20
    0 l9 S1 F& g/ e: H8 L
  57. #define ITCINTEN_SHIFT              21
    , d+ r  g6 i1 W3 m9 d3 T2 v
  58. #define TCCHEN_SHIFT                22
    , C, i& Y; r0 G/ y1 }
  59. #define ITCCHEN_SHIFT               23
    & w* _& m+ i+ D/ m( i, I  D

  60. 8 H8 M$ {5 s, c  X; Q* y7 t' x
  61. static volatile int irqraised1 = 0;
      R) Z9 ?% ]* Q) }7 r* M* X# H, ^# H  T
  62. static volatile int irqraised2 = 0;
    : h' s1 u- B9 e* @' c; K7 M3 ~
  63. 6 k8 S8 n( E7 Y1 R. z+ E+ i6 P" U
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);) c: Z7 X1 H8 v5 ~
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    . ?# y6 u( \: }0 @: D
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);) r& D; V9 {0 l0 C) ^$ X

  67. # X- s& x9 R8 g  Q. T' A
  68. dma_addr_t dmaphyssrc1 = 0;
    $ i9 k8 L  B* {, `3 J
  69. dma_addr_t dmaphyssrc2 = 0;
    * D$ _8 [- _- y4 h
  70. dma_addr_t dmaphysdest1 = 0;- o* O- z8 D/ l7 ~3 j/ G! \
  71. dma_addr_t dmaphysdest2 = 0;7 ]" M( R& p# e, o+ s

  72. ( z5 g+ z) H. w, u% u
  73. char *dmabufsrc1 = NULL;) T0 e' Y; H! J
  74. char *dmabufsrc2 = NULL;% ~6 b% i5 C5 M- z' I: C
  75. char *dmabufdest1 = NULL;, l% D8 `2 J: j; w' P7 K
  76. char *dmabufdest2 = NULL;) I4 g6 M% c* D% u3 j4 p9 U* O
  77. 0 T# z/ r- O. {3 }0 S
  78. static int acnt = 512;
    ) v  z+ K* {4 `. Y, Z- @
  79. static int bcnt = 8;
    4 Q( p  G' m5 w8 E: i" _4 r
  80. static int ccnt = 8;
    7 C9 t1 u% ^! e  T' _/ s6 l  J6 P
  81. " n+ f* I6 n' F
  82. module_param(acnt, int, S_IRUGO);/ {2 j+ \/ {8 M* e' e/ E3 ^
  83. module_param(bcnt, int, S_IRUGO);5 H0 A. y" s( N$ V" I
  84. module_param(ccnt, int, S_IRUGO);
复制代码

$ M. t- N( I/ j, n' n! ]6 z- E& M
3 z2 F7 {% p5 c7 i6 c0 l* k6 _      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
' w- X, X: i- |8 G; h- W& _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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。9 s, G" e# M3 [" X7 u7 {5 n  s
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。9 D! V) L% e6 a6 d; w5 I1 T

' L3 X+ I3 v4 M* J* Q) F
! b5 d9 u- ~/ _! G: s3 [5 Y8 u  r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-22 15:07 , Processed in 0.037354 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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