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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 ( k- z2 u$ v! p1 _& S( R( V
  1. [code]EDMA sample test application
    : G. Y0 `4 l% w; I7 X* @. t) E6 v
  2. /*
    " z8 B* l% s6 n& Y8 e
  3. * edma_test.c
    ; \9 S8 Q; [! Y4 y& @: L
  4. *
    , ~& K- C* p3 H* O; s# q
  5. * brief  EDMA3 Test Application9 |  p' h  J$ h8 C; C
  6. *
    ( {& G2 r/ t2 i) \. T+ Y) r
  7. *   This file contains EDMA3 Test code.
    ' w/ \  A4 C7 j  A! n+ l
  8. *
    8 q% _2 I, r: |. e5 M
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE! W- f6 i" R; N9 r/ Q) ~
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT+ C* i0 c/ P0 O% K
  11. *         TO CHANGE.
    # u2 P3 O. {/ X0 Z: W# I
  12. *2 c% O* R7 }* @9 q) z4 k: e
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/4 ~2 Y: z3 J: t. X
  14. *$ {6 e1 v; l7 u( j! p( \9 a
  15. * This program is free software; you can redistribute it and/or
    1 }) l% i1 t3 }2 N
  16. * modify it under the terms of the GNU General Public License as
    6 W: }3 X9 X/ Z4 ^2 S# |
  17. * published by the Free Software Foundation version 2.
    ; O% R! E1 C: W% w& Z. R
  18. *, O: G# [) o: k$ U2 O6 }
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any# }9 D5 {0 r4 h  @6 r
  20. * kind, whether express or implied; without even the implied warranty
    0 Q( l1 V% D% c' t" k- M8 ~* g
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the! t0 l; C' S5 d$ G8 G7 M
  22. * GNU General Public License for more details.
    + Q0 Z* |# V; u5 D
  23. */- F2 v! m; q! s  e" [
  24. ( o4 F* Y* R1 s- Q- Y5 ~+ w
  25. #include <linux/module.h>. h8 J' @  D$ s( [* y( y5 [% q: [
  26. #include <linux/init.h>
    ( b8 z5 W; N& R, W
  27. #include <linux/errno.h>
    . ~" X+ [$ s9 K* ]( h
  28. #include <linux/types.h>
    6 l# u$ D$ s! d! f& h
  29. #include <linux/interrupt.h>
    , R; B3 ~9 Y6 A4 Z; c" F& ~" W
  30. #include <asm/io.h>
    1 N( S0 O4 B+ t) z- g
  31. #include <linux/moduleparam.h>
    . `2 I$ q- a4 \
  32. #include <linux/sysctl.h>
    , e0 W' h8 f# Y. b0 E' K
  33. #include <linux/mm.h># p- d6 o& G6 n
  34. #include <linux/dma-mapping.h>  J5 J- ]9 ?8 J- j# a+ V* [* P; @
  35. 2 v  s+ u6 M, @6 T4 v
  36. #include <mach/memory.h>3 x! e% a: Q* N1 D
  37. #include <mach/hardware.h>0 J" g& _$ |3 y
  38. #include <mach/irqs.h>
      m3 H& R6 P; E# `8 K
  39. #include <asm/hardware/edma.h>2 y: K1 ]* O! N0 `/ V3 A; b

  40. 2 a. y. ?) C8 q4 x6 [4 G" W: l
  41. #undef EDMA3_DEBUG( Y5 F$ m6 ^" P3 R' i( E
  42. /*#define EDMA3_DEBUG*/6 D) p3 B0 l, R
  43. # h3 |- j8 A$ {5 W$ D9 ]
  44. #ifdef EDMA3_DEBUG
    - K9 a2 Q, q( x  s( _' Z$ a
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)) P( n1 S0 Y0 f+ [9 q9 }* N, t0 z
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)4 d; y4 N, Z4 x  i3 o7 }
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)3 `) G$ j1 A+ q& U$ }$ A' i6 }
  48. #else
    " ~: ]4 g' D1 I) E/ p+ n/ K
  49. #define DMA_PRINTK( x... )
    " e' B$ a$ a3 ~) l7 U. u9 D
  50. #define DMA_FN_IN
    " f) P; L. G/ }& L
  51. #define DMA_FN_OUT/ F6 F" F/ L( N: ]$ m( \
  52. #endif- v+ |- U0 C  [' S8 D& H

  53. 3 k/ j' E" g, p! g/ l
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)+ p, n, z0 E8 _( j# g' h- H3 c7 ^
  55. #define STATIC_SHIFT                32 ?$ D0 B7 B& ?4 C8 a2 h8 W' X8 v9 U
  56. #define TCINTEN_SHIFT               20
    : o) i2 `& h1 |: `8 w* v- s8 F$ T
  57. #define ITCINTEN_SHIFT              217 X4 \/ o/ I! D6 ?" R
  58. #define TCCHEN_SHIFT                22
    ! @8 O( b7 s) x: H
  59. #define ITCCHEN_SHIFT               239 k/ \* B! G+ Q8 R
  60. 8 ~4 B* |# T$ P4 k/ p( K1 p
  61. static volatile int irqraised1 = 0;
    # v# y% W" S/ ^+ D8 V" L
  62. static volatile int irqraised2 = 0;7 v7 \, i6 `2 I5 e. L, \5 {
  63. 6 E. j% L# I6 i8 @; {  Q
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    0 s; r4 f# ^. @! Q: L' {
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    9 B* |* J5 g( k
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    * A9 B7 m' N4 `+ ~0 I

  67. / S0 a% v/ J0 L' [3 T
  68. dma_addr_t dmaphyssrc1 = 0;, a: u. K* U4 z6 T6 [- Q- p
  69. dma_addr_t dmaphyssrc2 = 0;( C: d! o# s4 J" ]9 O
  70. dma_addr_t dmaphysdest1 = 0;/ w" J! n5 s+ ^  K9 v& g) q( x6 ~
  71. dma_addr_t dmaphysdest2 = 0;
    1 L. x# M( b0 U- [- X" {! ?
  72.   B8 _8 I$ F& c
  73. char *dmabufsrc1 = NULL;
    9 {0 g3 _: N  j* {* ?  W% h
  74. char *dmabufsrc2 = NULL;1 _4 A: U1 S1 K- q9 J
  75. char *dmabufdest1 = NULL;+ \8 z* M- o, S8 t
  76. char *dmabufdest2 = NULL;
    . a% |% o: i: l! k/ T1 d) l: K
  77. / }. m) L4 W- a3 ~1 }0 y9 {: m8 T
  78. static int acnt = 512;
    ! p  S! q! L8 t& a+ z0 \% y
  79. static int bcnt = 8;
    " F  u7 B' O- m# A3 A0 k
  80. static int ccnt = 8;9 C$ G1 O$ o! r3 z
  81. . J# i& n2 n$ y- W' G% v& Z$ p
  82. module_param(acnt, int, S_IRUGO);
    ( `- M5 {' I- S& k% S0 n1 {
  83. module_param(bcnt, int, S_IRUGO);
    : l; J: I4 t/ [$ W
  84. module_param(ccnt, int, S_IRUGO);
复制代码

$ x. U8 ~" g( X% U! {3 E9 _2 R  g  y' O
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
  w+ _- k  L6 K4 Tarm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。4 r# E$ u, M+ O3 X+ A  a: W3 m6 @
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。, z* `* y0 @0 V  o5 b
, X/ l8 \1 R: g1 o# M- `
* _) K5 P5 l/ Y+ u$ a1 ~+ m! B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-25 15:59 , Processed in 0.040469 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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