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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 . P0 D* H# V  K/ H- V: O
  1. [code]EDMA sample test application0 y3 m9 }  u  c' p
  2. /*
    0 q1 `# D+ R3 @9 A) z3 y$ M$ o
  3. * edma_test.c- m0 Y4 Y8 a. C
  4. *
    ' a6 v+ q5 I* n
  5. * brief  EDMA3 Test Application$ j1 L5 @$ I" S9 k+ v
  6. *- C' M4 R# Q, Y6 a; s: S
  7. *   This file contains EDMA3 Test code.& i* j8 S/ O: B& O; U: S+ U
  8. *' _/ X5 A; g2 o% B" W- W4 z$ A+ [
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    ; A7 R! d8 w6 \" _. \/ a6 Y; L
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT0 D& O" S* F* v
  11. *         TO CHANGE.6 S( g& n$ p3 h) ]: ~  I' `7 I
  12. *! p* T. Z- v3 ~: M0 l( p! X. Z* j
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/; p- r; G: T2 m5 v
  14. *
    & P* f1 Q# Z; M3 T( O, s
  15. * This program is free software; you can redistribute it and/or
    ) `5 f* Y: Y( t( s. G1 C! W$ _2 {
  16. * modify it under the terms of the GNU General Public License as6 i# M8 S; N1 t, |/ O7 V
  17. * published by the Free Software Foundation version 2.
    ( F1 O( {) p% p. h9 C" p
  18. *: l- s- F& w: o! y
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any" q" s0 ^! ]" B8 A( x& D$ K; l
  20. * kind, whether express or implied; without even the implied warranty3 U6 }0 g+ ~. T* {9 O5 o  ?# \
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the. K1 }# U) s) A4 F
  22. * GNU General Public License for more details.% X1 g  y/ w- f% I+ Q- C
  23. */
    7 b+ l  i3 N2 Y0 L4 F- U# H

  24. - c* w% ?% N' D4 N; Y% Q
  25. #include <linux/module.h>
    : Z; h2 U. [4 L+ a
  26. #include <linux/init.h>2 h  `: p6 X% B  m- w$ Y) h0 k
  27. #include <linux/errno.h>
    5 i7 ~3 e+ e8 E  X
  28. #include <linux/types.h>
    5 D, Z* Z: h, I: b/ V
  29. #include <linux/interrupt.h>8 b6 f) P5 Y5 \, K0 k5 w
  30. #include <asm/io.h>! }5 a/ p# V6 t% t* S2 f$ t+ Z
  31. #include <linux/moduleparam.h>1 s, w. l* R  ~5 S) O
  32. #include <linux/sysctl.h>0 b, c# i  K" v
  33. #include <linux/mm.h>
    ( w! q6 q4 c: w7 b- s4 p  @) J
  34. #include <linux/dma-mapping.h>
    ; K# p6 f9 {7 o5 @4 W

  35. $ O, Q  D# k. p- I* [' w; e
  36. #include <mach/memory.h>
    1 F4 ^; K' I( [" T
  37. #include <mach/hardware.h># u& s3 M5 F/ e% L( b
  38. #include <mach/irqs.h>+ f# k+ B' R" S4 K6 m8 @) ~! ~  `
  39. #include <asm/hardware/edma.h>& }; ?  T7 H- P

  40. " y% @# R/ B( Z
  41. #undef EDMA3_DEBUG. W- l/ }/ T$ v5 Y' r& ~% V
  42. /*#define EDMA3_DEBUG*/
    1 E& p  d3 O7 l% F+ |

  43. ' I' x- I% t& h. n
  44. #ifdef EDMA3_DEBUG
    8 H% v% K3 \7 k7 ~9 o. F* d
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    7 O# E$ x9 z6 }# d, O, S; h
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__), j5 O0 r7 U9 N: u
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)6 f, q' m/ I& ?
  48. #else, M' a" E( \# z7 E& A
  49. #define DMA_PRINTK( x... )
    . f1 ~' e" x3 g1 r+ V3 v1 r
  50. #define DMA_FN_IN
    ! m, @& b3 O% _
  51. #define DMA_FN_OUT  D! b$ [$ t+ l7 ?2 O7 N: l
  52. #endif1 _% e9 A# m3 j$ ?$ u
  53. 1 E" z$ A+ ~+ F3 j% ]4 L- `5 v
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    " s0 w% T1 u% \3 ]5 |0 o" i! a
  55. #define STATIC_SHIFT                30 _( w3 A) O( q& ?, x
  56. #define TCINTEN_SHIFT               208 `* Y8 p! M9 X- Z2 [4 p
  57. #define ITCINTEN_SHIFT              21
    # J8 v  M! ^- k2 F& k1 I
  58. #define TCCHEN_SHIFT                22
    * x7 ]+ ~: a& k7 @+ H0 Y
  59. #define ITCCHEN_SHIFT               23
    + p9 B' j* R0 F4 n7 R" a, W8 M! y

  60. # Q! S/ J) x* P  M7 T/ y$ e
  61. static volatile int irqraised1 = 0;
    / X2 I& |3 j# `1 p' H, R
  62. static volatile int irqraised2 = 0;
    , F/ a4 }( O0 U: }; P* A+ z

  63. " j+ o. F# [! ?
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    4 ^' i9 x8 }& M7 x# p
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);& d: R1 }; J' r
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);8 y" t/ D3 o: }/ M, l

  67. 8 }) y: Y8 G, b  x# U0 s
  68. dma_addr_t dmaphyssrc1 = 0;
    ( t4 Y) [+ S1 p( `+ J% s& v0 T% {
  69. dma_addr_t dmaphyssrc2 = 0;
    9 B% [: M! |2 d2 }8 M3 I
  70. dma_addr_t dmaphysdest1 = 0;
    8 O/ \# e! `# M: q2 Z! W9 l
  71. dma_addr_t dmaphysdest2 = 0;
    $ F/ c% `9 T! i7 f
  72. ) v- T( D. K, b2 a
  73. char *dmabufsrc1 = NULL;
    6 p2 h: p. }7 r, l
  74. char *dmabufsrc2 = NULL;. i9 l2 i/ [' E' n& _
  75. char *dmabufdest1 = NULL;, I, C( B; E. N. t' b% f
  76. char *dmabufdest2 = NULL;
    : @, H) P2 \( F
  77. 8 J- |# r& M3 E& [" e7 O# k
  78. static int acnt = 512;
    / H7 @! ]! Z: l' o1 x7 ~- n
  79. static int bcnt = 8;
    * o7 D" a# p3 k6 i/ k! h3 X3 k% G
  80. static int ccnt = 8;- N5 Q2 X# u. g; ?- q1 o8 k# w
  81. : B1 y1 K0 q- _
  82. module_param(acnt, int, S_IRUGO);
    8 l5 V1 ~. _2 P& {
  83. module_param(bcnt, int, S_IRUGO);
    * k$ W. Q# I( K! Z
  84. module_param(ccnt, int, S_IRUGO);
复制代码

! w1 a: l6 d, o1 J4 T. i5 _4 s& M! c* \3 E7 |) G9 X
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
/ ]; H4 m" E/ Q5 I! 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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。! `( Q- O  U! W1 S7 h+ S
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。5 X) c3 C4 }  l
. ]8 g7 m4 z2 N4 A' D

7 P. Z3 ?; i' g7 J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-15 15:48 , Processed in 0.042103 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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