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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
3 `, G# E0 P$ I) f
  1. [code]EDMA sample test application
    / N) }/ J+ _1 o9 m
  2. /*% o8 ^0 c: _6 a
  3. * edma_test.c+ N0 F# N/ S8 c' g/ S( ]- G' ?  H
  4. *
    * k1 J9 E4 B$ C9 W5 K0 x# b
  5. * brief  EDMA3 Test Application( G8 b& T5 F0 P" @; q1 e
  6. *1 w3 @; f8 w! Z# K  |. G
  7. *   This file contains EDMA3 Test code.
    ( ?2 C* z, T# ]3 o, i& Y
  8. *
    . ^# u) _: a" a% K
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    & t! {8 t6 j/ P
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    , i' \% `; a3 i! P# g- `
  11. *         TO CHANGE.
    $ r: P. t0 Y& ]9 ]$ C) V# ]
  12. *6 R- x* Q7 x8 p0 w
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/* b  ~+ C$ \$ {6 i8 m8 M
  14. *
    " N( z4 Q3 i& ?( U, o
  15. * This program is free software; you can redistribute it and/or
    . x* e# t) k8 D" I# q
  16. * modify it under the terms of the GNU General Public License as. O3 j) p& A- D; I+ D/ U
  17. * published by the Free Software Foundation version 2., E( f7 D8 K3 [% E
  18. *5 K3 P, |: Z* p0 F" L+ Q/ M- x, U
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    ; x. [3 R! C% j) S$ u( i: q
  20. * kind, whether express or implied; without even the implied warranty  l1 p' c( Z( S
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    ) I: x  V! W8 q. D8 q( }: U
  22. * GNU General Public License for more details.
    * [* X8 q3 {% c9 o% b
  23. */$ g3 D& N' S% o3 U/ i" i9 L

  24. ) f/ {; u, O6 i; @
  25. #include <linux/module.h>- s3 J& _, F! R9 L% D1 f& s+ o0 m
  26. #include <linux/init.h>/ l" Q$ d9 L* j+ B% q8 H
  27. #include <linux/errno.h>8 m' Z0 ?- l& |+ f3 c  u
  28. #include <linux/types.h>
    % h& `: l3 Z. H5 g
  29. #include <linux/interrupt.h>7 [2 I% E/ J, e4 [( j5 K
  30. #include <asm/io.h>
    3 |1 _( ~9 Z. q/ |8 v/ [
  31. #include <linux/moduleparam.h>
    8 ?! B5 Z! `  q7 V+ c. i8 V- l" s' o
  32. #include <linux/sysctl.h>
    ( P3 w* t, R- I  x
  33. #include <linux/mm.h>+ U; C2 S% U# {6 I
  34. #include <linux/dma-mapping.h>
    7 {% T! f( l2 e" U5 v
  35. ; Q; J3 P, M% e$ ?2 q8 ^% O$ Q
  36. #include <mach/memory.h>. l. P: s) J/ _% w% o
  37. #include <mach/hardware.h>
    ; M. k7 _( _6 R0 ~% S
  38. #include <mach/irqs.h>
    " s9 `6 F. Q8 t4 h/ S% A; v5 K4 @
  39. #include <asm/hardware/edma.h>
    & z4 n6 Q8 g+ a  R5 e" _0 S" \
  40. ; c6 g( k6 x0 y$ Q( |( k0 ?
  41. #undef EDMA3_DEBUG
    . z5 m7 S* V9 y, I% j& C: P1 s
  42. /*#define EDMA3_DEBUG*/4 p# g2 L% B2 ]' |1 O6 B/ z) C
  43. 7 c1 r4 M' L' I; {5 Z8 Y
  44. #ifdef EDMA3_DEBUG, a7 L, ?6 S. {' e5 Y2 E9 n$ b+ O
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)& g( ~' P0 U# _3 P( }, o# T0 R
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)9 q1 v$ J7 c& e& @6 X( o. T4 Q
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__): B# }% ]* Z$ U- x5 `5 K
  48. #else
    1 x7 e! i7 d1 p1 X$ Z- P9 f$ ~) I
  49. #define DMA_PRINTK( x... )! f" B8 ?0 C6 d
  50. #define DMA_FN_IN) _3 `1 a/ A1 k) y, n# P
  51. #define DMA_FN_OUT9 y; p, R1 m- C* K& b& M
  52. #endif
    - j2 l" R+ ]& m6 `* C
  53. % ~  t0 C  G9 m0 L; i
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)2 _2 D5 Z7 X7 E7 l9 ^, S
  55. #define STATIC_SHIFT                3
    / X2 R3 s/ ~4 I7 H4 }
  56. #define TCINTEN_SHIFT               20% L5 y7 v- n; M3 O; ~
  57. #define ITCINTEN_SHIFT              21, K  [. e$ ~7 [5 g) G% @
  58. #define TCCHEN_SHIFT                22
    8 o( b; m: `- Q7 e+ ?0 n, j# g
  59. #define ITCCHEN_SHIFT               23  p3 U! @- |- ?

  60.   D6 K8 u$ x* d+ D/ t
  61. static volatile int irqraised1 = 0;
      v, Q8 }: j, S4 y% o  Q
  62. static volatile int irqraised2 = 0;
    - R( g/ `5 h- f9 }

  63. 6 m* }/ ?. e2 _2 e3 i
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    1 F+ u3 ?' H& V4 r: c$ T! x
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);5 C2 e4 f8 \2 W4 T% y  t5 K9 J
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);2 u6 T2 I# B7 e! t5 r; |

  67. ( ^. N. l) M: T, w/ y4 ?
  68. dma_addr_t dmaphyssrc1 = 0;8 [5 N6 V& `" I, Q% @, r- |
  69. dma_addr_t dmaphyssrc2 = 0;5 k6 H- e; t3 [; j+ q
  70. dma_addr_t dmaphysdest1 = 0;
    7 V: ^9 q+ @- q' ]# ?5 }# G9 H
  71. dma_addr_t dmaphysdest2 = 0;5 ?! z2 z$ c7 Y( j0 X

  72. * w: q- a4 ~& J
  73. char *dmabufsrc1 = NULL;' T; v5 S* x; C; o
  74. char *dmabufsrc2 = NULL;
    " Q' x6 A' F$ w6 R% E0 f: X# y) E
  75. char *dmabufdest1 = NULL;
    7 E4 R: W  B/ l! Z+ x6 {# @8 d! \: K
  76. char *dmabufdest2 = NULL;- E7 J4 y$ z& V8 q: ~
  77. 3 F, d9 b/ G4 Q
  78. static int acnt = 512;, z2 F/ N, o& Y" r! p  |
  79. static int bcnt = 8;+ u2 q* X7 j# |. g
  80. static int ccnt = 8;
    0 ^) Q1 w: r  @& T4 {

  81. / @0 z/ U  g/ a; t- s% c
  82. module_param(acnt, int, S_IRUGO);' h0 u+ i9 r. @$ q
  83. module_param(bcnt, int, S_IRUGO);
    " h2 R1 P1 b5 W( o( j" X6 s" W
  84. module_param(ccnt, int, S_IRUGO);
复制代码

4 T/ \1 b* p& Q, w  J- @7 e" Q  `" N
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用8 y8 W7 R0 }' y4 I) _) D  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 m4 H; r0 q7 U& r  s* X" ~
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。2 W+ p7 Y  }0 B, q& o
$ E0 X9 h. z3 Z! x. d

) D$ V+ x- p# l2 p- F, |8 ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-31 16:28 , Processed in 0.038637 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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