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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 ( E3 V5 ]5 m  _5 C  ?2 `- }% t
  1. [code]EDMA sample test application$ P" E* I& [4 G6 L% S( q6 Z
  2. /*
    # E. e1 s' X6 b( \! \* G
  3. * edma_test.c, A+ p: I4 T- t9 a
  4. *" B$ ]7 p2 P+ j
  5. * brief  EDMA3 Test Application' G8 [, q& ~' @0 {
  6. *1 d7 M- m$ F% @' @2 m4 B: S
  7. *   This file contains EDMA3 Test code.
    1 l+ M. k! O3 Q- {" q9 N
  8. *- O) q$ O. `1 k( ?. j( V  o5 J
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    ; Z) l) \# [' V" Z+ ~- Y
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT4 H. j  w  V) n# e( [% n0 D2 E! V( ]/ b
  11. *         TO CHANGE.( c+ Q3 u+ P2 ]4 L! j
  12. *8 K; Q9 z" F* o. x
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/: j1 R8 _; Y8 x& O  Z
  14. *
    6 t5 r9 U* C& P
  15. * This program is free software; you can redistribute it and/or& p2 F" s. a$ o1 Y) _  E% b6 A
  16. * modify it under the terms of the GNU General Public License as
    7 f" t+ m7 l6 p5 T
  17. * published by the Free Software Foundation version 2.
    - T' }( ?1 r+ E# p7 E% }- T
  18. */ R/ f3 B3 `; l3 b) z) Z- J
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    3 b& O: a# X' n% o& Z/ \- i- I6 S" l
  20. * kind, whether express or implied; without even the implied warranty: u  B- R. _# D% n9 Q
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    0 a7 D% w) I3 z+ i
  22. * GNU General Public License for more details.
    ) L# f8 K# i6 m$ h9 ^
  23. */' \- }) j% q: w+ w+ W1 D

  24. * ^& y: ?' ^4 p8 y
  25. #include <linux/module.h>
    8 h: p. L$ W8 K+ r, \! \2 |  j
  26. #include <linux/init.h>
    1 }* s& I# i3 f2 ^0 h
  27. #include <linux/errno.h># D/ t( H+ l' m% ]! E" V7 E
  28. #include <linux/types.h>7 i6 ?1 P- ^. ]! @/ H: G6 B
  29. #include <linux/interrupt.h>) G& D/ L6 D1 k
  30. #include <asm/io.h>
    1 j; P- D# F# v0 W: M0 y
  31. #include <linux/moduleparam.h>
    " D3 p6 @% i  D; w3 `  o$ N  W2 Z
  32. #include <linux/sysctl.h>
    ' ~0 E! q$ D/ p* g6 U
  33. #include <linux/mm.h>: J2 A: C9 J- e$ L
  34. #include <linux/dma-mapping.h>
    4 F  ^1 G  X  H, D8 _: j1 Z: E
  35. ) F+ L9 t0 _" g: a
  36. #include <mach/memory.h>+ U% C% L) z# t: u+ `' v
  37. #include <mach/hardware.h>9 F0 @6 [$ j( Z$ {$ a& ~9 G$ V
  38. #include <mach/irqs.h>
    + X5 s  \9 {7 _  u, X% O2 [
  39. #include <asm/hardware/edma.h>/ |4 F2 _/ v/ O5 ?( O4 i- l9 K

  40. ( M4 r) d; G) g/ x6 l
  41. #undef EDMA3_DEBUG
      ~( {# s! M3 i( S
  42. /*#define EDMA3_DEBUG*/- k6 [( d6 L8 c4 E0 N
  43. . _" u- _) g" g* w' x9 V" o3 @2 z
  44. #ifdef EDMA3_DEBUG
    " y  o4 k+ y8 h3 X0 T1 |7 g: y# b
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)) Y) d. n8 w/ y
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    7 u, k% |( {- D( f
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    $ k1 n1 I  i2 g) T: \2 c6 G0 A; S
  48. #else1 s, Z6 }$ M: `& [5 n1 k, C
  49. #define DMA_PRINTK( x... )* ^1 |" c' X$ U6 E' ?
  50. #define DMA_FN_IN( Z, c0 c0 ]7 J  x# f) B
  51. #define DMA_FN_OUT7 H# `0 T. T4 t, R
  52. #endif
    % X0 z  j2 Q; q9 b& r/ @8 p

  53. 1 s/ f6 L- w4 e$ x, V+ S4 G
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
      U6 J0 M, }( Z
  55. #define STATIC_SHIFT                3( ~; ~0 J9 f: _; w2 H+ e  G# v
  56. #define TCINTEN_SHIFT               20
    6 i( t* X2 O) }5 o% j3 O% ~
  57. #define ITCINTEN_SHIFT              21
    ! n+ _# Y( F3 Z+ e
  58. #define TCCHEN_SHIFT                22
    + x. l* Q+ n, Q; d7 K
  59. #define ITCCHEN_SHIFT               23+ e0 w! ?2 L. ?; Q: Y/ e5 E  N9 q
  60. : f+ {8 B  Q2 J) I& g2 B$ Y. U4 |
  61. static volatile int irqraised1 = 0;  I: v! T% S$ B7 D
  62. static volatile int irqraised2 = 0;
    $ T- Q) l, T* E' n7 m9 N

  63.   C* x+ w7 i4 r1 Z; I" ]8 {5 B
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    1 V$ |1 i4 q& w: P: U) c$ ?$ O
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    . e8 n& }8 y; e6 R: h
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);( ]" k$ k% z* j( O; w, K! h) X2 ]
  67. " M; W4 C0 V: g% m. x0 F
  68. dma_addr_t dmaphyssrc1 = 0;
    # D1 S; R6 m1 _* _& N  f" t
  69. dma_addr_t dmaphyssrc2 = 0;" b8 I  w" s$ q! _8 V
  70. dma_addr_t dmaphysdest1 = 0;
    ! C+ e# [( [$ R8 z& w. a
  71. dma_addr_t dmaphysdest2 = 0;
    $ J+ ^; n9 M" B

  72.   ]/ |/ q, ^! c) q6 ^
  73. char *dmabufsrc1 = NULL;
    0 B  e+ @% ]; _' p. q9 Q' H5 t
  74. char *dmabufsrc2 = NULL;
    3 r& z/ [2 A. m2 J  n* V$ O
  75. char *dmabufdest1 = NULL;
    ( L$ n- `8 `  q; I( p/ z) ?6 x0 o2 K
  76. char *dmabufdest2 = NULL;
    8 g- Z8 _% A: T* E
  77. , [! `) z2 H" r2 J+ C. f* Q
  78. static int acnt = 512;( Y  {8 @( b& }' D
  79. static int bcnt = 8;
    : r2 G9 r. t. `( e, E% s/ A
  80. static int ccnt = 8;# d8 T& o- f! F' N* {
  81. / j5 N, m+ W$ E& L# h. [7 X8 s* \
  82. module_param(acnt, int, S_IRUGO);
      `2 X& F2 r' {6 R6 S# l
  83. module_param(bcnt, int, S_IRUGO);
    " _. W' ?6 {# o/ t
  84. module_param(ccnt, int, S_IRUGO);
复制代码
; G( P; f: v6 L5 b! R- j! ?

7 n8 k" |6 h( G" [  ?7 d0 V8 o      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
! Q# Z; d1 R% Garm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。  z: X; |' Z/ s; }, X5 v
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。; m$ j/ C5 F' G( {$ T

. {/ G( Q; K' x9 Z3 L" C
% N. q  C5 c/ K( B' u' T0 `" A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-27 03:41 , Processed in 0.037451 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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