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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 * D5 B8 g% F) \0 z9 v
  1. [code]EDMA sample test application
    3 m; S, v) k! v( ^/ o
  2. /*
    ' H: u, R) j& k; z- r& p
  3. * edma_test.c
    0 o% c( ^6 S. p6 g
  4. *
    " @6 e4 V1 a2 `( d7 @7 [4 `8 }
  5. * brief  EDMA3 Test Application
    % m: F. T" q3 j! d
  6. *# z8 k$ E# J- I% i& l
  7. *   This file contains EDMA3 Test code.' z8 |$ j5 x5 f/ ^9 [5 p6 P
  8. *
    3 ^& n( ?  c  N! t& Y
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE% ?% H; }9 `' ^4 G" k  ?- y& f
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT1 v0 m' J, ?" T. ~& e
  11. *         TO CHANGE.( \& W& e; {( K1 I
  12. *
    : g' W) U! {/ ]. l) b$ a  j
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com// j+ K; G: O: y0 Q
  14. ** I2 r) H- L$ R
  15. * This program is free software; you can redistribute it and/or( E* U0 S. x% e. ~9 V5 w- h
  16. * modify it under the terms of the GNU General Public License as$ A' N5 C6 y, ?8 T5 z) s% C
  17. * published by the Free Software Foundation version 2.
    * U  S2 {) ?' A' n
  18. *3 E2 R# M/ n* G2 b! E
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any6 o1 R. [6 {/ Q, v2 f+ B
  20. * kind, whether express or implied; without even the implied warranty
      _( h# h$ C* Y. {! }8 k1 j6 n- E
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    8 M: ]8 h" l$ v" p# @7 p, R
  22. * GNU General Public License for more details.
    : B! s0 s2 F8 @" O. F& T" u, t3 f4 P
  23. */, c% T1 d! C9 h. I' G- N! O
  24. , n: c( X2 s- T5 `9 L) J+ m
  25. #include <linux/module.h>
    . j7 c5 A; o4 ~- A
  26. #include <linux/init.h>3 g  t+ |+ [- F: }, i4 z: B; a
  27. #include <linux/errno.h>
    6 @' n! h0 Y' R' Z2 ?
  28. #include <linux/types.h>6 @; E$ W% c; R9 Y$ H5 T
  29. #include <linux/interrupt.h>
    ; D1 ^" q0 D; e; n9 v$ C5 s
  30. #include <asm/io.h>
    ' C; ?, m3 ~: a: m
  31. #include <linux/moduleparam.h>
    - H1 @* z1 z$ V
  32. #include <linux/sysctl.h>
    $ g, C5 x/ z$ w
  33. #include <linux/mm.h>3 s, g, n/ N! T" w+ O7 T1 g' ?6 U
  34. #include <linux/dma-mapping.h>
    4 {2 E) C. V7 d6 R
  35. ; |- [' y7 n! r/ ~% B+ U/ B1 W; h% y( b
  36. #include <mach/memory.h>% I+ ^$ o- \+ E' z
  37. #include <mach/hardware.h>2 D' w: _9 X0 O9 L) X
  38. #include <mach/irqs.h>
    : p8 @) Z9 T6 ^( S2 J
  39. #include <asm/hardware/edma.h>
    ) `: Q, s4 Q  h+ u+ U' D: J$ y

  40. * \' q, R4 F) Q+ \' G% K3 e5 V
  41. #undef EDMA3_DEBUG; H9 k# ]7 q0 M: M- a8 ?1 \
  42. /*#define EDMA3_DEBUG*/2 t9 _: V* D" d- e  r

  43. - v# Y( h5 _% a  M
  44. #ifdef EDMA3_DEBUG
    - P5 b6 T% r2 L2 u" b8 p. I/ o
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)4 ^8 G- j4 y& e# Z* r
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)# q) x/ U  m$ P5 q" e8 I* n
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)+ ^+ u' Z2 o+ }+ A/ B5 u
  48. #else
    - ?+ M) A- \* P0 f+ Y  B
  49. #define DMA_PRINTK( x... )
    : E. C5 l; E# H$ u; n
  50. #define DMA_FN_IN6 T' H4 Q$ }0 `  z7 J
  51. #define DMA_FN_OUT
      K+ h/ k" v' H
  52. #endif1 i" o% V2 c) ?9 F' Q
  53.   k" q0 m( z! A3 j6 e
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)- E, P; ?! C% A) X( l/ ^
  55. #define STATIC_SHIFT                3
    0 z0 g) L, T. N. `. y
  56. #define TCINTEN_SHIFT               20$ {' S0 u4 c) V# Y1 R2 b& x
  57. #define ITCINTEN_SHIFT              21
    ) D' m# J9 L. r5 B8 R- ]( S' }
  58. #define TCCHEN_SHIFT                22
    ) m# U7 r# Y# a& c+ d6 q8 a
  59. #define ITCCHEN_SHIFT               23* v! }: L# ]7 c' Z# W# o9 w: n
  60. / Y. C& s9 p7 K$ o1 `
  61. static volatile int irqraised1 = 0;% d8 F/ E9 }, B4 z1 q! k0 g
  62. static volatile int irqraised2 = 0;/ F4 t$ L; n& g" m3 F! r8 A

  63. " c; p- q  ?; I' L7 M2 p
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    & n8 P0 ?" Z+ A+ x
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);8 @! i7 M- x! Z0 e$ o" P
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ' p3 H% O0 o2 K1 I1 F

  67. ; x9 V0 p2 _; F, `/ R* N3 \
  68. dma_addr_t dmaphyssrc1 = 0;
    1 S# O$ f! r" G  Y( I& A
  69. dma_addr_t dmaphyssrc2 = 0;; ]& P: H4 t- z5 h( g
  70. dma_addr_t dmaphysdest1 = 0;
    8 D( R3 r' E  `
  71. dma_addr_t dmaphysdest2 = 0;
    - L/ g0 f0 ]3 i

  72.   Q5 ^9 u( e/ w) R! f6 J
  73. char *dmabufsrc1 = NULL;' G; X* m. D) o& j$ o0 ^
  74. char *dmabufsrc2 = NULL;
    6 F; I8 ^) I; `
  75. char *dmabufdest1 = NULL;: b6 k4 Y' H, |0 s
  76. char *dmabufdest2 = NULL;3 k. J9 [  X% H

  77. 2 V5 r  k0 H( Q& }0 a* T: {
  78. static int acnt = 512;3 @( w5 ~1 m7 J, ^5 u- q
  79. static int bcnt = 8;
    3 z- r! d" V3 I; z. w
  80. static int ccnt = 8;
    , K3 `- B% Z% o2 o6 X1 A+ ~

  81. 7 K: ]- T8 U, R# `$ t$ }% {2 U2 k) }
  82. module_param(acnt, int, S_IRUGO);
    1 U3 ~4 ]6 ]1 w: S9 S" a' K2 O' D
  83. module_param(bcnt, int, S_IRUGO);- s  q% u! E1 v+ i3 z) k" O  M
  84. module_param(ccnt, int, S_IRUGO);
复制代码

. [# K' }  q0 N8 [$ `  o1 V* n4 |. J+ T2 m3 H
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
7 @( |/ Z. j- z3 x- I' {- G% S9 h, yarm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。2 g$ i7 {2 `- G* `
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。5 n1 b5 ?2 B* O4 K% Y0 J

$ A! Q# T/ |7 Y0 e: p  d5 A; U4 w1 |$ [4 Q' z# W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-22 06:26 , Processed in 0.039492 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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