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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 8 W+ s0 a2 n0 }8 G' o
  1. [code]EDMA sample test application
    $ `0 D3 F0 x. `% x& H* N1 t: p
  2. /*. O# Q0 j+ q  E6 T$ I  S  N
  3. * edma_test.c
    % ^- G/ ^( V1 q: f
  4. *" G8 r# d% m& D3 R3 b
  5. * brief  EDMA3 Test Application
    ; f( B2 T7 E/ g* W" F' K# ^# Y7 b
  6. *
    8 d# K5 e+ F( S, v& ?$ U; u
  7. *   This file contains EDMA3 Test code.
    : W$ Q! @2 y- s* ~: L
  8. *  N; b5 ?$ [7 m8 }
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE* t1 u6 |; z, [3 F5 i, ~# Y
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    5 o. Y. W4 h* e7 d
  11. *         TO CHANGE.& B  D  b% N* e! A, {( r
  12. *5 ?- B& Q9 w0 K5 p
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/" I$ W3 m8 s" K' W/ V! ~5 l& x
  14. *5 S+ i0 s* N2 x* \. e
  15. * This program is free software; you can redistribute it and/or% B6 v* t8 W( Q' Y  F4 W) |6 z- V
  16. * modify it under the terms of the GNU General Public License as
    * a% H$ w1 R1 _' E/ M- ~1 w0 N
  17. * published by the Free Software Foundation version 2.2 ]7 o" f* d# [' u- m& I1 [8 g' ^
  18. *
    / Q) Q$ `! I& S) Q8 x
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    0 L6 Y5 s! ^  H& z5 ^
  20. * kind, whether express or implied; without even the implied warranty" r5 H4 B9 z* I- V
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    ( O8 ^- i' t9 j) M3 l. o; l! h% v
  22. * GNU General Public License for more details.
    7 x- P) I$ v5 S" @6 c. W
  23. */
    2 r9 N8 `4 |5 F% R/ k4 j- z
  24. ( \8 V3 A  X! J# F- U# `
  25. #include <linux/module.h>6 W7 i' a  K- M) N1 t. _
  26. #include <linux/init.h>. t1 j) f& ~; D- m& ?* {1 J
  27. #include <linux/errno.h>
    4 o2 G  o5 z( ]
  28. #include <linux/types.h>
    ; Z/ |* w# `* V3 S1 z" Y; ]
  29. #include <linux/interrupt.h>
    + W; T$ ?! C3 y, c" p% O' Q
  30. #include <asm/io.h>
    3 `* ~  _1 t- k2 Q8 T
  31. #include <linux/moduleparam.h>
    / ]2 z2 I2 m( `( C& e) n
  32. #include <linux/sysctl.h>8 c' Z0 P$ V' T6 f; t; K7 \
  33. #include <linux/mm.h>4 c6 \% g+ N! P8 c
  34. #include <linux/dma-mapping.h>+ x. ^$ i2 S0 {5 Q

  35. " ~5 n, W2 a, s0 |8 R
  36. #include <mach/memory.h>
    $ f$ x4 I5 p8 X# X  Y" G5 {& b
  37. #include <mach/hardware.h>
    8 I+ E# J5 E4 t' Y  A4 t
  38. #include <mach/irqs.h># J% [! g& @) J% c  R2 I$ J5 Y
  39. #include <asm/hardware/edma.h>- i# i4 W* i- U/ b2 J

  40. " o; S: c- O- |( S( r+ @
  41. #undef EDMA3_DEBUG
    8 [* ~7 I5 Q6 i# n% D
  42. /*#define EDMA3_DEBUG*/, {4 [" M' q7 t$ p' O

  43. , ~/ F2 M7 e% n
  44. #ifdef EDMA3_DEBUG2 n6 O& z! @1 @
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS): |( R* Q; n5 Q- q/ U2 ~0 ~* F) b
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    2 N0 f+ N+ Y; C
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    # |4 d& c* i) f, B6 r% t
  48. #else: n# C- Z" |9 N: C7 A9 E9 V  i
  49. #define DMA_PRINTK( x... )
    8 `  N2 N# y) P! m; T6 a. \. b
  50. #define DMA_FN_IN2 |# x) p# Y1 J( f, n& S
  51. #define DMA_FN_OUT+ n& u. h1 s. t4 X. c4 b- {9 P
  52. #endif5 a! T2 J! T5 p' f

  53. / F- X2 }0 H. |4 k
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)* V  g3 {/ s8 O" v/ x/ y* H2 u6 E- q' ]* G7 \
  55. #define STATIC_SHIFT                3
    7 }  |/ [8 C  A" y3 c
  56. #define TCINTEN_SHIFT               20
    3 _9 c- ^' \9 W- E) W8 F& [
  57. #define ITCINTEN_SHIFT              219 L: K, k6 k5 Y. ^. q
  58. #define TCCHEN_SHIFT                22
    $ i/ q! V3 u+ l/ p+ K0 [
  59. #define ITCCHEN_SHIFT               23" w) j' j! x  w  r

  60. * F/ n: x+ m. u) V$ R+ I
  61. static volatile int irqraised1 = 0;# ?1 i4 t% G% D0 O
  62. static volatile int irqraised2 = 0;5 j5 a+ U6 Q+ K8 X3 t( Z
  63. % t7 |. V$ `; e* m
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    $ {- c8 ?& c, B' n) t9 D  Q
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);3 L" K3 ^8 P8 e9 Z0 B/ L: i0 {
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);+ `% L# q+ M7 S
  67. - b" h" y3 I8 d' O) `
  68. dma_addr_t dmaphyssrc1 = 0;' C  ]8 [/ X& u6 I
  69. dma_addr_t dmaphyssrc2 = 0;5 p2 o6 T1 x# j& B1 C( W6 J
  70. dma_addr_t dmaphysdest1 = 0;* y# t  J$ G- O( n3 g: i4 ~1 K6 H: e# ~
  71. dma_addr_t dmaphysdest2 = 0;
    4 Z2 k- }, {6 g* A1 M$ }( @8 ]7 Z
  72. ; q2 d4 y6 G+ L. d( z' W: q# a
  73. char *dmabufsrc1 = NULL;" n- u; x3 x4 D* h5 l% j
  74. char *dmabufsrc2 = NULL;+ n$ \9 D, p+ W
  75. char *dmabufdest1 = NULL;
    + j" y; @/ Y, ^% [- h. d
  76. char *dmabufdest2 = NULL;$ P  k; J4 Y" }& f. G9 O) h

  77. ( N- F; u, F& C" R3 I# l
  78. static int acnt = 512;# _5 J2 r  z" F* ^2 o" f. @; x9 p) }
  79. static int bcnt = 8;$ z: j0 L$ L) V  t. z/ \/ L8 l* K
  80. static int ccnt = 8;$ Y+ ~5 N" m* j+ L. U0 b9 {

  81. 8 S5 b! O/ r3 U6 U' _- \5 Y9 o
  82. module_param(acnt, int, S_IRUGO);3 m- G6 g! K3 |" e+ @
  83. module_param(bcnt, int, S_IRUGO);
    7 X* ]! ^6 M) y8 V
  84. module_param(ccnt, int, S_IRUGO);
复制代码
3 L: g' a, Q: R# f( @$ U( V$ l

: P( x8 H0 t0 `" t1 F: o      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
) q" t8 I2 C- s! M' ?' K6 qarm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
8 y# y; E) }! e: B# C+ R     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。% }4 Y/ V+ a$ y1 A8 x% l" z: o
* z" c& K; `7 }6 _
; v+ R5 Z: e' h1 Q5 Q8 R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-23 08:14 , Processed in 0.039311 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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