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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
5 M8 Q8 c$ v/ n  P' {+ r
  1. [code]EDMA sample test application
    , a& N: ], ^; m( i5 Z
  2. /*
    * @$ H5 c( @" ~# I/ c# o2 i: ~
  3. * edma_test.c
    ' u. |1 C' u* ~8 ?' ^
  4. *
    3 ^+ m' l4 }1 A: W
  5. * brief  EDMA3 Test Application
    ) V, ~% f1 M- U- D1 C
  6. *3 p, t$ w' K% x9 R& n1 K) p6 O
  7. *   This file contains EDMA3 Test code.. y" x0 K) z* k. p9 H4 y
  8. *
    : |7 A# n  F, Q$ @4 l4 J
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE9 l. }, R5 ?8 }, Q; U# b
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT  @/ i4 s3 a* ?) W
  11. *         TO CHANGE.
      s5 s. D9 k+ j0 z  @+ N( T- k
  12. *
    " F  J. f% ^" ?% K) ~6 X  X
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/0 ?) R5 x! c: ?3 t% K
  14. *
    1 Y. M8 ^$ V: V4 o# E( X9 H! l
  15. * This program is free software; you can redistribute it and/or
    2 e4 X* }* o% x! z
  16. * modify it under the terms of the GNU General Public License as4 `  n! P- N$ d7 c5 _- ?6 ^
  17. * published by the Free Software Foundation version 2.
    # j8 f3 I. Y$ W. h
  18. *
    : Y; k8 h! u& D" H; u
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any! K! \, O6 `; S: s! U
  20. * kind, whether express or implied; without even the implied warranty
    . }5 D" b* U5 l$ c' O
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    ; @* E: x3 p  p7 y- L
  22. * GNU General Public License for more details.. M; J- J* I+ W, e
  23. */
    ) M. K- z$ W* s/ M5 x' }9 R

  24. " T' M% b4 y/ X3 L# ^0 v1 D3 t5 t$ t: V
  25. #include <linux/module.h>
    9 @. |6 x  g" i* ?% @  T
  26. #include <linux/init.h>
    7 ]: k% P4 m2 ^2 i$ m) O. d* e. R
  27. #include <linux/errno.h># B* l$ {; ^: ^5 x
  28. #include <linux/types.h>4 ]3 j) L2 F- @: T; }
  29. #include <linux/interrupt.h>
    2 a8 s2 [6 ?4 o4 j; s$ ~! s
  30. #include <asm/io.h>
    * J. c( p. ~9 r# s- m+ \
  31. #include <linux/moduleparam.h>. R; [0 C) W, k5 @( o9 U/ R- J/ x
  32. #include <linux/sysctl.h>
    - _7 V: o/ I1 h- |0 ~, }& q
  33. #include <linux/mm.h>
    0 ^) y3 ?6 P. ?; K2 t
  34. #include <linux/dma-mapping.h>' z8 r0 M  E8 p1 U& I
  35. " I& X8 y4 Q# w. h9 n
  36. #include <mach/memory.h>
    . G; f' A& e) @/ R+ y* b) J+ t
  37. #include <mach/hardware.h>
    $ d7 F' z4 a, i. a6 q' j' J! S
  38. #include <mach/irqs.h>
      k6 ^! v6 S6 M- y% s
  39. #include <asm/hardware/edma.h>+ T  Q1 e% L7 U

  40. % {" y  N( K+ R1 m" R# S5 }" m3 Q
  41. #undef EDMA3_DEBUG/ o3 T6 D) j" _0 p, c0 }4 M
  42. /*#define EDMA3_DEBUG*/
    4 j, S( K& K3 ^

  43. 5 ]5 |& T" Y- d; G% `8 g1 n
  44. #ifdef EDMA3_DEBUG
    2 Y8 S3 @2 ^* n6 a5 Z8 a8 S
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    1 h$ l$ G  |, X  F* [2 \& u
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    : B- [6 X) R6 B+ t* t9 L9 C" w
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)7 _! @) L" g" p
  48. #else
    8 V! v% x4 b$ |/ [* Z
  49. #define DMA_PRINTK( x... )
    : F, F* k- E& \) X3 |
  50. #define DMA_FN_IN
    - T: m  J8 h: Q0 o
  51. #define DMA_FN_OUT
    ; H  O% j* N1 Z: L
  52. #endif
    , U) _: ^/ n* M3 x& [9 u  x

  53. ! t) O# {" @8 _( h0 |
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    ! m6 A" q. S! ], D
  55. #define STATIC_SHIFT                3
    4 H. ~5 Z# ]9 M2 @
  56. #define TCINTEN_SHIFT               20
    7 ^1 u# Q7 o: |
  57. #define ITCINTEN_SHIFT              218 M  |/ x) o: @" j+ i4 m4 w
  58. #define TCCHEN_SHIFT                22. m# r% a0 O. O+ x, v: b5 S/ m* {
  59. #define ITCCHEN_SHIFT               23
    6 H9 `7 ^3 e* r

  60. 5 m# d) r3 s: s' {
  61. static volatile int irqraised1 = 0;" _: Q7 @  ]1 p: q4 g2 g8 g" r: e  _+ `
  62. static volatile int irqraised2 = 0;9 b" q( b- n: A9 V7 W
  63. 3 v! x( t. H9 y/ |! Y9 ]
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);2 b. W/ g( Y' ]
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);# G- ^0 M" Y( x/ M5 N, o
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    0 A& b$ W* K7 K" C  i$ X" |

  67. ; k% K7 P( N- d8 k0 o
  68. dma_addr_t dmaphyssrc1 = 0;- a8 _6 D* N$ ?/ w" U( q; M( X
  69. dma_addr_t dmaphyssrc2 = 0;
    ! R9 K) j$ y! D* U  t9 G
  70. dma_addr_t dmaphysdest1 = 0;
    ! u. B; _/ ^0 e8 q+ v: t) j
  71. dma_addr_t dmaphysdest2 = 0;6 P! R3 v; h; n

  72. 0 W2 A, P( h. |( t6 W9 W3 }
  73. char *dmabufsrc1 = NULL;
    * d# T0 B6 `8 s& X, J+ \( B. `
  74. char *dmabufsrc2 = NULL;
    7 b/ _9 A' f. t
  75. char *dmabufdest1 = NULL;
    , G' b7 A  y( s* ~2 N8 O2 g, @3 G
  76. char *dmabufdest2 = NULL;
    8 C6 j0 F7 m: B) v+ a. s
  77. - F4 z  B3 R4 X% T! B3 p; U7 h
  78. static int acnt = 512;/ B" |+ ~6 \& {2 d
  79. static int bcnt = 8;
    , {. r. ]7 {+ W: K$ b+ f7 H
  80. static int ccnt = 8;0 U6 }. N0 _" [5 D
  81. / X3 v- A- t/ Z; O2 D
  82. module_param(acnt, int, S_IRUGO);
    9 q% i* I0 {9 [  n( r& M
  83. module_param(bcnt, int, S_IRUGO);
      \1 H1 g. V- {2 T2 ]4 S
  84. module_param(ccnt, int, S_IRUGO);
复制代码

% O- W. s: Y& W; s( Y' U
% M; ?2 s! {$ d  |0 P$ W; C+ k      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用  d7 \9 ?2 O( ?: r9 z3 @8 A
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。9 @+ |3 {9 u# ~4 M1 I; f# X; e. N7 Q
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。3 i0 B! S  A9 y/ I

/ n0 u, r" B  ^4 S
* ~1 L& D9 l) x! r6 b1 ~; c1 A' R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-2 17:45 , Processed in 0.040519 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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