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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
  n8 f! e8 k; ?
  1. [code]EDMA sample test application
    . e4 T, d) |+ X3 D' e1 [) D
  2. /*$ [9 h( ^! }$ H8 R! K% n
  3. * edma_test.c
    2 E$ z5 @* `" c3 P( _/ G
  4. *
    : _5 b2 e( ~6 h
  5. * brief  EDMA3 Test Application
    # b' m/ i$ e8 C0 K) v( ?; j
  6. *
    $ U/ C, |/ x1 Y6 W
  7. *   This file contains EDMA3 Test code.
    5 E7 Q: Q( m1 y6 B' H) D
  8. *
    2 V7 p/ [" J/ i/ _: E
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE" v  y, x3 a1 c- j$ ^3 A
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    ' {& C! U5 N8 |( t  {" j
  11. *         TO CHANGE.) l) B8 u# C( p
  12. *9 R% z9 [) k2 g& |  f/ G
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    ; F. L% X/ p4 R7 j% t1 g( c
  14. *
    3 j0 [8 O  x( B9 m' x4 B+ N
  15. * This program is free software; you can redistribute it and/or
    , e/ J$ D% L& z6 V$ t; L: K: b
  16. * modify it under the terms of the GNU General Public License as
    0 ^! o" u4 D& g6 A) [
  17. * published by the Free Software Foundation version 2.
    6 \7 G1 W. F; b
  18. *& G' ^' y1 n0 y: H
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any5 m1 }- R$ z$ t) G, H
  20. * kind, whether express or implied; without even the implied warranty
    % B9 |+ U& T5 z; A8 {& `' B
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    ' e/ ]: |! N# n/ K$ Q1 Q
  22. * GNU General Public License for more details.% D3 S! R& `/ e
  23. */3 g: L/ M+ a$ y5 l

  24. + V0 `0 a6 @  _1 ~% Z
  25. #include <linux/module.h>
    # P& R- R8 J  i. B
  26. #include <linux/init.h>- C& D  h! X. y$ w( i) C" R2 e; h3 {
  27. #include <linux/errno.h>
    * a. P4 V/ s: D# y4 ]' P
  28. #include <linux/types.h>. ?' J) Y- u: a6 s1 L
  29. #include <linux/interrupt.h>6 p7 ^5 W9 ]! s+ e  V5 d
  30. #include <asm/io.h>( j, ^3 J" L, W& o4 {1 `) T
  31. #include <linux/moduleparam.h>
    0 ]2 P2 v9 W* ~+ I  W
  32. #include <linux/sysctl.h>! r4 b9 A5 B" ?$ e% |0 K. `$ Z- x/ q
  33. #include <linux/mm.h>" t" g+ R+ i; P3 H/ G9 ?1 T
  34. #include <linux/dma-mapping.h>
    . Q( H  J: T0 c! M/ E) }

  35. 3 f$ Z6 l" O5 P& O
  36. #include <mach/memory.h>
    % j) I$ h  J5 s, F2 `: K& p& C0 h
  37. #include <mach/hardware.h>& p& _/ T8 J2 O" U6 W
  38. #include <mach/irqs.h>
    2 v  ^6 D+ O; B' x! d  T. |% i
  39. #include <asm/hardware/edma.h>
    0 z* S) \6 L) l: t) ^7 _
  40. 0 ^; |) t; Z% C* X- c% C! s
  41. #undef EDMA3_DEBUG
    ( G4 h) ~3 z1 [% @) h1 m+ O# I
  42. /*#define EDMA3_DEBUG*/, W) h3 U' G/ I4 Q2 c
  43. ( N. _0 C! y6 T6 @$ o
  44. #ifdef EDMA3_DEBUG
    # S9 o7 L$ V# C6 x
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    : v' L) S+ L: B
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    . Q# S# k. B( H3 o+ {) ]
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    ) l$ W# q) Z6 o; M1 J( D
  48. #else
    # y4 q4 J. k+ y
  49. #define DMA_PRINTK( x... )
    : c9 v5 I. F1 D9 N
  50. #define DMA_FN_IN
    ) Y8 }. h2 w" f, C) H
  51. #define DMA_FN_OUT% ?2 J% Q# n9 ?5 _8 L" K8 P1 Y8 h
  52. #endif5 K+ ?7 [: y+ V3 e" V0 }" P) k" R

  53. 1 ], G0 o! _# X  d
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    3 F9 Q9 `/ |+ {' t2 M* L% q
  55. #define STATIC_SHIFT                3
      ?" o  {# l' ^2 D) _$ d
  56. #define TCINTEN_SHIFT               20" j2 x0 s; G! k9 l" l2 Y
  57. #define ITCINTEN_SHIFT              21
      E, x" g, D" j5 M! c
  58. #define TCCHEN_SHIFT                22+ j1 j* e. A0 S' ?1 ], h6 J0 _
  59. #define ITCCHEN_SHIFT               23
    + F' ]$ h: @) ^; V9 S. \5 L

  60. 2 a' ?# \9 L% g  c3 {' N
  61. static volatile int irqraised1 = 0;
    0 d/ M; \4 b* ^7 z, @( s
  62. static volatile int irqraised2 = 0;4 w" B, [" q# x  w1 T, t
  63. + ^9 N5 l' E+ M6 X3 k4 T
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);" q3 C8 c' i2 s! P
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    / y/ _6 q. u0 t0 A( C
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);* t# ^0 W2 d5 u5 Y; q
  67. ( @3 L3 W; Z* O. _, p' s, V
  68. dma_addr_t dmaphyssrc1 = 0;
    3 G$ D3 c: ~1 j( N; `
  69. dma_addr_t dmaphyssrc2 = 0;. R7 T+ I- F2 V' A
  70. dma_addr_t dmaphysdest1 = 0;3 O0 ~# L) h$ J) c5 A- D4 i8 v
  71. dma_addr_t dmaphysdest2 = 0;
    3 D8 I4 Q7 j: G9 w) B4 D3 p

  72. 2 ~" v. B" m" ~$ e1 n
  73. char *dmabufsrc1 = NULL;) o$ e" W0 z6 v& \. }7 Q
  74. char *dmabufsrc2 = NULL;% A$ u$ `# X+ ?' R
  75. char *dmabufdest1 = NULL;: h( k+ {7 e+ ^1 o) J" m- |3 E
  76. char *dmabufdest2 = NULL;
    , O( T' Y* E4 q* d* ]
  77. 0 X2 [" w" i2 N) ?0 r2 [- T, P0 n
  78. static int acnt = 512;
    + f* p6 |8 W4 f
  79. static int bcnt = 8;9 @; F% t! r; u. f# u7 J5 N  e) I
  80. static int ccnt = 8;2 ]3 P8 m+ R0 B4 q) Q  P1 P

  81. $ u9 y8 z0 ?; q" g% O& K" L
  82. module_param(acnt, int, S_IRUGO);
    9 \" P9 ?% [& [
  83. module_param(bcnt, int, S_IRUGO);
    ) q5 h4 F0 M7 |0 \3 ]4 `1 j+ }2 ]
  84. module_param(ccnt, int, S_IRUGO);
复制代码

0 o- g" m$ T% G& v- n. G
* D  f- K' D( |5 t7 [" K      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
- Y+ X" ^( V  N- u. r* u; ?arm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。0 ^' N7 O4 W) T' G. i
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
; b; ^5 ~( P4 m/ U3 _& b
: f3 H' x2 L% O+ ~
) P) f; _' ^0 d) c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-7 01:58 , Processed in 0.042006 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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