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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 2 h$ @! `1 q' J% B
  1. [code]EDMA sample test application, h, a: t. T/ h1 _; w  |& p
  2. /*/ u- Q, ~4 S* _
  3. * edma_test.c
    % X& e  p9 o* q5 N, p: M  ^
  4. *, K+ y7 b) H) A- x5 v' ^
  5. * brief  EDMA3 Test Application
    * f$ ^8 K8 K* Z2 L+ ^) v
  6. *, x' u1 ]8 h4 ~! k% O
  7. *   This file contains EDMA3 Test code.
    8 g  I6 ~0 D& v. d
  8. *
    ) X! Y/ d5 f, L8 b6 q7 \% ]+ d
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE5 F0 a* m- B$ t/ L  w) y
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    6 L% z2 @# C  ~. {0 a& p
  11. *         TO CHANGE.: [/ r3 J3 ?5 p4 x  E( R4 n
  12. *: S5 d0 C* M$ o2 Y. j
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/3 U; A, p6 p# \- B& T
  14. *
    / U+ {; _0 Q. G2 j9 A/ c, ?
  15. * This program is free software; you can redistribute it and/or
    - X) G6 C4 \- p! B5 E. c1 L
  16. * modify it under the terms of the GNU General Public License as
    2 T% j& B$ k7 D4 F; l+ u
  17. * published by the Free Software Foundation version 2.1 o" ?$ o$ ^& b9 ~
  18. *
    " r! ~6 m; }3 i7 l' U, R
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    9 v" j  U' {9 \0 l+ w1 h: B0 m
  20. * kind, whether express or implied; without even the implied warranty* \  q3 n+ v4 C* N: B( X
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    2 S7 M: E" m  D& W5 W! M, C
  22. * GNU General Public License for more details.
    . Z8 R5 A8 q" `1 l/ r
  23. */
    2 a4 w& A- u8 t7 x/ X6 O; {8 q

  24. 2 w3 P( l8 N+ d: |- _
  25. #include <linux/module.h>9 ?( X- h, H0 Y2 O) A5 Z
  26. #include <linux/init.h>! @& W/ n8 V, x4 |  h! C% H" F
  27. #include <linux/errno.h>( j/ z* {1 E, I0 b
  28. #include <linux/types.h>
      u4 K# G1 y# O- M0 V, o
  29. #include <linux/interrupt.h>
    ! I% {: y, x4 e- ~
  30. #include <asm/io.h>1 U/ i8 H6 R2 G% _8 U  B: {  e; H
  31. #include <linux/moduleparam.h>" n  y5 J7 `( w1 u1 e
  32. #include <linux/sysctl.h>) S& c: H, S+ T# [
  33. #include <linux/mm.h>" t' w) a  o) F0 l
  34. #include <linux/dma-mapping.h>
    7 v% S6 g1 H$ ?$ ~
  35. - d+ I2 H! O  }' U, G. R. M
  36. #include <mach/memory.h>
    / a' k6 I( Q. ^6 B3 G
  37. #include <mach/hardware.h>
    5 C- t+ j; o& q5 x/ k1 s
  38. #include <mach/irqs.h>
    % J  F1 m( o9 ^9 Z" _) W
  39. #include <asm/hardware/edma.h>
    4 _$ u! B" V4 `; X
  40. # D- s/ O. M: R0 \, _3 C
  41. #undef EDMA3_DEBUG
    9 d& h. q5 P5 u$ y, |  t
  42. /*#define EDMA3_DEBUG*/
    3 A& v/ B! ^5 T8 b

  43. . z( Q+ i7 u- p1 Z' }0 I1 D4 u" l( V
  44. #ifdef EDMA3_DEBUG
    ( y! w7 z* Z5 O- u$ H
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)8 W5 b8 f% y7 E- ]$ j$ K9 v
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    % r0 W; C, g+ T( a; A
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    7 t, a( D4 S" k0 B  Z
  48. #else. d8 w2 [6 b2 G, T) l% i
  49. #define DMA_PRINTK( x... )" E7 v  e. a; C- Z% b
  50. #define DMA_FN_IN
    * c$ i4 ~- s' |/ T5 r
  51. #define DMA_FN_OUT0 ]; f$ @+ M! W% C: B
  52. #endif
    2 T. Y4 ]' V, h8 @6 H: H! q  Z
  53. 5 H7 t7 v# j; g' C+ v, F
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    + |# j0 h: @; f$ s5 x$ Q% h, Z
  55. #define STATIC_SHIFT                3
    2 \; N2 M4 c' v
  56. #define TCINTEN_SHIFT               20. {  o9 u( d; i  B
  57. #define ITCINTEN_SHIFT              21
    6 e5 b9 P3 T: |3 _/ G+ e9 q, F
  58. #define TCCHEN_SHIFT                22
    0 V9 z/ g9 P) ~! K/ L% a9 }
  59. #define ITCCHEN_SHIFT               233 n: r/ J: y% K8 x

  60. + @$ s. W$ s. z
  61. static volatile int irqraised1 = 0;
    ' M& m$ [- i- Z, O3 [8 |
  62. static volatile int irqraised2 = 0;
    7 O, E* T% z2 l5 N! Z

  63. 4 L0 n0 s: f: }- S7 m9 B. M& H2 L
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    1 d' z) j* r7 o4 j' w/ L6 v
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);- W  U/ G* ~! M9 I4 a. T
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);& F. ~, @6 a, N) J. q5 W+ b" J
  67. ) r, t. x6 E; W' o' ]' w
  68. dma_addr_t dmaphyssrc1 = 0;6 x  S2 i6 R5 N2 Z! }6 q' B
  69. dma_addr_t dmaphyssrc2 = 0;6 @9 X! x& ~2 q% }% _4 B1 l
  70. dma_addr_t dmaphysdest1 = 0;
    2 Y# n0 f6 f& r; P  t
  71. dma_addr_t dmaphysdest2 = 0;
      J7 I8 Y5 A, |4 f" u; z9 x1 |8 u% T

  72. * G7 I* [5 J& o) }
  73. char *dmabufsrc1 = NULL;5 H5 K9 }, v  ], o$ S8 s- Y4 R
  74. char *dmabufsrc2 = NULL;9 X) R: l. S; s4 d" D
  75. char *dmabufdest1 = NULL;' g4 k: s8 K  g3 ]. }
  76. char *dmabufdest2 = NULL;
    9 k- U0 q# y# d- B8 `8 n
  77. ; B* ~2 P- X$ p6 }" K. X
  78. static int acnt = 512;# t% @9 p( |" B( f& r8 T
  79. static int bcnt = 8;
    ; y3 j9 R0 }5 y0 r- @" R3 c
  80. static int ccnt = 8;7 M7 o4 s+ u. H, @/ @% ]

  81. % B$ P$ K- G; p" x
  82. module_param(acnt, int, S_IRUGO);
    9 W  O  h' @  `* W. u) D
  83. module_param(bcnt, int, S_IRUGO);8 T9 d5 V% r" Y1 i1 h4 J! k
  84. module_param(ccnt, int, S_IRUGO);
复制代码
( h( h- \, W! I+ B1 K: @8 W
! }& A* l: z% q
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用8 R3 I! R; W- W! X  e
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
) x- F( w0 T. M% m     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
1 Y  n1 x. V, q9 L+ E" @
4 q4 P' a' x9 ]. v: ^7 R) f5 T8 ^" k, w& U0 u* f8 G6 d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-30 14:09 , Processed in 0.045379 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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