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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
4 _0 p' @* D3 L0 J8 S; T1 k- @
  1. [code]EDMA sample test application: B/ x6 R1 W) U7 _
  2. /*
    1 v9 r* |* q9 H0 z' v. T
  3. * edma_test.c
    $ Y& l5 s  ], z9 ~, G
  4. *
    6 ?+ K/ q/ P/ i% T" y& U* F
  5. * brief  EDMA3 Test Application* m, J( o% M" D9 I$ H
  6. *; A% ^) B, j$ a9 _/ v/ L2 R0 F1 @
  7. *   This file contains EDMA3 Test code.0 T- ^8 @% m3 T
  8. *
    + Q5 T2 Z0 l, K$ }
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE, N' J* C9 h/ ~0 n. K. b8 z/ w# P7 G
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    " M: ?* X! ~7 y
  11. *         TO CHANGE.
    ) K6 n0 \6 `! g/ s+ e! J8 A7 ~& j
  12. *
    5 N6 L! j6 u, I/ A; @5 g6 ]7 W& D
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    ( E) P* h) w  }+ L" p
  14. *
    & d3 b+ w: t- Z7 ~& b
  15. * This program is free software; you can redistribute it and/or0 z/ K& y( ^% C) h. }; v% \( _/ j
  16. * modify it under the terms of the GNU General Public License as/ j1 N3 `* N0 \
  17. * published by the Free Software Foundation version 2.
    0 x' N6 J! P% i4 N1 T
  18. *, V: {" n7 }. @2 Z2 T" E
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    ' O8 v$ O" ~& k* k9 o5 E
  20. * kind, whether express or implied; without even the implied warranty: e0 w- ?: Y% ^0 h
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the* p8 [- s1 ~. k  i
  22. * GNU General Public License for more details.
    + I8 `8 w) [) c0 u8 A: m& y/ w6 c
  23. */
    & Y8 n% B5 C  h% i& u% z. y1 A

  24. ' Z" ?5 r: O0 X  g. M
  25. #include <linux/module.h>
    : u( [/ z1 f/ a  M/ Y* Y, m, J$ Z
  26. #include <linux/init.h>
    % L9 J" |- t7 [4 b. H
  27. #include <linux/errno.h>! z" P$ ?, f6 r  I, f* |" ]
  28. #include <linux/types.h># d  ]$ s, [+ ^( S
  29. #include <linux/interrupt.h>; S! E+ I4 y4 D5 n3 p( H; T1 g; Q3 s/ Z
  30. #include <asm/io.h>. z" \- v5 `+ e: x  f
  31. #include <linux/moduleparam.h>! C  \* a& _; W( h1 G; [, ^
  32. #include <linux/sysctl.h>) N- e& h1 u$ E( G* m
  33. #include <linux/mm.h>
    7 A, D! i* Z+ u7 U/ A. n
  34. #include <linux/dma-mapping.h>
    7 }( G: X1 j+ `
  35. : c. f9 h: J& B+ ^/ R6 @
  36. #include <mach/memory.h>
    1 C/ A. m/ c$ E( J. k8 J; p  T  f
  37. #include <mach/hardware.h>
    2 X$ E. Q5 x9 E$ X5 w$ C
  38. #include <mach/irqs.h>2 L/ ~) C; ^, D2 A, b
  39. #include <asm/hardware/edma.h>7 [/ u( D7 \3 p9 J0 @3 u
  40. 6 r2 M' I6 _# t1 a( ^. d- Y
  41. #undef EDMA3_DEBUG/ Y; n# }! Q' F  S+ J
  42. /*#define EDMA3_DEBUG*/
    % s5 L$ w" q  u7 H" P+ M& g4 ?! r
  43. - i6 D3 B6 i; m6 ~$ q8 c
  44. #ifdef EDMA3_DEBUG( t7 w# O$ e" l4 P( s
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    * u# ^) a, T. Q) m
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)/ q9 a8 |; _% b8 X. A
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    9 e/ G; a* ~3 G" F/ `
  48. #else
    # D1 P* i/ B" D( j2 Z' a+ Z: T4 n; N
  49. #define DMA_PRINTK( x... )$ L, c1 o8 Q& K; ^: N
  50. #define DMA_FN_IN
    " E0 d  h& {" E& a8 b4 _# o; E2 g
  51. #define DMA_FN_OUT
    ) R3 ~8 o2 l) I9 c6 |1 _
  52. #endif
    5 P; T2 y: g2 q, ^# I' u% ^7 A

  53. ) g4 M  a+ s/ r6 c2 e2 S+ ^
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)' w: T. V# ]) D% Q6 l' H/ d& ^
  55. #define STATIC_SHIFT                3
    & x! M9 R" g% U% u5 l
  56. #define TCINTEN_SHIFT               20
    ( J6 T3 i1 l) I, b
  57. #define ITCINTEN_SHIFT              21: v/ Z- F: [" d$ J
  58. #define TCCHEN_SHIFT                22: C) V2 ^* V$ M; d' \; w
  59. #define ITCCHEN_SHIFT               23
      Y, n$ y9 f# d" Z  k
  60. # i4 j- o% U# t' @+ g# z5 {: b! c& \
  61. static volatile int irqraised1 = 0;* h% x9 I5 p9 p9 R) z! z6 z" t  p
  62. static volatile int irqraised2 = 0;
    + M5 }5 k  e- b7 I2 v: s# o& e/ F/ Z

  63. ' Z/ e9 r4 @1 T! ~* ]
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ' y, S0 l6 A, Q3 W$ a" W# v
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
      ]. P2 s& X+ X
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);1 M' X: `0 R3 e. w) i' _( H$ h9 ^

  67. 7 W# N% v  A& c' L. B) U
  68. dma_addr_t dmaphyssrc1 = 0;: `. w- h0 Q+ m
  69. dma_addr_t dmaphyssrc2 = 0;
    # |) h# ^# Z: l( k* G. w" W  H) X
  70. dma_addr_t dmaphysdest1 = 0;/ N/ m. Z/ U  e9 N. F% l
  71. dma_addr_t dmaphysdest2 = 0;
    * f/ m- B/ |: B
  72. 1 [" N, g% a0 _% g- y+ j" {; b
  73. char *dmabufsrc1 = NULL;& U$ o/ p0 F8 b$ b) v2 G+ Q5 L
  74. char *dmabufsrc2 = NULL;
    ' ]+ {/ V# G) t6 b. @& A7 v4 W
  75. char *dmabufdest1 = NULL;
    , t( x- \( l! m- l9 ^
  76. char *dmabufdest2 = NULL;& X9 g0 W3 T# Q! j! J5 X% Z- L( I
  77. 7 o0 D) D7 \; m; Z
  78. static int acnt = 512;* I4 i6 E& \" h1 w3 f
  79. static int bcnt = 8;' x7 v% ~+ ~5 o3 W- m$ ^0 i0 Y
  80. static int ccnt = 8;
    2 |# y* v, A% [3 V" a
  81. ( e$ U% {9 o9 k0 W- ]
  82. module_param(acnt, int, S_IRUGO);  z9 ?1 P! A$ H- F/ e
  83. module_param(bcnt, int, S_IRUGO);
    - P" D4 d" ]0 N7 F2 f  P3 k- h. _
  84. module_param(ccnt, int, S_IRUGO);
复制代码
6 g; d9 N3 a+ h

" Q1 b& y& Q. C: G' V9 ]( X4 @7 d      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用- K5 a* C$ I0 R  |8 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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。8 ~. O9 [3 ]2 y# c; x* j/ c' J
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。2 [! ^0 b2 N/ [' \4 n- k1 z( q' S- |

( Z( f9 G: O4 `" l
( t  N+ ?% q/ k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-16 20:23 , Processed in 0.038308 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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