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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 2 E* B2 D( J, [6 J
  1. [code]EDMA sample test application
    6 E9 W6 V2 Z# t' l
  2. /*
    , q& ^0 O7 c1 p
  3. * edma_test.c
    4 V4 }6 J' u. O+ K
  4. *
    4 q2 Q* Y3 p) ?, X- z; F2 o
  5. * brief  EDMA3 Test Application# n% s8 y; f* ]; ~# t
  6. *
    5 I, W! X0 l2 L3 [
  7. *   This file contains EDMA3 Test code.
    * W1 W  ]" q" ], H1 h! J
  8. ** A# J1 ?- A' b: @
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE8 k) i7 X+ l; m: k- H& k
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    ! v5 }" i8 K0 k. A5 B; s$ w9 k
  11. *         TO CHANGE.
    1 K2 t0 Z6 L7 h- j4 v, N
  12. *
    & v  T" U4 ?" Z1 H" k4 G- }+ t
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    5 C9 B" q, F* v) X& }
  14. *
    ' L" e3 h& B( e  h4 d& d. J/ R
  15. * This program is free software; you can redistribute it and/or+ r( O% C5 N! T
  16. * modify it under the terms of the GNU General Public License as
    $ P- Q$ H2 d) o1 l9 {1 _' y. a
  17. * published by the Free Software Foundation version 2.
    & D4 P" u( O/ f3 |5 d' M( z( o
  18. *$ T% w+ Q( x6 O4 S
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    0 B5 f8 L+ a3 E) }* Z8 i
  20. * kind, whether express or implied; without even the implied warranty
    - ~2 i- p0 Q6 |' I0 y" M; T7 B
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    / _* I6 I: `3 K/ u7 W4 Q+ }. h
  22. * GNU General Public License for more details.+ ?: M6 v. x9 t' s
  23. */9 B- l0 F/ u/ [! _, h

  24. - N' s- `9 K3 L- W
  25. #include <linux/module.h>
    8 Z0 [7 n' H! k5 K
  26. #include <linux/init.h>8 g. G( g" x4 Z( U1 g
  27. #include <linux/errno.h>3 f, w* e! y' h8 @* w3 v5 n
  28. #include <linux/types.h>
    & h+ I$ n3 U# P. h/ [
  29. #include <linux/interrupt.h>
    7 u) N: S7 ]$ v1 S2 k
  30. #include <asm/io.h>
    ; L  i5 d8 }, o$ j% Q, s3 {4 D. k
  31. #include <linux/moduleparam.h>6 |2 ~  b9 b; H  a3 Z
  32. #include <linux/sysctl.h>
    ! m/ j5 E; M* A  L4 O
  33. #include <linux/mm.h>0 D# ~- a4 x; x5 F) K: b
  34. #include <linux/dma-mapping.h>( N$ ?, s: `' y4 D8 d5 o

  35. 5 ~1 I" b+ H% a3 j4 r
  36. #include <mach/memory.h>
    1 T7 t6 c: {! o
  37. #include <mach/hardware.h>
    1 H  m: M; X/ c4 z
  38. #include <mach/irqs.h>
    6 r$ a% s# t/ L8 J0 @
  39. #include <asm/hardware/edma.h>
    ) y3 G  s$ v4 g  F9 k) @1 u
  40. & E" c% }6 K& A! O8 h
  41. #undef EDMA3_DEBUG# R; S  n; g5 D
  42. /*#define EDMA3_DEBUG*/
    ' g, F+ ?6 h' c! X4 d

  43. . @# C0 V1 o; j6 p8 k$ |1 c4 `
  44. #ifdef EDMA3_DEBUG$ [" N' @! I7 z. G7 W$ x
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)" a% Z3 u/ R" s' Z2 [2 j# z" R
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)6 R6 g8 w5 N( _; @" e
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    8 N* G& q- g4 A' v8 _
  48. #else3 P8 h& N4 {% d* C* K3 r
  49. #define DMA_PRINTK( x... )
    , S+ s* Y* V& I3 |
  50. #define DMA_FN_IN
    " d& E8 L3 q/ b2 J2 @" H
  51. #define DMA_FN_OUT/ y0 m0 s4 R% y5 E0 W0 q
  52. #endif
    6 R/ K6 \) |3 s

  53. - V: a) \& ]4 ?( v
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768). f: \3 I% |" J" f% |
  55. #define STATIC_SHIFT                3
    ' _; @) a- E% m6 C
  56. #define TCINTEN_SHIFT               203 `0 e& y% p: E+ y' r: ?" e
  57. #define ITCINTEN_SHIFT              21- \" U; j+ P# ?8 l- T
  58. #define TCCHEN_SHIFT                22/ O& V$ \' V4 e. j5 s
  59. #define ITCCHEN_SHIFT               23
    & D0 f' m, \4 K0 Z9 Q% G. V9 x

  60. 4 }8 G* P' u# D9 K( I! ?
  61. static volatile int irqraised1 = 0;
    8 X) i* R/ @# s. }
  62. static volatile int irqraised2 = 0;0 I0 @4 J. j; ?/ N( U! O" t, D
  63. & p. K: G3 ]. Z6 }! J. g4 \' }
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    , c" c" P# p0 B7 C- d) n
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ( v( c" f# j1 y7 _# U. \9 e9 ^3 J
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);3 A3 U* \) Z: E
  67. 1 r) T; f3 t: f
  68. dma_addr_t dmaphyssrc1 = 0;
    ! w. H6 v# Y  \  y' ?3 T
  69. dma_addr_t dmaphyssrc2 = 0;% l2 s# f6 n/ O. \
  70. dma_addr_t dmaphysdest1 = 0;
    : Y8 Y- W% {3 u+ r7 V
  71. dma_addr_t dmaphysdest2 = 0;
    : e: |7 U9 l1 u1 y

  72. + q# g+ l  ^0 t& {
  73. char *dmabufsrc1 = NULL;2 p+ f+ T: W/ z: M) C2 b: r3 ^
  74. char *dmabufsrc2 = NULL;  R" |! i3 {5 ]$ I
  75. char *dmabufdest1 = NULL;& Z' }$ V% j- p6 n: u
  76. char *dmabufdest2 = NULL;
    6 S3 ?) O4 z3 f5 k: S' I! {

  77. 8 q2 Z5 E8 B, O. T, `4 i
  78. static int acnt = 512;- n' G8 ~" G! i
  79. static int bcnt = 8;' ?& ^1 A7 F  J4 o* h% s. [6 k( p' g
  80. static int ccnt = 8;) C: @% f* P1 }& V0 m" }, T. A. Y
  81. # M9 D) `2 q% F6 W
  82. module_param(acnt, int, S_IRUGO);/ S( L3 ^% O% ]: f. c
  83. module_param(bcnt, int, S_IRUGO);
    8 i" ~) ]: J& g) }+ L/ r6 x
  84. module_param(ccnt, int, S_IRUGO);
复制代码

- E9 C% U3 ?. Q2 a6 I1 _: e5 T
, }; T- {2 a9 x& O/ ]      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用, n+ H' z& S* j3 m$ n
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 Y, M$ r$ A8 Y' h/ @     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。" b, U' B6 {4 C) m

* i8 c' Z/ j- H
2 v. U! b+ [+ k3 f5 y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-20 00:35 , Processed in 0.042690 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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