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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
. J! L5 w8 I7 M& T
  1. [code]EDMA sample test application
    & R$ E7 A) h* r+ A
  2. /*
    9 l/ l+ R# b, K: L
  3. * edma_test.c. w! G( I$ P6 D) a' V1 W" L
  4. *
    3 g6 w* A$ D: P& A1 E- q7 x
  5. * brief  EDMA3 Test Application
    5 w% ]  s% a( x- y) S# q
  6. *
    . E0 H' h1 G7 q
  7. *   This file contains EDMA3 Test code.
    $ J- L% b8 y# F$ @% X9 d2 x2 d* Z
  8. *0 E+ m& ~, b* e6 Q- ~$ s/ K2 \8 m- |
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE8 j. f, G  g! N1 u8 b
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT  R7 D, A  c) _/ b
  11. *         TO CHANGE.
    , g- x$ M  x! l8 V. u
  12. *
    ) ?% G* ]$ `% v2 F
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    ( L. B" w, s$ m) ~* E& b/ W. u
  14. *
    * V4 k1 u& c) \! h7 e3 \# w
  15. * This program is free software; you can redistribute it and/or
    1 a  g+ t7 |4 E2 `' z: h' w
  16. * modify it under the terms of the GNU General Public License as2 h9 @' G8 O  r4 r
  17. * published by the Free Software Foundation version 2.- z0 S4 ]* t3 T9 s) a* S+ ?- w
  18. *8 Y$ a8 L2 w1 a1 {+ R: A
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    4 m3 U# O+ c$ {+ L' t" t
  20. * kind, whether express or implied; without even the implied warranty, @. `) ]0 K$ w6 h  c5 ~
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + C1 ]/ y+ @& N
  22. * GNU General Public License for more details.
    . i. ~$ C5 D7 V
  23. */
    / b) @! K) `) r1 }

  24. 1 H+ B1 z. }9 X  M) T
  25. #include <linux/module.h>
    " V) K4 \  l+ u* `& T
  26. #include <linux/init.h>! \' u& V, `7 r& X7 r& h  I
  27. #include <linux/errno.h>/ ]/ i( m+ V) j& S
  28. #include <linux/types.h>" K, g* N" P. Q0 Y8 J
  29. #include <linux/interrupt.h>) _/ s2 ?7 ~8 l6 N9 c/ o
  30. #include <asm/io.h>; Q9 I! A' E0 z  {: @
  31. #include <linux/moduleparam.h>
    9 H# y) I2 {! q! p9 ?
  32. #include <linux/sysctl.h>" |$ x  \* t9 ]7 {7 v: g" I! I
  33. #include <linux/mm.h>0 }4 u# }, D0 F9 F9 P% N8 Y& H/ L
  34. #include <linux/dma-mapping.h>  {4 J; d5 X/ {% }; p
  35. 1 N$ L; d: b" j! |* J5 B
  36. #include <mach/memory.h>0 L, A5 A/ @& Y: Y
  37. #include <mach/hardware.h>
    2 O- L4 n8 x4 l, D% z! N
  38. #include <mach/irqs.h>
    - e4 S& L) U% J0 ~
  39. #include <asm/hardware/edma.h>
    # C5 f- e; h5 L7 k

  40. 6 U& m- h, H+ {- K+ o" ?8 Q0 s( H
  41. #undef EDMA3_DEBUG
    % \+ |9 F1 J# ^/ W
  42. /*#define EDMA3_DEBUG*/
    0 H2 L* _2 m/ m0 ^
  43. ; H( ?% ~+ `/ Q
  44. #ifdef EDMA3_DEBUG* Y9 U8 @  k$ Z6 V' H9 S2 [
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS); K9 P  M7 ]8 m; v. _* O& i; g
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)+ W' [- Z; ?3 M6 T/ P2 F. S( G
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    - q0 [! p* |( h% ?# ^8 H
  48. #else4 h5 L& M1 j( N/ [0 }- ]
  49. #define DMA_PRINTK( x... )
    8 I3 J/ b7 a6 j  i2 ]
  50. #define DMA_FN_IN
    ) ^$ X0 M8 J  P7 p5 c$ O
  51. #define DMA_FN_OUT
    # N- p2 O, Z6 P. R/ r
  52. #endif% X- {& V' l0 Z
  53. * Y3 @: x& q. h8 f0 J' P
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    7 y( B  V7 ~5 V% m
  55. #define STATIC_SHIFT                3. }9 N" v7 Z2 [* u. B
  56. #define TCINTEN_SHIFT               20. `, A" `+ w; G: S* A6 U2 F7 x: D
  57. #define ITCINTEN_SHIFT              21
    " g# g' w* `8 b# \( V  c8 e
  58. #define TCCHEN_SHIFT                222 O2 q. A9 k0 i6 [, \* ~
  59. #define ITCCHEN_SHIFT               23
    3 l  k" f+ b; L, h
  60. ; V7 ~0 t  E4 k
  61. static volatile int irqraised1 = 0;
    8 ?9 J) Y; _! A# H8 U& }
  62. static volatile int irqraised2 = 0;, r4 |3 S; J& w3 B$ Q) K4 d" Z0 {. @4 W
  63. 8 u' N* x% P, N2 M( M/ f  I( w9 e
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);1 d& b" F0 |  z4 _  T8 x& [2 l
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    $ f3 I! s' J. v" p' `/ d3 W1 P
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    7 v# _7 R! l- W3 W9 O0 [: q

  67. * K! @7 [, d( U; c# J0 k1 H) ~: c
  68. dma_addr_t dmaphyssrc1 = 0;
    ; g1 m' {: I9 F0 A
  69. dma_addr_t dmaphyssrc2 = 0;. S0 [' o! z. L9 }
  70. dma_addr_t dmaphysdest1 = 0;
    : c! W7 y; `- u# h0 o3 R+ O. ?+ v6 G
  71. dma_addr_t dmaphysdest2 = 0;
    ( F1 E  ?8 ]9 G" F, l+ C. L
  72. 7 _# p" g6 v2 K2 F0 n5 l  Q8 P
  73. char *dmabufsrc1 = NULL;) g, }0 s# i! e0 Q+ a! T, y
  74. char *dmabufsrc2 = NULL;
    * W& |  f% {) [! D; {3 A) f
  75. char *dmabufdest1 = NULL;
    * k0 E; A, k2 O) a) r
  76. char *dmabufdest2 = NULL;
    9 s8 I$ C4 T$ d

  77. * l7 n0 d) [/ m
  78. static int acnt = 512;4 G. o- l( I) L1 z: d6 f
  79. static int bcnt = 8;7 m/ H0 y  I9 g
  80. static int ccnt = 8;
    ( X! r+ \0 ~' T' C. @4 w
  81. - h# e3 t# y4 m& v
  82. module_param(acnt, int, S_IRUGO);$ J0 ]  l  p$ Z$ @/ y) }
  83. module_param(bcnt, int, S_IRUGO);( z- B0 Q! g1 \& R1 |. U! l9 g
  84. module_param(ccnt, int, S_IRUGO);
复制代码

: D6 M5 @3 s, N' t/ h) e- {; {( X" t) {
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
" ?5 C# G5 v* Y" a2 f# ~: B) p/ R# E, Aarm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
) h2 g8 V' `. Y1 Q2 Z, _     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。! ]6 {! F1 P2 \. v
! ~  @9 g& L1 U1 r
7 F6 m- o# ^6 r: @, x+ _9 k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-8-18 20:35 , Processed in 0.040503 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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