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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
& Z7 s) A1 R# N9 G, ~6 ~3 f+ ^3 C$ W
  1. [code]EDMA sample test application
    5 B) Q/ C9 x7 W, V3 Z
  2. /*
      w7 O! T6 ~& O; _, Q5 N3 X9 @4 w" I
  3. * edma_test.c
    4 @- O$ Z9 {4 B" \7 }" d9 j
  4. *
    * @4 f' V% t3 b, S3 d2 O/ ^7 \: B
  5. * brief  EDMA3 Test Application
    % V1 |4 v" l7 p7 f7 p
  6. *: o# p8 x2 Z' v+ I; k$ z! J9 w
  7. *   This file contains EDMA3 Test code.' n" D  {1 L' i4 S
  8. *+ _( z1 g1 A3 W7 K1 ^9 a4 F% h
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
      ?. a. F# P2 }( {% ?* e
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    ' p3 _0 O1 v& G( d
  11. *         TO CHANGE.
    % [7 X! T1 I: ~% P
  12. *
    6 _0 ^6 L# P( e# d" c5 V* j7 K8 {
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/* Q+ l0 l8 z, p  k7 t
  14. *# a. M* k/ ^* j! g% O
  15. * This program is free software; you can redistribute it and/or5 Z1 Q* }% ~3 L6 q* C, {/ a/ C
  16. * modify it under the terms of the GNU General Public License as9 {  h4 ]" N+ o5 V( k0 _" K5 H% W- V
  17. * published by the Free Software Foundation version 2.: Y. d. S7 g' V2 ]
  18. *" m4 V4 S5 A9 a  @- m
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    3 z. m4 }/ [+ S; N5 s- a
  20. * kind, whether express or implied; without even the implied warranty
    6 F, \8 C0 C8 K6 I9 I
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the" X, ?) [) C0 q
  22. * GNU General Public License for more details.
    - |: p  j2 R7 b+ i
  23. */
    * h' B/ {) H' i8 F3 e0 [

  24. , J; O! Y( [0 f& }9 {! v( s
  25. #include <linux/module.h>2 H  Y- R+ w9 g0 f: n
  26. #include <linux/init.h>2 j- f1 s1 n8 j, k
  27. #include <linux/errno.h>. j3 J2 Q- b) ~/ Y' O1 W/ T# `
  28. #include <linux/types.h>
    + {/ z( t+ [' z! ^
  29. #include <linux/interrupt.h>* V5 p. o! U1 z5 E0 \( J, G7 U% j3 K
  30. #include <asm/io.h>. o& b: }; I1 A/ ^4 }
  31. #include <linux/moduleparam.h>; x' ]+ X- o7 ]8 w& T7 v/ t; a, A4 E& E
  32. #include <linux/sysctl.h>% J3 C3 K0 X( ?% ]# u
  33. #include <linux/mm.h>
    9 \5 E+ ?( D; o4 P& P" ]* w1 _5 T
  34. #include <linux/dma-mapping.h>
    6 w" f9 O% `' K- x8 ^
  35. : [! S2 m$ \1 o2 t2 v* M  ]! W
  36. #include <mach/memory.h>8 c; f$ f/ q+ ^: P, \
  37. #include <mach/hardware.h>- I# C: ~: F  E
  38. #include <mach/irqs.h>7 a! h5 i& s" L! d3 F
  39. #include <asm/hardware/edma.h>
    $ v- {2 v2 r* m( l0 h0 X/ w" [

  40. ' b9 _" \4 o( O+ T, h, H
  41. #undef EDMA3_DEBUG
    3 u5 y# \" |% _! R. B
  42. /*#define EDMA3_DEBUG*/
    + k3 M; R2 c2 S+ M0 Y8 z7 n

  43. ( o% H; d  m, S  Z' F
  44. #ifdef EDMA3_DEBUG1 u3 H+ [6 I' m' i- F
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    ) S: W+ f& n: f7 U% T2 \. B
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    , n+ v, v, U- X
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    4 g/ q# B9 P, a  s! C, p" X
  48. #else& u" M* S( I- \) U4 D* B8 x
  49. #define DMA_PRINTK( x... )2 j9 C' E9 P, b' ~% `
  50. #define DMA_FN_IN
    9 \- K% W" l" r0 t, j
  51. #define DMA_FN_OUT
    . ~, s: a0 S) v. p8 G* f* t4 R
  52. #endif
    " w8 U) h: y- w( D! Y: G

  53. 7 @3 h. P; E+ o  r& x# F
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)$ A4 V; e1 v8 B+ S1 j" H- x# A/ ?; ]
  55. #define STATIC_SHIFT                3  [) ]" X$ i( u% }$ D4 B
  56. #define TCINTEN_SHIFT               207 Q8 l" Z, ^+ N; Y4 l* i- p1 L
  57. #define ITCINTEN_SHIFT              216 |0 S$ ^9 |6 w* C; t; C
  58. #define TCCHEN_SHIFT                22
    % y% A* E) u3 W% q, T( X, a
  59. #define ITCCHEN_SHIFT               234 k7 M& q7 D3 W( I+ H& y
  60. - [! u8 U$ }& J' @' a: k$ e
  61. static volatile int irqraised1 = 0;% V( v$ G/ E8 k$ \1 n+ d4 L
  62. static volatile int irqraised2 = 0;' |" K  a( F4 j8 ~2 N( \
  63. 5 x. O# ?8 h. G+ n6 B8 D; F/ x
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    # P9 m* G8 F$ d& F$ G
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    9 M9 j$ x; F* _
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
      o- r6 q4 L: ~1 ?2 @( Y- }
  67. 1 F: w9 q: N. W$ ~' ^- B4 x
  68. dma_addr_t dmaphyssrc1 = 0;
    ' o. d$ F# S+ y" i; F5 X+ n  `
  69. dma_addr_t dmaphyssrc2 = 0;: W" z: I7 b- p' c
  70. dma_addr_t dmaphysdest1 = 0;
    , _$ c& M4 {  R2 \
  71. dma_addr_t dmaphysdest2 = 0;8 ^4 [( o& j) g  L, J# S) l

  72. " X4 S4 m+ Y1 v8 Z" [5 R
  73. char *dmabufsrc1 = NULL;% c& @' a  `& Y# a7 T
  74. char *dmabufsrc2 = NULL;$ x4 L8 G$ J) n  [
  75. char *dmabufdest1 = NULL;
    1 m: b0 m4 h4 L0 H. Y5 h1 {" M* U
  76. char *dmabufdest2 = NULL;$ o' h5 Z6 R) }
  77. 7 A9 O1 ]+ w7 N% K& U/ E6 a- R
  78. static int acnt = 512;
    9 B8 L* N7 X/ n- M8 G0 }
  79. static int bcnt = 8;
    $ h) [6 {+ W7 e, b, h
  80. static int ccnt = 8;+ W4 q& ]5 k; e8 A) H: D4 Z& p
  81. % d- g# c) k" F( E. s2 F9 q* @; z
  82. module_param(acnt, int, S_IRUGO);
    0 ?( e' ]( K. e- _, X0 O
  83. module_param(bcnt, int, S_IRUGO);
    3 U  c# M$ _) \" C$ R1 f# K. _+ M
  84. module_param(ccnt, int, S_IRUGO);
复制代码

1 q; O" q" i4 C3 L1 l+ b/ s% C2 v; q* Z, H
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
0 N' k6 S' R: i6 s- G# s& Warm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。; O8 X' t% I, R5 m0 V1 \. m! \
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
, e/ Z9 C# R9 S$ C: p: G  |/ u+ u6 a

0 J; [) l) S$ f$ C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-6 12:59 , Processed in 0.040226 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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