OMAPL138如何在Linux下使用EDMA3驱动 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 , P7 F9 [; m$ ?+ Q
  1. [code]EDMA sample test application# g8 d7 \$ l& M% o+ \/ A
  2. /*
    - f; ]; f# g( A8 q, V9 ~
  3. * edma_test.c& r) q8 {9 g- c0 ?0 I& C7 K# R8 ]
  4. *
    1 h3 `& z9 }. L1 e/ E
  5. * brief  EDMA3 Test Application8 G# l5 Z) _6 O2 l  Q- F0 Q1 O: `) a
  6. *. f: u7 T3 [2 [! \+ C1 r/ u
  7. *   This file contains EDMA3 Test code.- R% o% [0 |! k, e& t/ M
  8. *
    / q, v6 ?) g1 m8 ~) A6 F% s
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    4 x! [1 D( _# X1 ~: M
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT  T: u) D# a* X0 W- C7 P
  11. *         TO CHANGE.' C" w% L0 E. T9 q+ g4 ]
  12. */ N: N) `7 l: e+ e4 b. a
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/) W7 ]! A$ d& w  K( ?
  14. *
    1 _6 f+ P5 x+ T& m6 b( u8 ?" g
  15. * This program is free software; you can redistribute it and/or
    ; T( P- X' f" T
  16. * modify it under the terms of the GNU General Public License as3 ^. G. Y. S0 ^' o% W
  17. * published by the Free Software Foundation version 2.
    8 Q8 r. v# b  i: Q+ w; i
  18. *6 {  f% V/ T2 e0 }: B  L
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    4 N' n3 |8 [, m
  20. * kind, whether express or implied; without even the implied warranty$ [5 A$ t: a" z# J" z0 w4 }
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the( d* |5 P9 y- I/ V2 i- q
  22. * GNU General Public License for more details.3 c& _5 ?, n5 V9 n" H% W2 b1 \) _1 L
  23. */
    + ^! N1 P) x# h- [8 I7 b4 X" d

  24. + M; r! n2 p# N7 H. \
  25. #include <linux/module.h>
    $ n5 c  e$ A6 j7 s( p( }6 ~* Y
  26. #include <linux/init.h>
    5 L% j4 g% X2 K! l% ]' x
  27. #include <linux/errno.h>
    ) e0 O+ i) _. i) x5 M/ q
  28. #include <linux/types.h>/ P2 `* i( _8 M5 f. C
  29. #include <linux/interrupt.h>
    + H: p3 Z' V$ s, P, D5 T
  30. #include <asm/io.h>. y+ g' e8 d4 K6 O& m; b- i8 o# K
  31. #include <linux/moduleparam.h>! }8 [- M* v+ K4 B5 ?' s+ ^+ c
  32. #include <linux/sysctl.h>
    6 S5 ]5 Q) O6 u% u3 g0 Q% ?
  33. #include <linux/mm.h>
    - k- M- U; p: Y) d& k0 t! S
  34. #include <linux/dma-mapping.h>' {& ?8 P( l/ P- g
  35. . w; Y& N" v* ^0 K$ ~
  36. #include <mach/memory.h>& O; o. Z: v! G! u3 I' f" A) v! X
  37. #include <mach/hardware.h>8 T; N7 y: P- s  \* d- P( i0 _
  38. #include <mach/irqs.h>) [) p3 J* F- F! u
  39. #include <asm/hardware/edma.h>* }9 j9 h( X+ c: M6 l  V+ ~

  40. ; D" \" v) q! ]( h1 c
  41. #undef EDMA3_DEBUG
    * t5 }) f2 X8 B  ~! B8 ?* ^
  42. /*#define EDMA3_DEBUG*/4 ^6 C2 s% G  _% x0 Q0 r6 w1 c8 ?
  43. - {9 E0 o# W- x6 n0 r0 G6 e
  44. #ifdef EDMA3_DEBUG
    : \( P5 ~: x7 `1 R( a( o# A
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)( _+ H4 n4 i# @1 {: Q  n5 Q" N9 S
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    & X4 Y  N; m+ N: P$ n
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    6 |, a  [! o9 V6 e5 s8 g
  48. #else
    2 O$ j0 E' A( Y  t$ L8 G
  49. #define DMA_PRINTK( x... )
    + |( `2 o1 T: W; F0 a- L
  50. #define DMA_FN_IN; I7 @+ `# O, g, Z- @! U
  51. #define DMA_FN_OUT" h3 F! `& f* e/ Z
  52. #endif0 H4 z8 j% T- y/ x2 Z
  53. / \8 A& b' ?7 c
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)) a. I$ s( U- q! X8 G6 \" M: @1 x
  55. #define STATIC_SHIFT                3
    4 @1 F4 g- p1 g( J
  56. #define TCINTEN_SHIFT               209 F2 y1 t  L2 e3 x: n
  57. #define ITCINTEN_SHIFT              21
    ( G, p, K6 z/ `8 T$ l+ c
  58. #define TCCHEN_SHIFT                22
    1 ^5 j$ J4 i- G3 ?/ Z; x3 D
  59. #define ITCCHEN_SHIFT               23
    : b. ~. e, N6 U. i7 {7 P+ Q9 T# H+ z6 P

  60. + T' Q6 Q  P+ Y8 d9 Q4 d7 G: |
  61. static volatile int irqraised1 = 0;' t$ L1 S! B- A9 A. y
  62. static volatile int irqraised2 = 0;* v5 h, c# N+ U9 n. F2 \

  63. + p. C2 T% W, r/ y
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);+ }  h9 |/ |$ j+ P% u3 H6 E
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);4 k' s+ I! l2 A0 ]! r* J2 s
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    4 S5 Y1 R- T  c; i" o# O, F
  67. - i, i: ?0 s2 g
  68. dma_addr_t dmaphyssrc1 = 0;/ {- {1 f8 x- N' `6 \' x1 I) r/ A
  69. dma_addr_t dmaphyssrc2 = 0;
    $ s$ y; |! K! f$ X2 k
  70. dma_addr_t dmaphysdest1 = 0;
    4 B" D. O- \$ n! a  m1 z0 `3 S
  71. dma_addr_t dmaphysdest2 = 0;8 R/ d" E5 L# Y3 e: Q5 R+ `
  72. ' W0 t% Y+ s3 a3 g2 _1 ]: |5 F
  73. char *dmabufsrc1 = NULL;( ~2 y( b! S. O" q9 m
  74. char *dmabufsrc2 = NULL;
    2 L& v$ p1 |7 [0 M
  75. char *dmabufdest1 = NULL;: l2 C8 I/ T0 R! d$ m/ ?, Q( ?' c
  76. char *dmabufdest2 = NULL;: m, Y! z( X! V% |

  77. . Y/ M  o0 R" ^
  78. static int acnt = 512;3 a& e' F; `+ _, T) j1 f
  79. static int bcnt = 8;
    5 F9 e7 v+ m9 s4 V
  80. static int ccnt = 8;" G- }( V) ]- _* h, [
  81. 4 P5 t% I) y5 p
  82. module_param(acnt, int, S_IRUGO);6 h2 K/ Z* t' d5 n1 V; k
  83. module_param(bcnt, int, S_IRUGO);
    2 k: \' j) s' ^( `8 m2 V
  84. module_param(ccnt, int, S_IRUGO);
复制代码
* w. T8 Z8 S; W* R2 O2 U

' T- e. s! C4 v      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
3 s; W- @- J% T! f4 Carm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。0 C# k$ g4 w7 q) t) |. E
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
6 ~& b7 y! {0 a7 w4 ^( Q' i, d  X3 Y4 z3 `9 r4 `, V

3 C. `4 \6 {! e* m& z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-29 15:43 , Processed in 0.050462 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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