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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
4 C$ M- F5 }2 s9 _
  1. [code]EDMA sample test application" k( c. _( t' s; N' w! Y; Z
  2. /*& K8 n* D7 U2 E4 I1 X; q3 K
  3. * edma_test.c1 N7 s. ^: ]% E* A% H
  4. *9 W9 s6 D, y* E6 f
  5. * brief  EDMA3 Test Application% D4 [% Q0 u# J' i0 e% i  T
  6. *; S2 W4 }4 ~$ l. b8 s. t- i
  7. *   This file contains EDMA3 Test code.
    : y( Z$ M; |1 C$ j7 A: r
  8. *) P! O0 f' X) S  d# O
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE! s2 E# o) v/ ]9 I& x
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
      d, {4 s" U/ Z
  11. *         TO CHANGE.
    % w7 l4 Z8 H8 M$ e8 r
  12. *
    $ M, c) I! U, u' g/ k; W
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    2 j) M: ]7 K% t9 B
  14. *
    ; s" p  S* [3 G
  15. * This program is free software; you can redistribute it and/or1 S" B" @" T* X, {1 w
  16. * modify it under the terms of the GNU General Public License as4 F; W  G6 ]+ ~9 E: k# _* Y' ^
  17. * published by the Free Software Foundation version 2.4 t4 X# {9 e6 F0 [+ m, O
  18. *
    : \- k  E6 m3 Y
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    8 }+ l9 i9 Z! ~- m4 C  \
  20. * kind, whether express or implied; without even the implied warranty
    ( P( }' f& v5 j& E5 r
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    7 W% D+ K7 O/ U& t" y
  22. * GNU General Public License for more details.
    ! g# T1 r+ Z& n$ o# c# P/ Z$ t
  23. */
    ' [- R4 {) M- x' j% N" k
  24. 2 E+ N* ^1 ~6 Q  O* p
  25. #include <linux/module.h>2 d2 ]. Z* W( x  o3 y; l; I
  26. #include <linux/init.h>- i+ o( l: p/ A/ p9 d
  27. #include <linux/errno.h>! J) A$ f' T6 L5 ]( g# h
  28. #include <linux/types.h>
    1 T3 ], B9 Y/ l. ^) ^
  29. #include <linux/interrupt.h>! M7 k! N1 j% ^- d! Q
  30. #include <asm/io.h>
    7 T' N; t  N4 v$ {
  31. #include <linux/moduleparam.h>7 g% P1 y3 S: E* W, B# d$ |
  32. #include <linux/sysctl.h>' H; b. |8 m- K9 L. }
  33. #include <linux/mm.h>/ S) }* P5 M- c9 G7 w) H, [4 o
  34. #include <linux/dma-mapping.h>
    4 E. ~9 d; N7 i

  35. 9 ^0 Z- [( n3 Q. |* o
  36. #include <mach/memory.h>. x/ s2 [& y6 t" G& X; [
  37. #include <mach/hardware.h>$ S. @  X5 p8 K5 U
  38. #include <mach/irqs.h>3 F( A; r# q2 s2 g6 V3 M7 k
  39. #include <asm/hardware/edma.h>
    " S( E+ X3 q# c- d; c# ?

  40. ! C" ]* V8 D- H/ ]5 t; I5 m/ |
  41. #undef EDMA3_DEBUG3 C5 B# }4 E; c
  42. /*#define EDMA3_DEBUG*/- l1 e* ?. f# d) Q" |, a
  43. * U! _/ Z! h2 a$ V/ T; f) j* T" r0 Y
  44. #ifdef EDMA3_DEBUG
    % z% \$ K( n" j- C) U5 {/ x
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    * k6 X; o" R2 d# [5 t0 B
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    & e% ~* J) k) a6 @# o1 G# r9 M* w
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    # X0 X  R2 g' q' i
  48. #else4 I) W+ q6 T1 t# u4 |7 n
  49. #define DMA_PRINTK( x... )
    % q) W1 {; P4 ^; I
  50. #define DMA_FN_IN
    # l8 T- B, {9 y5 D4 _) M
  51. #define DMA_FN_OUT
    % ?% ~/ X; l# S- Z2 g% k! i6 l
  52. #endif
    ; G* c! [/ z. q7 j
  53. 0 r6 L6 j" ^! n# w! R: z$ `4 Z
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    0 ^6 q$ J: n4 I# }( ~" `& c
  55. #define STATIC_SHIFT                3
    4 w* y& [: C8 w
  56. #define TCINTEN_SHIFT               20& |* h3 p& P- r2 K# O) P+ q+ j
  57. #define ITCINTEN_SHIFT              21: i! ?, ]% v* P2 i
  58. #define TCCHEN_SHIFT                22% T- ?  {3 O# _. I
  59. #define ITCCHEN_SHIFT               23
      c# [+ R' y8 o$ O9 t# a6 I/ X

  60. / V& \# G3 n9 p3 m6 I% U' w
  61. static volatile int irqraised1 = 0;  K4 Q- {- [# |5 m
  62. static volatile int irqraised2 = 0;3 A, c" c- @; Y9 t) d
  63. ( k% h+ ^, ?; F6 r+ j
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ; T4 l: ?" a3 z. q# w/ S% d
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);2 z! r4 i+ a, _0 s$ u
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);6 @6 d* Y4 A( \$ D- q" ^2 P" F
  67.   _) j- `: z. z- K: J
  68. dma_addr_t dmaphyssrc1 = 0;
    $ t8 L! ^) S9 G1 J/ o
  69. dma_addr_t dmaphyssrc2 = 0;$ T* C, h" b) ~
  70. dma_addr_t dmaphysdest1 = 0;
    / T9 p: v0 t. d! R  A% I6 `
  71. dma_addr_t dmaphysdest2 = 0;
    ( K# I7 f/ b$ V$ I1 ?* Y1 l2 W+ q$ A# \

  72. 1 u  ^1 O6 B3 O; U. i
  73. char *dmabufsrc1 = NULL;) n& e  N6 {$ v  X: p0 d) G
  74. char *dmabufsrc2 = NULL;
    1 ]1 d0 h2 x! T6 Q/ ~
  75. char *dmabufdest1 = NULL;4 a: H9 M) i* S, A# G  t9 V6 X
  76. char *dmabufdest2 = NULL;; {4 u1 x+ F% O( V2 g0 _
  77. 6 v3 e+ ?1 G' g  H; a* q' ~
  78. static int acnt = 512;2 x; y  b" I* Y
  79. static int bcnt = 8;
    4 u; u/ |7 C. [5 G8 j5 l
  80. static int ccnt = 8;
    + Q* q# h$ \3 c0 ]* S& n
  81. ( ]* N* w4 b, [  [) W# E
  82. module_param(acnt, int, S_IRUGO);
    : t$ T+ b7 ^4 ^* R" ]" {
  83. module_param(bcnt, int, S_IRUGO);2 x" g; x1 l4 D0 U* _- \8 i  Y; _
  84. module_param(ccnt, int, S_IRUGO);
复制代码

% ?* F  g1 l& F" I5 o
$ r# _" C9 H, {' C. l  w' n2 k      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
: U" }' ]' J+ B) O+ zarm-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 @8 a# h/ ~7 |- i& d" Q- E4 R
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。: h4 P$ @- ?% B

+ w2 [8 U4 `- U. G; N  _. z, d& E/ i  s& c4 P1 z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-11 06:26 , Processed in 0.035905 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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