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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 6 v* z  |0 E6 o7 Q
  1. [code]EDMA sample test application0 [6 }7 `0 H9 Q. Q& \$ L9 f3 g) U5 V
  2. /*. j8 t, j' C' F& i# }0 F
  3. * edma_test.c
    % [1 }2 k1 f# E- p3 y  @
  4. *' ~  r# I: J0 u% @
  5. * brief  EDMA3 Test Application( p, Q& k  J9 D9 F
  6. *1 g' [$ T. S* N
  7. *   This file contains EDMA3 Test code.
    - U/ f: M6 I+ F! s) X
  8. *
    $ J. Y/ ~7 u4 [1 n  N% }$ ~1 K
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE# p& K* A3 ?. Y: a' h* \
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    ! F' L" D* q- A
  11. *         TO CHANGE.
    % o! S2 J' w  ~
  12. *
    ' r/ H  U4 D' s
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/0 C' |' g) x* S4 J4 d3 {: m
  14. ** M: L# g9 {1 Y3 `* b5 Q- R
  15. * This program is free software; you can redistribute it and/or1 |/ U( Q  y# a! k& @+ P, d* p3 L; k
  16. * modify it under the terms of the GNU General Public License as  w- Z0 x. S: n& B
  17. * published by the Free Software Foundation version 2.. B, K* _6 U) V0 v/ R: K
  18. *
    + x% d7 ?9 ], S" `. ~+ [/ N. y4 F0 t. h
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any9 x$ @' R3 o6 S, e( w0 M
  20. * kind, whether express or implied; without even the implied warranty& A6 w, O2 P: H6 i& u
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    * `  i0 \( b2 @' m
  22. * GNU General Public License for more details.
    0 A2 u( G+ ~+ w- Y0 \3 f' J
  23. */, T6 b6 z4 H- q6 h* o+ A0 m) j: V

  24. 0 m' I! n- T0 y/ X
  25. #include <linux/module.h>, f4 F% a: L2 d/ H3 M& g2 M; Q
  26. #include <linux/init.h>9 J9 M3 T7 r! v3 w6 ?6 h
  27. #include <linux/errno.h>& r  E3 i3 V1 H% X/ {
  28. #include <linux/types.h>
    6 }7 v& f5 J7 P
  29. #include <linux/interrupt.h>  G1 @8 z- O! L2 T# @* A+ ~
  30. #include <asm/io.h>5 K% T" }* U8 T; R. h6 j. Z3 T2 H3 J
  31. #include <linux/moduleparam.h>+ a4 B/ F. {5 [: L7 s7 N4 u  K1 m
  32. #include <linux/sysctl.h>" Y; d3 A9 W, C7 s  _& `' ^
  33. #include <linux/mm.h>+ n' x5 H' v5 p% [
  34. #include <linux/dma-mapping.h>7 v! p8 T6 L' Q9 k+ S* t5 v8 Y- c
  35. 1 M# E- p* `/ ]. o/ w" _
  36. #include <mach/memory.h>) K4 r* B0 b8 l# n8 T( ~% m$ R% t
  37. #include <mach/hardware.h>
    7 N! V  M1 E' {" V& f
  38. #include <mach/irqs.h>
    8 H1 _- g% M. O% i& [5 f: n
  39. #include <asm/hardware/edma.h>9 L! B. r  [" r. a$ n

  40. 7 m2 V) l& v$ E) r" v* e+ z
  41. #undef EDMA3_DEBUG
    / i) Y0 ^  a. V, f
  42. /*#define EDMA3_DEBUG*/
    + d. y% \  o: L3 f& b0 l+ V5 X$ \' J

  43. 9 z+ k5 x* C  z
  44. #ifdef EDMA3_DEBUG9 w+ [( H  X" a+ s+ W
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)+ C( o5 Y+ C/ v
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__): e6 A. {+ b$ o
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)! l# Y4 h1 `. o! I8 _7 y7 j5 G
  48. #else
    ; B1 ]2 z* R: z; ?" p& r; ?
  49. #define DMA_PRINTK( x... )9 N6 U/ x% P5 @, n7 d" [* {; j
  50. #define DMA_FN_IN
    6 ]: _* R& Q# X2 e* T' \
  51. #define DMA_FN_OUT
    ' j5 b+ h7 }  W2 O2 A! ~
  52. #endif
      q6 m; u  H0 O5 V) i2 n

  53.   a2 r& `! C- V% j* C5 M7 r4 R; I% s
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)6 X+ k& ?, R( U& f
  55. #define STATIC_SHIFT                3
    + m6 D1 x; K! |, S
  56. #define TCINTEN_SHIFT               20
      w7 p, l( S- x% p; p
  57. #define ITCINTEN_SHIFT              21
      Z; i& F; @' p' |9 ^* [- q0 {
  58. #define TCCHEN_SHIFT                22
    $ K8 }7 Q; }% R  @% S; t" V
  59. #define ITCCHEN_SHIFT               237 l! {# w# A* D8 p" ]: S1 j

  60. 1 ?* h" Y1 Y$ W% V, P1 {% e+ F
  61. static volatile int irqraised1 = 0;
    2 D+ `( y! L9 M. k7 R# B& m9 O
  62. static volatile int irqraised2 = 0;% i" R3 q! O3 D1 C# G( a% A! O
  63. 1 x+ R' r- b* x( W
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);7 G* i( X9 `$ Y5 ^9 {8 V
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);. j3 V- y. R$ x/ k4 H$ O
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    % u. V! C, N  ^* q4 T# o

  67. 3 d& A3 r7 \- a0 X
  68. dma_addr_t dmaphyssrc1 = 0;. O* M2 }6 j; ]0 Z5 i7 i
  69. dma_addr_t dmaphyssrc2 = 0;9 e8 I/ |: f0 Q  Z/ Q8 s
  70. dma_addr_t dmaphysdest1 = 0;2 W5 a$ G  l6 [# o# h( a
  71. dma_addr_t dmaphysdest2 = 0;) C8 n( I8 w) P7 ?) D
  72. " u& l- O. o$ p
  73. char *dmabufsrc1 = NULL;) w+ |8 A' ?9 m8 Z
  74. char *dmabufsrc2 = NULL;
    & X$ ]# _) E& d4 P. x. f- Y
  75. char *dmabufdest1 = NULL;' v; |+ g# w9 r2 N1 f* ~
  76. char *dmabufdest2 = NULL;
    / F' T7 f5 T3 Z/ r

  77. $ x6 z# i' n+ _* g5 `  V
  78. static int acnt = 512;
    ) I: H6 w6 [9 k) {1 R' e& D
  79. static int bcnt = 8;+ \* r* ]& [: ?% c5 R$ f; `1 ?1 C
  80. static int ccnt = 8;! `+ Y+ ~% E3 b* H
  81. . y, K# u; F* b, [5 A; ^% _5 M3 H
  82. module_param(acnt, int, S_IRUGO);- i, T! @' F9 _- n# Z
  83. module_param(bcnt, int, S_IRUGO);6 Z" Z& u% Q) c* L
  84. module_param(ccnt, int, S_IRUGO);
复制代码

# W, M* y$ t; {6 U! l: \7 {6 z
' r$ i; E7 P4 h" k7 J      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用* t2 V; z2 r/ }& w4 u( ?" 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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
' l9 T) E- }3 k: Y& w" @; I* D     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
0 M  x7 j3 T$ W& _; i! ^5 a
) O8 a8 U/ }+ z6 c$ i9 [* n1 N
& G# U; p( V: `% G2 J$ w: G% h2 J/ b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-16 19:29 , Processed in 0.039173 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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