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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
! J6 \6 r5 w4 I9 g2 y
  1. [code]EDMA sample test application
    % q5 j4 F/ \- y/ j; |1 b
  2. /*, G& K1 n+ V6 d# E, C2 G
  3. * edma_test.c2 k6 l9 A' O  m
  4. *3 R- w6 W" E+ {& [1 A
  5. * brief  EDMA3 Test Application
    ' ^# |3 m; x% ?, Y' v
  6. *) o1 E7 f* ]) ^
  7. *   This file contains EDMA3 Test code.  k& @% W! a0 f, ~9 X1 P
  8. *
    3 Z% `- w# ]9 u- m6 Z! ?
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    3 H- E+ w% X8 M( J' C& T
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT: q2 ~# ?2 s, Q+ J6 c- j2 }
  11. *         TO CHANGE.
    1 ?$ M, ]  W/ K5 |
  12. *
    5 u0 X8 k6 p( }1 a! C1 F
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    + i! {! f) ^8 \: t
  14. *3 t" T  Y# t% C: n% z5 M# ]
  15. * This program is free software; you can redistribute it and/or) D$ n/ r. h" h  ]+ C# r: Y
  16. * modify it under the terms of the GNU General Public License as
    . ~3 [* r/ t: w- R3 Z/ u& v
  17. * published by the Free Software Foundation version 2.
    3 ]% t$ d3 d/ `0 U) P1 ~
  18. *6 \5 |4 _) n7 U) j6 K
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    $ y3 a! s+ _6 n6 R! U0 v
  20. * kind, whether express or implied; without even the implied warranty
    / q* j( C/ a2 w$ L( `7 t8 [4 o
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    0 [/ G! G0 E! ?: W% P
  22. * GNU General Public License for more details.( T5 r$ x1 B( }( m) \+ y) D, t
  23. */7 \0 G1 Y9 X- |/ B7 Z

  24. + L" i, s- H. X; Y5 S, J
  25. #include <linux/module.h>8 g/ d3 k( B# u& X) s( R
  26. #include <linux/init.h>  D$ y4 D/ P; `( Z0 I7 z4 p9 }% p
  27. #include <linux/errno.h>3 d6 `0 K+ W3 O- J" P& g
  28. #include <linux/types.h>
    / X! l, f5 [  Y7 ?
  29. #include <linux/interrupt.h>
    " C" A1 _$ C& ^
  30. #include <asm/io.h>
    / O. H, U) D& }, \# {5 ]
  31. #include <linux/moduleparam.h>
    8 d( u# `* E8 ~: l7 N& G
  32. #include <linux/sysctl.h>7 Y1 [, p# k$ N9 D6 m
  33. #include <linux/mm.h>/ {7 U8 h+ p; {7 \6 F
  34. #include <linux/dma-mapping.h>/ N& w( y& e! [9 A5 q; B" Z4 v# O) o

  35. / \; C2 [6 B* V4 }! X+ p* w
  36. #include <mach/memory.h>
    1 |& _/ p+ e: y8 l/ f
  37. #include <mach/hardware.h>5 i# p5 P1 A0 U6 u
  38. #include <mach/irqs.h>. ~1 `9 C" X8 T6 _# v% z
  39. #include <asm/hardware/edma.h># l, F* @( t. f3 o" c5 h

  40. 5 X. \" n% {6 j6 `" o  p
  41. #undef EDMA3_DEBUG
    * E* t) ^, |' P
  42. /*#define EDMA3_DEBUG*/5 O8 A) z3 C- H3 ]2 I
  43. 3 N- E1 X$ F7 }; n
  44. #ifdef EDMA3_DEBUG
    7 m7 l  i3 P! \4 p4 B: C  w* }
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)2 C- Z) R9 g' {% i  E  a6 R4 ?; g% U
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)! V' [3 i( R, E2 e
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)5 i9 P' ^( ]! ?+ G5 O
  48. #else
    * s% E# A* W2 y. [% I- j+ b/ }
  49. #define DMA_PRINTK( x... )3 `+ Z' ?3 N+ L; K7 k6 I  A
  50. #define DMA_FN_IN+ }8 h4 s$ P* v  i, x8 D4 V9 N
  51. #define DMA_FN_OUT) [/ g/ M: |- e: q- V2 O
  52. #endif
    & P2 V7 e# U5 N8 s
  53. & J* v9 t# T  R$ z, M2 U: V
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)* V- y4 i( C9 F9 |) E  N. n$ j9 k
  55. #define STATIC_SHIFT                31 }( `: O5 G2 S3 u* [
  56. #define TCINTEN_SHIFT               20
    9 y1 j# w0 c/ |2 t5 S" {
  57. #define ITCINTEN_SHIFT              21
    4 F* ^$ h- |- O5 H
  58. #define TCCHEN_SHIFT                22
    , ^% U, X# |/ ]
  59. #define ITCCHEN_SHIFT               234 [9 I: o& n, B
  60. 2 c  S3 k+ v9 n6 W% P1 G# u( |
  61. static volatile int irqraised1 = 0;
    - F. j+ C% y$ g  D2 I0 y2 @+ o8 V
  62. static volatile int irqraised2 = 0;
      N4 r. u4 N9 y/ k+ z" G
  63. ! P7 H' [- R. h0 ^4 d" E
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    $ E: L" `8 h  t- K) |
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);: j+ |$ B. S8 J( q- }
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
      _7 [5 X8 a! \, ~! g) X
  67. 7 j% o: D/ d2 j8 }9 S0 ?! P2 e
  68. dma_addr_t dmaphyssrc1 = 0;; b4 X2 i3 K6 x8 H2 z- V& ?% O
  69. dma_addr_t dmaphyssrc2 = 0;+ H  }, N* U0 U2 r" M1 Z
  70. dma_addr_t dmaphysdest1 = 0;  R" p1 U) D. L' A
  71. dma_addr_t dmaphysdest2 = 0;
    . {6 Q6 p4 z9 q4 T5 t- X' Q. q" F
  72. , f, `1 Z3 a  S6 D2 y
  73. char *dmabufsrc1 = NULL;- D0 O4 u) ?  J: `
  74. char *dmabufsrc2 = NULL;/ g, P4 w5 ^2 [
  75. char *dmabufdest1 = NULL;
    3 H6 Q  D  O' k0 o. h* j
  76. char *dmabufdest2 = NULL;
    2 B* d; [$ R7 q5 E% G& s
  77. & p5 l; F. A- y
  78. static int acnt = 512;" N! J& s/ X$ H! r1 }4 W% M' K* ?
  79. static int bcnt = 8;
    2 ^% M$ m! U$ u( O! @9 ^
  80. static int ccnt = 8;* b1 \% }- z1 k$ }( c/ f
  81. ! j0 W; H3 ^( j7 X" |* ?' N, y
  82. module_param(acnt, int, S_IRUGO);
    ! }0 N& D% y* Y0 J3 ^0 e
  83. module_param(bcnt, int, S_IRUGO);
    % F3 B  r. a7 _" Z. S1 v
  84. module_param(ccnt, int, S_IRUGO);
复制代码
% U' \: M9 b: u& n6 A8 m: p5 Q' d/ l

. X1 u1 T) [9 ~      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
  w9 }7 \/ P# m- }5 r' Yarm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
7 l( T. F8 H& B7 Y# u, Q     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
* h" g3 I+ r; D/ `) P/ \' a
3 G0 c" i* G4 f3 Y% m9 {! I7 @& i# S6 x3 v3 m) m0 D, ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-21 04:00 , Processed in 0.066991 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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