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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
5 j' [# P0 W+ n% C  c& c" ~
  1. [code]EDMA sample test application# d# o% v5 u: s; t& g; _/ }
  2. /*
    # s' p; U4 v: @9 U
  3. * edma_test.c
    8 `# y3 C+ D, V3 e$ t3 J3 T
  4. *
    2 G( u6 \3 p# X+ b1 q1 M
  5. * brief  EDMA3 Test Application
    " B" G( }, d1 l  M* i$ C
  6. *
    ' M+ {8 i' t1 I  {; r$ y
  7. *   This file contains EDMA3 Test code.
    8 z8 U' G" i( ?# n
  8. *
    1 M) d2 B5 n7 J$ w: b) m& S2 j
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    * _" c6 i" Z. M
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    $ J' C# R- }2 p
  11. *         TO CHANGE.
      v8 c2 N$ p: }' Y, Q
  12. *
    * e8 U' c/ `7 q3 b& H+ Y5 h# U
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/' i( ~1 \1 v5 |0 M
  14. *' d3 d2 x; N& K( o* @
  15. * This program is free software; you can redistribute it and/or
    5 A8 _; }/ ?$ P& m1 Y% Y1 p
  16. * modify it under the terms of the GNU General Public License as# u: H+ G, i1 r4 m6 f# K
  17. * published by the Free Software Foundation version 2.
    ( w8 a" i2 A( q8 P0 L% a
  18. *
    2 S" z4 Z. \/ J  J
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    # h( w2 C5 r' m( e
  20. * kind, whether express or implied; without even the implied warranty4 T& [5 Q, D$ N; R
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    5 r) l3 _3 n% _7 @2 I# i
  22. * GNU General Public License for more details.
    # J6 e+ W" h/ f- {/ ^" i
  23. */! T, z% ]# n7 b: Y

  24. 9 o8 m4 W; v/ K- _
  25. #include <linux/module.h>% T. S5 ]# Z; S" R& {
  26. #include <linux/init.h>
    . y4 b7 N% ^8 T
  27. #include <linux/errno.h>
    & t% h1 l' R! ]0 x4 i) [
  28. #include <linux/types.h>; ^/ M+ y& u4 x# X/ r& W/ }$ @2 C
  29. #include <linux/interrupt.h>
    ' O8 V+ X: j! z3 m
  30. #include <asm/io.h>8 J& e- `3 r6 a0 m
  31. #include <linux/moduleparam.h>) z; t5 J, ~2 U+ |3 s+ L/ [2 Z
  32. #include <linux/sysctl.h>$ {9 v0 l2 ^% }
  33. #include <linux/mm.h>0 e2 |' O2 ?4 R& j
  34. #include <linux/dma-mapping.h>1 E. l" e# p  ^4 O8 O

  35. . H0 z8 a* }& f1 a
  36. #include <mach/memory.h>
    & l0 L. ?7 Q% L7 y7 Z& ?. r
  37. #include <mach/hardware.h>7 ^3 M! |" R- a
  38. #include <mach/irqs.h>
    8 I3 J: j5 V: n) K& z, e; t
  39. #include <asm/hardware/edma.h>
    1 m- h, C1 [; y" l6 E* v

  40. 4 h1 V" X5 ?; N$ Q# C. C
  41. #undef EDMA3_DEBUG
    $ X/ S+ W  f3 n" J0 l
  42. /*#define EDMA3_DEBUG*/
    , G3 }5 O2 u6 \! y5 {7 [9 G
  43. ) A4 q( I. |% M
  44. #ifdef EDMA3_DEBUG
    ( K1 H- y) y9 i$ i2 _* o  c
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    ! \# U7 b! I" P3 ~: Z; w+ }
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)9 w, d1 C( _0 a( t
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    3 d7 U2 m  |9 m+ Z
  48. #else/ k$ X. v. V; K. q" L* L5 ?3 I
  49. #define DMA_PRINTK( x... )
    3 c  M, h% b$ t2 n8 s& L
  50. #define DMA_FN_IN9 Y! H% E; G% }0 O  B/ C) O+ z" J
  51. #define DMA_FN_OUT1 y. ?. x2 @  H4 e5 ?
  52. #endif. V( O$ w0 b9 N( z  D3 a
  53. - o) P! J4 z; P4 O8 {( v  H
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)2 F- ~4 Q& y( u1 |
  55. #define STATIC_SHIFT                32 Y3 \) N- \3 C0 A/ G5 y
  56. #define TCINTEN_SHIFT               20; r3 L+ k: i+ @# c
  57. #define ITCINTEN_SHIFT              21
    % X# \6 q7 B' s) K
  58. #define TCCHEN_SHIFT                22
    + j/ N9 r$ z. v. S+ b7 A8 h; n6 z4 D
  59. #define ITCCHEN_SHIFT               23! i6 {$ W4 m# H/ r5 p

  60.   p5 g. }" f( Y) A+ D: I2 r
  61. static volatile int irqraised1 = 0;
    & T# f; V' ^! b/ D
  62. static volatile int irqraised2 = 0;
    1 g5 y3 _0 Q! n8 s1 e1 h  s1 K
  63. 8 |  ?3 {, M3 r7 L* T2 m
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
      q: V" o: w* p; q5 Z0 O! S
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    # J  ?0 V- B3 Z! Q  B% Q
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);! L  A& Y' s' B) k; T. p

  67. . F* t. C* W' [4 d: C$ W
  68. dma_addr_t dmaphyssrc1 = 0;
    - W# z- s5 u3 ^7 b
  69. dma_addr_t dmaphyssrc2 = 0;; b( P9 a0 v. @+ K! z
  70. dma_addr_t dmaphysdest1 = 0;6 a3 f+ y9 X1 b
  71. dma_addr_t dmaphysdest2 = 0;
    1 ?1 }2 \- M' _

  72. ( n$ C/ a- Y* F2 J, K! T
  73. char *dmabufsrc1 = NULL;
      v& Y8 J4 n0 P% x* x
  74. char *dmabufsrc2 = NULL;
    3 |$ K9 ~/ ^' K3 g! x! Y, e5 z
  75. char *dmabufdest1 = NULL;) l3 S) i# Z; d/ u7 W: Q. k
  76. char *dmabufdest2 = NULL;
    7 t( `' d9 d0 F2 I  l6 C
  77. 8 u# n7 n5 s6 K# c: W( V& L, a
  78. static int acnt = 512;
    - P& \' I+ ^9 l
  79. static int bcnt = 8;, W% l0 U& @& a& C: |
  80. static int ccnt = 8;
    $ T9 C0 H, n5 G2 E5 p
  81. 8 {: S( i1 e6 `" S* s$ e
  82. module_param(acnt, int, S_IRUGO);
    7 |3 z3 h8 a, u! X0 c
  83. module_param(bcnt, int, S_IRUGO);
    " l; a" u  g* z8 f9 D
  84. module_param(ccnt, int, S_IRUGO);
复制代码

- s. E, h( U6 d3 h8 v9 g9 P7 z  d& \" c/ D/ R2 R' i, G
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用: F7 Q5 g0 L- Y& n; e! t
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。: z. \. V. B" {- T
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。* ^, B2 `9 `7 F# G

) n( p+ ~3 X' T1 C0 T* s3 e( X+ a  H# ~4 o6 b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-12 14:03 , Processed in 0.038841 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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