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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
% [7 r& }/ b" q# S$ d& T- M% f
  1. [code]EDMA sample test application
    8 _5 ?. ]* f' r/ {$ A
  2. /*8 T! l# ^5 w% k0 W4 A
  3. * edma_test.c( m1 O+ j$ Q2 Q% r6 F  y/ ?3 i
  4. *
    5 |) i! Q% O  B* Q8 ?" _6 z8 J
  5. * brief  EDMA3 Test Application" l& S& l8 D% a
  6. *
    / ?4 p3 Q; G4 G  V/ Y; o
  7. *   This file contains EDMA3 Test code.
    & k, S4 L3 r% e: K9 c
  8. *2 r* q/ J. m2 L" X
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    " h# J# D3 w! A4 q: u! H9 I
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    ; Z( ~; c/ J" A. J5 Z7 t* m6 X4 X# O
  11. *         TO CHANGE.2 k+ f& ~5 F! N' q5 @; R
  12. *' i  x# `% C4 g3 }
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    2 A4 P! g* y3 i9 }* m+ Y
  14. *
    - ?4 o* |8 H$ o
  15. * This program is free software; you can redistribute it and/or6 G' u7 X9 Q/ {  V$ e
  16. * modify it under the terms of the GNU General Public License as
    0 ]  D/ \2 S% R. _
  17. * published by the Free Software Foundation version 2.
    4 l9 S5 G6 u8 m' t& J
  18. *
    4 U2 ?, v! s3 ~! T6 E: \& N+ e& z8 N
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any" r6 `' {! C  K8 o
  20. * kind, whether express or implied; without even the implied warranty
    * n$ m  ]/ [; y* e- _1 Y
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the- D" P4 v, u8 m6 F" _
  22. * GNU General Public License for more details.% a& V& E# N& \7 h* u
  23. */
    $ b2 h( ~- L. `- r# {
  24. $ K; T4 ?3 l3 I
  25. #include <linux/module.h>! ]1 \, v/ V4 v* [: i6 j
  26. #include <linux/init.h>9 N, F# @. I! P0 C  S
  27. #include <linux/errno.h>; l3 E7 B9 w$ z7 a, I
  28. #include <linux/types.h>
    % x( s, {: e$ c$ f6 S
  29. #include <linux/interrupt.h>
    - Z) g' K8 D2 s2 M
  30. #include <asm/io.h>
    $ I7 n% ~& |6 p* U* W& A; t8 W
  31. #include <linux/moduleparam.h>
    ' Y8 y& n5 ]9 m% O
  32. #include <linux/sysctl.h>7 u" {9 }9 R  u% `9 \
  33. #include <linux/mm.h>
    + L: x( h$ h% a' ]2 D& D$ U# j
  34. #include <linux/dma-mapping.h>1 f8 K  Y2 j! \  @/ n: z
  35. 5 W! {# ~0 C$ B% a
  36. #include <mach/memory.h>
    * R$ g( o3 c! S1 e* O
  37. #include <mach/hardware.h>
    * y1 Q* a) G. J" M. r6 K( M
  38. #include <mach/irqs.h>
    + D0 s- b8 T: |& g: o
  39. #include <asm/hardware/edma.h>$ F0 k" A- r$ G6 r( T8 t3 O

  40. ( @3 D  i4 A5 V7 w
  41. #undef EDMA3_DEBUG
    & Q* ^  E+ V% o8 R4 h9 Z5 C* k( T
  42. /*#define EDMA3_DEBUG*/0 X$ p& B# i0 d( m7 W
  43.   i1 z4 l# B: z* U) f
  44. #ifdef EDMA3_DEBUG4 T1 l* e# @- W/ N0 H! Y
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)4 z3 \, F: F" ?# y1 Q4 J. z
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__). ^/ b$ D6 u+ M& y1 q0 a0 Q
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    * j# j. f3 P- F- ?" g& h
  48. #else9 @3 F0 h" O" A* L0 [6 O
  49. #define DMA_PRINTK( x... )
    % K' e! y& j0 ?0 u) x" }. z
  50. #define DMA_FN_IN6 J% d0 H( s( j1 l* e- a% A& V3 g. @
  51. #define DMA_FN_OUT
    , s  o' v! H, q# G
  52. #endif& v. ]* `  s, y" g0 N& R
  53. " r9 D2 J5 ?! \
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)) h, w. F' ^. \" _
  55. #define STATIC_SHIFT                31 D5 t7 J0 ^. ?" `) L5 D8 x
  56. #define TCINTEN_SHIFT               201 m( q# v' P0 x0 {, w" S
  57. #define ITCINTEN_SHIFT              21
    ) X- i" x0 V+ U  b
  58. #define TCCHEN_SHIFT                225 X) _: O; n+ {1 _. y4 O
  59. #define ITCCHEN_SHIFT               237 A( E5 K9 ~5 r' i6 G8 ~/ t5 |9 |
  60. + M; E$ z0 Q, i0 q0 m' u/ j, N
  61. static volatile int irqraised1 = 0;3 r) ]  w. b3 C1 D- ]7 j
  62. static volatile int irqraised2 = 0;
    * J& _5 _" c, X) R2 H6 v  l

  63. ( b, w; w9 d* r# f9 c6 e) v
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    - q- }% E% K: _) C; ~+ ?/ l1 J( V, M
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);2 o/ `/ \, R+ H9 C: n
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);+ O/ z) o, O1 i7 s

  67. 2 A8 P8 U( a+ o" X( R
  68. dma_addr_t dmaphyssrc1 = 0;9 b6 `( Q0 ?  z9 F
  69. dma_addr_t dmaphyssrc2 = 0;
    % Y; ~$ O' X  A% J2 u5 y: L
  70. dma_addr_t dmaphysdest1 = 0;. [9 W- H" l: G6 Q' F
  71. dma_addr_t dmaphysdest2 = 0;
    . M/ \1 B, n  v8 v3 J1 C. o
  72. 1 ~( N& Y8 N8 G, [; u
  73. char *dmabufsrc1 = NULL;6 I. f5 P% m) Z
  74. char *dmabufsrc2 = NULL;
    $ n; w( H+ v+ _- I
  75. char *dmabufdest1 = NULL;- @. n0 }+ r' X+ p$ l4 p$ L' a
  76. char *dmabufdest2 = NULL;  N3 y9 U. T( L

  77. 1 @. M  I6 X' G
  78. static int acnt = 512;
    - C: t+ |  @. N0 o! U' W
  79. static int bcnt = 8;1 d" j3 y" m+ v$ I0 D: B8 a& H; J
  80. static int ccnt = 8;
    3 r9 j: d% _0 J; z
  81. % x* p  p4 [8 }0 H& t9 u
  82. module_param(acnt, int, S_IRUGO);
    : p3 L& t" R2 o" H  A7 N
  83. module_param(bcnt, int, S_IRUGO);3 V9 q% U* i1 }( u' X: a; t
  84. module_param(ccnt, int, S_IRUGO);
复制代码

8 Q0 m  Y8 }5 z% S; D7 ?& d4 y+ g8 I; q# B3 ^
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用: N0 e. a7 g8 U6 x
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
( l6 h$ A5 T4 d7 I     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。0 F0 U* ?( h) b! W

$ I* q' h' G3 J* Y
' u0 }' Z: {, i) W3 P" d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-16 00:30 , Processed in 0.040173 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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