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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
0 a# j" g. B% |6 R) U2 l
  1. [code]EDMA sample test application. s8 T, s2 }; z4 V- V, y0 S
  2. /*) G# A1 r( M9 c# H( r. S
  3. * edma_test.c/ t$ O. T9 @6 e; C: m- i
  4. *
    ( S: s& \" S  C4 }0 e% Q# [# ]0 E
  5. * brief  EDMA3 Test Application2 ^: H/ L0 b/ `. I
  6. *
    0 i. F5 N6 z5 I3 k+ T
  7. *   This file contains EDMA3 Test code.
    2 ]  r* S( n# A2 K
  8. *" @) R% P- |& p5 v$ f7 T8 n
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE8 R, S: |2 x( ^3 T% x$ E
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    ) L5 l+ R7 v1 k8 m2 e* ~
  11. *         TO CHANGE.
    0 a" P* @2 S& _+ a6 T2 L; W
  12. *, K  U1 h. ^! ^0 c  p
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/- |  X+ w7 ]$ C; w! ~! H8 v6 r
  14. *6 _4 M0 p% W/ D
  15. * This program is free software; you can redistribute it and/or! _8 {) F3 D; j0 \1 t% x
  16. * modify it under the terms of the GNU General Public License as9 f8 K* X7 Y2 ~  ]
  17. * published by the Free Software Foundation version 2.
    . e$ h0 z1 z$ p5 N
  18. *
    & g3 K8 `  Q$ _
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any6 K' {( S8 K5 F3 i
  20. * kind, whether express or implied; without even the implied warranty
    ' K9 E) B: L+ S2 i( w( e
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the. K/ c- s0 Q/ O% i; C- h* ~& q, m
  22. * GNU General Public License for more details.
    , k. J  ?  p4 R" O" \4 T
  23. */3 M7 l% m1 C$ B; ~8 m" V
  24. : @& T1 I; D1 T! _4 Q+ z# n
  25. #include <linux/module.h>
    ! r$ G  d. C( z$ V
  26. #include <linux/init.h>0 X! s! D9 @) @- x
  27. #include <linux/errno.h>" H% y1 E6 Z: G* Y
  28. #include <linux/types.h>
    1 T" F* V" I% O- h
  29. #include <linux/interrupt.h>
    : n( g  k$ U! c5 u
  30. #include <asm/io.h>' e% l6 z: K- s+ W1 k
  31. #include <linux/moduleparam.h>
    ; t  }' n" Z% q( N, \$ k! H9 o
  32. #include <linux/sysctl.h>/ |* [. H8 M9 O: ~; {' i4 U
  33. #include <linux/mm.h>+ i, p9 q1 X$ ?5 r9 I8 h0 K+ A& }4 i
  34. #include <linux/dma-mapping.h>, `! B8 `7 Q% \  Y* u

  35.   o6 T: s. m9 @; p) ~! ~# J
  36. #include <mach/memory.h>1 M2 N) U2 C; Z$ S. G+ I2 o
  37. #include <mach/hardware.h>7 T# q- P5 f/ K
  38. #include <mach/irqs.h>9 v5 v  j! B$ J4 @4 V6 V
  39. #include <asm/hardware/edma.h>! W* U! S  ^& k' |7 V. N' G

  40. % V: P. ]. r" U5 ^" d6 }9 Q- R
  41. #undef EDMA3_DEBUG( W7 S. k  {1 p" m
  42. /*#define EDMA3_DEBUG*/; @7 O% ]# T6 ]# q' }: K. ?: C% h/ D

  43. ; X* ^# u; N* d0 `: F
  44. #ifdef EDMA3_DEBUG
    % s" |0 x; o& Q
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    3 _7 X9 p) Z) C+ L0 _) e4 e# O  L
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)& ?" U5 }# p2 [; y1 ^, K, o
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    # O2 o  @- ]% h  W- [
  48. #else
    0 N3 k- N. j. R
  49. #define DMA_PRINTK( x... )
    , T* @. ?, T, d6 s" N/ A
  50. #define DMA_FN_IN
    . E/ W4 y* W0 L0 q0 e
  51. #define DMA_FN_OUT
    3 i% `3 Z7 @% a3 z
  52. #endif5 o/ a4 E( b# S  o/ `+ g  R

  53. / e- K9 t5 @$ r+ @0 T- W
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    0 E* e8 g* g% v, D7 f
  55. #define STATIC_SHIFT                3
    8 @5 B: k7 |. H: G7 Y" {8 ], ^
  56. #define TCINTEN_SHIFT               20: \0 l* @& M* r5 Z2 h: e
  57. #define ITCINTEN_SHIFT              21
    6 Y! h; a- E/ `& X  f5 V
  58. #define TCCHEN_SHIFT                22
    , X3 e9 |( }* O+ v3 ~- r
  59. #define ITCCHEN_SHIFT               23
    9 T0 k0 R1 a8 V, b; N0 T* T. T

  60. ) z5 p$ q. R- U9 v. }' h" E
  61. static volatile int irqraised1 = 0;
    3 b" O7 A; q5 |1 y
  62. static volatile int irqraised2 = 0;& v0 e! {, Y8 |5 y2 G0 D8 w
  63. 8 }) @1 c6 p( L( _$ Z( {
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);* M1 ?% C$ P( I- a  v
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    % H7 I* J' ^7 |8 r: J, n
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);$ ]4 Y( [  Q( E* h  d
  67. & O& s! }1 G& h% v+ ]
  68. dma_addr_t dmaphyssrc1 = 0;3 h$ d& n$ R2 g7 T, ^$ y! g
  69. dma_addr_t dmaphyssrc2 = 0;
    : Z# _7 b9 T+ t. G# x
  70. dma_addr_t dmaphysdest1 = 0;
    ( x- L  X" B, M5 P( [! w
  71. dma_addr_t dmaphysdest2 = 0;
    * L' z3 l) _/ ^& c

  72. # \$ D: n4 G+ b
  73. char *dmabufsrc1 = NULL;/ N# z  e4 |1 D2 h% r8 h. F7 Z
  74. char *dmabufsrc2 = NULL;  c% C( Q/ T7 E  V2 |
  75. char *dmabufdest1 = NULL;
    6 S5 V# C3 F5 I7 }. X; ^! v8 [# G+ i
  76. char *dmabufdest2 = NULL;
    $ i! |7 u" R8 j! i9 F5 M! z

  77. 8 Q% @. t( I7 o: F* A# Y
  78. static int acnt = 512;
    7 A$ F, Q0 L& k5 ?% r5 X9 R9 V
  79. static int bcnt = 8;2 U( A3 q  \0 Z* Z( O9 V3 X9 Y
  80. static int ccnt = 8;9 P2 a' d$ m+ k
  81. 7 h- d2 Q: J# W0 P1 i( M
  82. module_param(acnt, int, S_IRUGO);
    4 w- _; [. n. s: S& N. b5 [! \) M
  83. module_param(bcnt, int, S_IRUGO);  V. u% o4 }$ m- Q( P- ?2 Y$ h* G
  84. module_param(ccnt, int, S_IRUGO);
复制代码
) y( y2 S. j. m" E( U  u* }+ f7 J7 v

, m/ ?% k$ w9 a% Y( x3 K2 y      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
: R6 n# t  h6 C' D, t% Y/ P* Sarm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
% x9 h( t, C; j2 |' N& ]2 {     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。! Q( L: p1 C! m- t# t( V4 _: f

' T& e5 M% b2 c6 {3 W3 V5 M/ E
: E# k, _" i" R( |- u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-18 09:45 , Processed in 0.039723 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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