OMAPL138如何在Linux下使用EDMA3驱动 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
  W2 {& N/ z# B
  1. [code]EDMA sample test application- s; ]; I" G, Z$ _
  2. /*, k8 |, b7 {# G# k1 N+ ~* T
  3. * edma_test.c
    ! S- t; \! m/ y/ u4 A; P
  4. *2 o9 S  |+ ]& K6 \. @6 E6 y; x# u
  5. * brief  EDMA3 Test Application
    7 A9 J/ c; D0 F' o1 c
  6. *
    0 Y/ n3 M7 ^% W4 i* T4 L+ x( C! y% c
  7. *   This file contains EDMA3 Test code.
    # r; T& U9 n* n$ f" w6 F3 T3 r
  8. */ d+ W& G6 M8 N( Y3 {! j
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    : q8 a. H% e( x# b; y5 a; _
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    : s$ q; R2 B" b) d, |
  11. *         TO CHANGE.
    ( u/ b6 k* @# N2 b
  12. *+ N- n$ Q" z' [: M9 G; ~
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/# d5 O: Q6 u1 x, v
  14. *
    6 E# w& k. I# G
  15. * This program is free software; you can redistribute it and/or
    8 a; F" C- B: P, V+ f5 D
  16. * modify it under the terms of the GNU General Public License as
    # o) h9 M3 T& ]: ^7 T8 j
  17. * published by the Free Software Foundation version 2.$ G0 ]5 G4 D% L$ P' ~
  18. *& A1 I* c( {" V5 R; Z5 R' I
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    - B" X2 P, V0 g7 W6 |4 V- r
  20. * kind, whether express or implied; without even the implied warranty; x; x+ r8 O: [) i* {6 x$ v
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    % @& m6 w) ?1 e& c" _0 s
  22. * GNU General Public License for more details.
    3 R* o  b3 @) t) T' d+ N- H2 _! g
  23. */- W2 b8 X* [$ P9 e* M
  24. + t; _* [- e8 W; x
  25. #include <linux/module.h>
    ' D' d' j6 F" p6 d
  26. #include <linux/init.h>, v6 {8 q( c1 r5 z# o
  27. #include <linux/errno.h>7 z6 W5 }3 L0 Q
  28. #include <linux/types.h>" w2 V+ F( p# z2 P
  29. #include <linux/interrupt.h>
    1 e7 E4 a  _: m6 b, g
  30. #include <asm/io.h>
    5 J. N% d( j" N8 L. o" S% M
  31. #include <linux/moduleparam.h>
    $ i0 @2 ~1 h* A8 p
  32. #include <linux/sysctl.h>3 @4 t0 _( X3 K; \2 N
  33. #include <linux/mm.h>" g2 R5 h7 `' L, \9 O: M8 }
  34. #include <linux/dma-mapping.h>! U8 e* p9 k5 y& {4 p* |% m

  35. : i; `+ K: ^8 a# u/ y9 V
  36. #include <mach/memory.h>+ a4 t( J# k) g6 S9 L8 V
  37. #include <mach/hardware.h>
    * e! |1 t& r  W/ N8 g
  38. #include <mach/irqs.h>
    4 ~$ ~# e  C7 Q* {+ q; c: f0 X
  39. #include <asm/hardware/edma.h>
    6 v% ^1 ^! K8 s% b/ ~8 R3 R: F% }

  40.   L: o! k. m% g$ e/ U
  41. #undef EDMA3_DEBUG* a6 m6 W! p* N+ X
  42. /*#define EDMA3_DEBUG*/
    . i# C% R6 ?( q" C6 E
  43. + i0 D0 K, w7 Y& C
  44. #ifdef EDMA3_DEBUG
    4 A5 ]; N" b! O% V! o/ S% G5 F
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    % N9 T5 n, o# G) L# a3 k( Y
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    & i9 N4 t9 F6 ^1 y( X
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)  U, w$ f5 L( W% o2 A
  48. #else
    % L: F5 T. I  B7 z) v
  49. #define DMA_PRINTK( x... )0 Y) y1 V& d6 d/ ?' R
  50. #define DMA_FN_IN
    ! I8 Y4 k) O$ R* @
  51. #define DMA_FN_OUT' i+ r. H: y- l0 j6 d" O
  52. #endif4 X- _7 s) ]+ `% b  S; v7 W9 R

  53. 3 [$ a8 o' `3 S! a
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    . ]# l/ n2 }3 D$ Z, S
  55. #define STATIC_SHIFT                3" R7 c% X/ y! b; [- R
  56. #define TCINTEN_SHIFT               20
    5 \- }2 Y1 }" F8 k# r
  57. #define ITCINTEN_SHIFT              21
    4 ~4 M5 x; b7 g; X- V1 g& a
  58. #define TCCHEN_SHIFT                220 H7 [: e) I+ u/ V& X3 m
  59. #define ITCCHEN_SHIFT               238 d9 A2 j3 h/ _

  60. 9 X3 @4 j/ W: i: o5 X1 l
  61. static volatile int irqraised1 = 0;1 m; l0 k6 W9 d2 J# L7 B1 t
  62. static volatile int irqraised2 = 0;
    " \6 P' K+ K: v% J+ n/ |. Z

  63. 9 W9 Z" f3 y+ b/ c  R" z
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);8 _  ]* c+ x% S, w% K
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    % {8 \3 d* a7 u0 V, t" O
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    9 k' N. D& f3 N% D5 M
  67. # _1 T; x- t' X0 a9 z
  68. dma_addr_t dmaphyssrc1 = 0;- w( E8 i0 E% t% F% K7 G: T  A
  69. dma_addr_t dmaphyssrc2 = 0;- g+ I( M& G' k- Y" y; T8 y. b
  70. dma_addr_t dmaphysdest1 = 0;- ]1 j8 J7 G( o+ Z  a
  71. dma_addr_t dmaphysdest2 = 0;7 W3 k: b1 s* j% ~' W8 R
  72. , W7 z( {" ^1 k  n$ r
  73. char *dmabufsrc1 = NULL;
    9 k2 j" s2 e. q- ?$ j6 r2 ?
  74. char *dmabufsrc2 = NULL;
    . U& v" c' l, ?2 R* c+ j( s* C
  75. char *dmabufdest1 = NULL;
    0 V7 b1 h) N1 C
  76. char *dmabufdest2 = NULL;$ O0 H/ E+ S0 F# X
  77. ' D& A% x  h. T$ A( l( u% D
  78. static int acnt = 512;
    ' S  t% }; r' `& y! G
  79. static int bcnt = 8;# G' o5 d! {; X9 Q) D
  80. static int ccnt = 8;7 I2 q7 G1 Y1 Y
  81. $ [# D3 s4 \: H1 d4 i
  82. module_param(acnt, int, S_IRUGO);
    : @* t  ]1 u5 N( V
  83. module_param(bcnt, int, S_IRUGO);
    : q7 b& a3 H4 N; r* R! T
  84. module_param(ccnt, int, S_IRUGO);
复制代码

3 Y- Z  j1 m# V  o4 W" G1 R% ?& y; G! C
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用2 Y: t" X  R3 z
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。  `4 i8 K1 v* Z! w" Z% t
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。) y* w7 a& c6 x1 L3 ?' _% }6 g; g

. }! e6 T# O5 N) `# V+ |
6 z3 Z7 G' D7 U2 X  ~# n. h
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-28 02:03 , Processed in 0.073950 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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