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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
5 U; K' J  O+ G* v
  1. [code]EDMA sample test application
    7 m( E5 B! m1 Q+ U
  2. /*
    7 ^. Z- f0 |# ]8 w: d4 _) H5 \. x
  3. * edma_test.c. ?  K2 N) I3 _9 G9 Q
  4. *
    - d/ x3 I" ?2 g+ ^
  5. * brief  EDMA3 Test Application% j7 \6 i9 @  W5 l0 d
  6. *6 l% O/ V& C$ [5 J& J7 y
  7. *   This file contains EDMA3 Test code.% n2 R) Q) q* f+ a9 p$ b
  8. *
    $ A  s: B, @9 f6 b( a7 U1 ]
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    5 @/ L4 S( z9 U1 @1 X
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT; ~% e' ^6 P, J
  11. *         TO CHANGE.. S6 W8 X2 q! u
  12. *
    ( w! [* N# _: \# `
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    1 [: H  w  j+ d# x9 |1 w" P
  14. *: w4 L1 A4 R9 g2 b3 e/ t
  15. * This program is free software; you can redistribute it and/or
    # v. Z8 j0 }0 M' R
  16. * modify it under the terms of the GNU General Public License as. {+ O( {7 Q) y( G! r7 V; n
  17. * published by the Free Software Foundation version 2.. B# ^5 C: y' p" U. a: o- Y
  18. *
    9 `. N& r" b. E6 G+ H8 b4 U
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    " R0 [2 L3 }0 C' L) v
  20. * kind, whether express or implied; without even the implied warranty3 r$ e, L4 o) P  {2 o
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the- k8 }+ e" S6 H4 Q4 D6 {  X$ L9 ]
  22. * GNU General Public License for more details.
    + N# [1 i9 L( ]6 C7 b5 p
  23. */
    ' O' o% Y* Z0 D0 T: A
  24. + M, _2 t$ z) `) ~& X
  25. #include <linux/module.h>9 O5 Z4 k5 p* [' C' m
  26. #include <linux/init.h>/ m3 M1 g# N" C/ @' ~  c
  27. #include <linux/errno.h>
    * `4 I8 x$ P( [2 i: j
  28. #include <linux/types.h>
    4 G0 I& s! a- k" E; V- W' `' z
  29. #include <linux/interrupt.h>& Q$ d4 K; q' |% N
  30. #include <asm/io.h>7 e' F2 S9 |, c! z* t# W* I
  31. #include <linux/moduleparam.h>" X. F) e) H; P# `& l
  32. #include <linux/sysctl.h>9 a; E: O5 Q+ {9 ]( \' A
  33. #include <linux/mm.h>9 m; _+ @9 L& [, C0 ]  `4 t' M" U
  34. #include <linux/dma-mapping.h>
    ) h  y- f- [( c$ d6 r

  35. + O; ?7 [* t* n4 Z3 E+ P1 o) d
  36. #include <mach/memory.h>
    7 e" `# k/ q2 |% X% E0 U
  37. #include <mach/hardware.h>1 e7 Q* W6 s) H" a
  38. #include <mach/irqs.h># B; e! t. O9 _3 r
  39. #include <asm/hardware/edma.h>
    . ~3 h0 I: Q7 }- L, z3 i

  40. $ X* S% X+ r- b0 E
  41. #undef EDMA3_DEBUG4 q/ A$ r# I6 I0 V! V- W0 A  q
  42. /*#define EDMA3_DEBUG*/
    2 \- p9 O' J/ t' y, `8 v& v0 n

  43. 9 K$ E+ Y4 ~- U
  44. #ifdef EDMA3_DEBUG
    2 f/ l" B; H; P) B0 T5 A+ @/ u
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)6 p4 a! G% N! z5 v% q
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)' R  a" ?) X5 v, @) ]
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    / R7 Q" V- b1 P: g% e% j
  48. #else7 x" E6 j$ b, j) G
  49. #define DMA_PRINTK( x... )
    0 X) }- ~- m1 o3 j2 {
  50. #define DMA_FN_IN* l$ b  E( j  D
  51. #define DMA_FN_OUT
    + c& I& K' u7 d4 A% ~" q, c
  52. #endif  r! c) j" s( k0 P

  53. 0 r& o6 O2 i: `
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768). ]2 Z+ w) p6 S( P% f
  55. #define STATIC_SHIFT                3
    7 a, E" Y8 ?" x0 [
  56. #define TCINTEN_SHIFT               20
    8 [6 N' |' ^/ z: V
  57. #define ITCINTEN_SHIFT              21
    5 a$ p( a- A0 c* m
  58. #define TCCHEN_SHIFT                22
    * h( l8 d$ P3 @5 P( a, a# c
  59. #define ITCCHEN_SHIFT               23# B5 k; V+ h+ n( q5 d, e
  60. ; o, A% ]1 A0 W& T* p% q  v
  61. static volatile int irqraised1 = 0;
    7 ?. y/ c: l# Y1 d1 \
  62. static volatile int irqraised2 = 0;+ ]& j& y. ~  o! E2 ?
  63. 5 q% v. t0 @% o+ [" N
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);, z: z" o. J4 ?' u
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);9 o2 D" k2 b. [6 z
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ; f' G5 W( A+ b+ o& V+ a) i

  67. & B9 o9 e" k$ Y" }1 ^: l/ b
  68. dma_addr_t dmaphyssrc1 = 0;
    7 G+ ~/ F9 V) E3 @0 S& j3 L( V
  69. dma_addr_t dmaphyssrc2 = 0;
    8 E3 c5 K: l+ O' j. y1 l% s2 C7 \: g4 R
  70. dma_addr_t dmaphysdest1 = 0;# D$ I5 d6 s( k5 ~9 j
  71. dma_addr_t dmaphysdest2 = 0;4 D" I$ o* e2 E6 d  t; Z7 Y
  72. - f8 c2 ^: ?% T5 l8 y* e
  73. char *dmabufsrc1 = NULL;7 w( u7 x" F1 l5 x/ O' u. \
  74. char *dmabufsrc2 = NULL;
    6 T, m$ r3 K" Z" {" R4 W
  75. char *dmabufdest1 = NULL;
    ( H. t; L9 H. W4 z
  76. char *dmabufdest2 = NULL;' [' F* B; p/ G

  77. . j% K  i" g1 @" a. F: N3 C% S
  78. static int acnt = 512;
    $ E# H; Z0 }9 N4 p' x
  79. static int bcnt = 8;
    , H( t9 F) o9 e0 t
  80. static int ccnt = 8;
    3 I( v, ^# @3 g

  81. 2 Y0 e) c; H) ?& Y6 C
  82. module_param(acnt, int, S_IRUGO);
    $ x# z, v, K1 F! y
  83. module_param(bcnt, int, S_IRUGO);
    ) i- O& f4 U/ T5 |. j( E$ {
  84. module_param(ccnt, int, S_IRUGO);
复制代码
: {- F; z' \8 t2 b2 O8 z
$ H- i% p9 C' }: c' Z' o1 d  @
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用0 R. v: M: C( k+ z( K* d7 D$ i
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。  S" s% [+ m; k9 F& n: F3 d
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
6 j6 q+ Y/ c3 u3 J1 R1 T
: ]+ Y2 m# P$ o) ]0 e0 N7 p7 r( D/ x4 U$ |) i0 d$ \5 v8 H
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-21 09:27 , Processed in 0.039055 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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