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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 7 D& Q& R! ]. p1 E8 C# `
  1. [code]EDMA sample test application- S' J# e+ Q( g
  2. /*
    * F4 L3 H+ p1 ~& V2 Y# f. _
  3. * edma_test.c
    2 ^0 f( u' ^2 `: f6 i( @2 T
  4. *) x' D( {  D; _1 P% H  i8 R
  5. * brief  EDMA3 Test Application. \- e5 h& A' _3 y8 [$ E
  6. ** a' I! |4 V$ I0 Q  p0 b$ h+ y
  7. *   This file contains EDMA3 Test code.
    ' j" d9 P; I1 u. a: `8 X7 _2 t
  8. *7 [7 a6 g& J1 ~* g, c; `
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE$ ^! C* p) R& H( `
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT' E$ l3 Q2 H7 Q
  11. *         TO CHANGE.
    $ k% Q& w9 p  x7 T; ^
  12. *
    0 x3 Q6 ^$ g  I: o5 Q& `. x9 q- V# T
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/+ r/ K3 m7 J! m. n2 o! z; b  G' w8 j$ ]
  14. *
    ( S0 r' |3 s% Y0 w' ]
  15. * This program is free software; you can redistribute it and/or
    % U/ ?5 n1 z) C! V& L' Q6 }, N
  16. * modify it under the terms of the GNU General Public License as: m$ Z! p" S" v- L$ I+ D! V' S' \
  17. * published by the Free Software Foundation version 2.
    " B9 W$ ^- i. {* }" R9 c! I
  18. ** v3 T9 L) T3 t, v6 Y
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any+ i7 Z+ [* ]8 S, t6 ^
  20. * kind, whether express or implied; without even the implied warranty' M+ @8 O2 X3 X. F) u/ J" Z+ E) Z
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    " J- M$ F  y. a
  22. * GNU General Public License for more details.: o* |7 V5 O  E- N! s
  23. */
    / @, z' c8 Z6 J

  24. 0 m9 ~# `; L. q- s) M
  25. #include <linux/module.h>- Z7 s: Y2 \0 x6 i* P% P
  26. #include <linux/init.h>
    # A3 Y& K2 P; n
  27. #include <linux/errno.h>
    + G& g$ l) j+ i  H) A& ~
  28. #include <linux/types.h>8 D  j. [# _% X; X
  29. #include <linux/interrupt.h>
    0 Y- J! d& S! j# @) y: }5 ~
  30. #include <asm/io.h>. ?" C- N2 k+ }3 y1 K$ n
  31. #include <linux/moduleparam.h>
    $ S$ o  w) f( S  P4 ^! Q! Q
  32. #include <linux/sysctl.h>
    . x' a  _! P7 o
  33. #include <linux/mm.h>
    4 ~% \" b  u- U  H
  34. #include <linux/dma-mapping.h>
    , F, w: L7 N+ S9 V  E* I

  35. $ w, k' u8 U% J
  36. #include <mach/memory.h>1 ]3 D5 n/ k% r8 |8 o
  37. #include <mach/hardware.h>& [* B- d4 M! d
  38. #include <mach/irqs.h># F% @+ r9 `( Z1 T4 {5 t  K- I
  39. #include <asm/hardware/edma.h>
    , i1 z/ `9 F) e/ h7 s

  40. 0 B; B1 Z7 h6 v8 R" c" ]. I
  41. #undef EDMA3_DEBUG
    5 v/ H2 o6 }6 D! C. d& z
  42. /*#define EDMA3_DEBUG*/
    9 U0 Q8 s( w; a! G1 N: i
  43. $ P% X% v" \6 t" c, L3 j* m6 Q% C; i
  44. #ifdef EDMA3_DEBUG
    $ W1 s8 \7 y8 ^$ O0 e9 F
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)  h. F7 T9 e5 t6 ]) `: Z/ X
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)9 ?/ r7 m: P. ]+ B
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    + O; f9 y0 R2 |% F2 h  {, Q4 ~
  48. #else
    + j: D6 ?/ |% A+ ]5 O$ w
  49. #define DMA_PRINTK( x... )
    $ v" F* e: F6 @4 E3 u
  50. #define DMA_FN_IN
    8 L5 ?5 C- P$ v& |6 C! \
  51. #define DMA_FN_OUT# D. n; E3 X) z0 f; U4 \; t1 ^
  52. #endif: t; u) s3 h: n: h

  53. . n9 C- J' k; |* ^# i
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    ) o1 b+ U" l* @. s. k3 {: w1 a
  55. #define STATIC_SHIFT                35 y; o/ r6 N! Q
  56. #define TCINTEN_SHIFT               20) M* ?, Z9 {0 X9 W4 e8 {, t& c2 {# P
  57. #define ITCINTEN_SHIFT              21- L6 K6 \, B0 Y* d1 i
  58. #define TCCHEN_SHIFT                22
    ' x4 s7 {  Q4 a) Z
  59. #define ITCCHEN_SHIFT               23; I" A  q. ?" A' @: y
  60. + x, A: f0 q: x. b
  61. static volatile int irqraised1 = 0;
    5 Z0 m5 E; ~0 H+ O: r5 Q
  62. static volatile int irqraised2 = 0;# y- p) M5 j0 v: I- W# Z0 M
  63. - s. L1 |: S4 V; a
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    # U4 N) Z6 r: n) J0 y* P% v
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);% [& G' \( t" N
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);! B' p% O, X# k) r2 n, d- s/ {; G

  67. 8 q- S8 {- s4 w/ c
  68. dma_addr_t dmaphyssrc1 = 0;
    * e1 ~" f; G: e
  69. dma_addr_t dmaphyssrc2 = 0;
    / z6 a7 k3 G: t5 D( a
  70. dma_addr_t dmaphysdest1 = 0;
    9 R# k% T3 g/ u! A5 d/ W
  71. dma_addr_t dmaphysdest2 = 0;& P! V) r" I" o7 ^1 M

  72. 3 n1 A. i( @2 p  h! X- D. j
  73. char *dmabufsrc1 = NULL;
    ' m. S( s7 ~+ n6 P8 v
  74. char *dmabufsrc2 = NULL;) n5 W: r% X& u# P
  75. char *dmabufdest1 = NULL;7 u1 X+ C  h" C+ I& _+ V2 E' {
  76. char *dmabufdest2 = NULL;
    3 ~6 y+ {& U5 @( E6 w3 C
  77. / s- r0 f: I' W" w. A
  78. static int acnt = 512;! P( a  [0 c9 H0 }+ x* J% ]3 H
  79. static int bcnt = 8;6 P- I' C/ P5 k: j8 G+ W  Y/ o- }, f
  80. static int ccnt = 8;
    9 e1 v5 Y* F3 G

  81. 4 {+ Q1 I) U" T8 q
  82. module_param(acnt, int, S_IRUGO);
    " K( g$ u0 f. I2 F
  83. module_param(bcnt, int, S_IRUGO);  t7 U. Z- d2 D  i7 g0 I' l
  84. module_param(ccnt, int, S_IRUGO);
复制代码
8 ~# C+ X' u! g) N  |( \3 _

7 E3 M( `) }9 d( B/ z# O      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用* q' }% v) K$ 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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
- P3 u- a1 j0 ^. x* W) C2 r/ e4 T     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
' N5 _8 c) m' A5 k. `2 P/ ?4 k6 \
6 Q' K1 k  j: ?) C# D( Z
9 U/ R) \" n1 r, N6 K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-21 00:00 , Processed in 0.305239 second(s), 74 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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