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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 8 W7 N( u# {8 _2 e
  1. [code]EDMA sample test application
    8 P: Q2 Y$ ?- Y: y
  2. /*
    - a0 `8 c. m. @; J6 B- t5 c
  3. * edma_test.c. Y+ |' |. K& r3 G/ h5 }( p
  4. *
    4 @# P  Z8 u- T2 \$ `% K8 @
  5. * brief  EDMA3 Test Application0 K( {  @6 P4 i5 w2 Y' ]
  6. *
    " y% {, a5 w( R, a, L% S7 ^
  7. *   This file contains EDMA3 Test code.0 p. M" l$ i2 @+ k& Q. p' `# ~
  8. *
    ) b' E  q" Q& [6 |' z
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE$ v( _  r- D/ z) w
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    " u  y  l7 s; V* Q1 N5 i) T* ]
  11. *         TO CHANGE.
    3 c: Y5 i, T! j
  12. *
    0 r; d5 R4 r7 N& {
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    2 f4 S' h8 ]/ g
  14. *
    ' I- g, g  E8 V7 R8 L, h  X- C
  15. * This program is free software; you can redistribute it and/or1 g: ]% p/ B. G! X; O
  16. * modify it under the terms of the GNU General Public License as( O$ i5 N  y1 F/ l1 F2 A' e6 E: Q
  17. * published by the Free Software Foundation version 2." y4 k( t8 E8 a: E4 K3 W: u6 H! c
  18. *
    . }! c; y, _2 |& [% P7 U
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    " ~3 `' I* c; J+ K
  20. * kind, whether express or implied; without even the implied warranty1 a$ b, F; \! C! V5 X: y
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the" Y  d0 l/ m4 d! }/ e* C
  22. * GNU General Public License for more details.
    8 s, S) \& _1 E; g3 k( [; e3 e9 d+ C
  23. */
    / {* [8 |. R+ ~# I
  24. 0 l4 I7 \2 I, W; b9 {' L3 O
  25. #include <linux/module.h>
    7 {  [, N/ U' g! e0 V' P
  26. #include <linux/init.h>: z9 s7 T1 W- m6 d) [! w. `* ^. b
  27. #include <linux/errno.h>9 d' i  l) _; }, w. q- j& T
  28. #include <linux/types.h>
    , q8 q% ^& n2 B/ L1 N
  29. #include <linux/interrupt.h>
    9 W7 s/ i0 W, g& f( Q. e  }6 c
  30. #include <asm/io.h>
    % _0 ^" }2 ?9 J! t+ `( h: G7 u
  31. #include <linux/moduleparam.h>  H( I3 D2 B( ^+ \$ z) V: c
  32. #include <linux/sysctl.h>
    5 Q! b4 b" F: y' N3 W9 D
  33. #include <linux/mm.h>
    ! M, b  h3 M/ K; Y3 Z
  34. #include <linux/dma-mapping.h>
    8 q" c9 d: ?( ]( P0 B4 w4 o

  35. ; O2 S6 u' y1 a! J. c
  36. #include <mach/memory.h>
    ! K( z) a9 w0 B( w" c2 ^2 |3 l/ S
  37. #include <mach/hardware.h>. ~7 p9 a* g) G/ F! ]7 A4 A
  38. #include <mach/irqs.h>+ F+ C: Q2 F/ H- s  h
  39. #include <asm/hardware/edma.h>+ |$ \" L% D- Y6 n' J

  40. . M' K4 u* b9 }% X. y
  41. #undef EDMA3_DEBUG
    " A/ z! w* [" I
  42. /*#define EDMA3_DEBUG*/
    ( X) U" {) L7 L4 B

  43. : Y- n% R5 V2 i  K+ ~+ H5 l
  44. #ifdef EDMA3_DEBUG
    % g& |: f" M: D0 F9 Y
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)  x1 u5 S9 Z3 t5 l& }
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    ) N# m/ F: }4 A! W/ E6 E0 \
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)! n$ z) I9 A5 N
  48. #else' v: _9 _. C: @* v; ^5 A
  49. #define DMA_PRINTK( x... )
    * n3 P. m6 j7 i9 k+ o6 d
  50. #define DMA_FN_IN, I- }; R/ w7 o; g4 k2 _- K) j
  51. #define DMA_FN_OUT% W3 U  @1 N  _- E5 T0 O5 U8 t& N
  52. #endif4 ^- W/ b5 Z1 X
  53. - [1 ?$ x  L! P
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    - Q; m0 f0 i$ t' @
  55. #define STATIC_SHIFT                3
    8 F- u" x/ l) @2 p- l& E$ X: G) ]
  56. #define TCINTEN_SHIFT               20
    ' x2 o* g4 N8 ]: h8 X) e. J
  57. #define ITCINTEN_SHIFT              21: v) {0 e' p* h
  58. #define TCCHEN_SHIFT                22
    ) E. w7 _7 _) I* n
  59. #define ITCCHEN_SHIFT               23
    " m3 o( [+ o( Y7 Z
  60. 6 `8 O2 F& j! x
  61. static volatile int irqraised1 = 0;
    3 N4 P* n& T* O# r, R# J3 L
  62. static volatile int irqraised2 = 0;
    6 t7 d# k1 l7 l& P

  63. ( a; p/ D5 J5 h5 V3 g
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ! x- U- C2 a) m' ~/ t
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);/ @: M3 ~9 @! m, v
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);' R; X6 y0 E" p0 Y1 d& @. J2 ~  t

  67. " A3 X/ A0 K* c) o
  68. dma_addr_t dmaphyssrc1 = 0;
    / P1 P! E& F2 H, Z1 `4 o
  69. dma_addr_t dmaphyssrc2 = 0;
    + h" H& X2 }0 ^9 ?/ C7 O- I
  70. dma_addr_t dmaphysdest1 = 0;
    / E/ S4 q6 X& A- f
  71. dma_addr_t dmaphysdest2 = 0;. S( I+ ^1 ~$ {4 D3 G& B. T

  72. : K, ^% y5 u" L: c2 f( @$ T
  73. char *dmabufsrc1 = NULL;
    ! N8 x0 D& |% S
  74. char *dmabufsrc2 = NULL;
    * y+ V, Z3 U: v5 _
  75. char *dmabufdest1 = NULL;: p: H& B% K+ }0 V# Z: L2 ^4 ~
  76. char *dmabufdest2 = NULL;
    : _9 D/ ~9 F4 O3 k

  77. 0 c0 X- v, f5 r6 [. B/ i" F$ Y  d
  78. static int acnt = 512;
    1 M& z, {! g7 L! H( F- G
  79. static int bcnt = 8;7 @" i5 _! v8 q; d  C& n
  80. static int ccnt = 8;
    4 @( L0 b$ t7 v% q
  81. 9 ]& t8 u7 z2 E# N8 t& d2 C
  82. module_param(acnt, int, S_IRUGO);
    ' @: ~% _# x2 N( n, W0 Z
  83. module_param(bcnt, int, S_IRUGO);; y# T) M: F. {% H3 C4 [2 [* D* C! N
  84. module_param(ccnt, int, S_IRUGO);
复制代码

  O) S- K7 i( c; \; ]) h! N! I5 _0 a* i1 R4 h
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用2 P" o8 k7 D% a$ M' J
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
  [. O0 _$ ]4 h) V  O     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。8 C7 o. k! X& K9 y" A. z/ a' ?0 W

' C# r( U* ?8 R: I
6 m+ y4 }/ s# `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-13 10:22 , Processed in 0.040757 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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