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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
; \  h: j2 P. z1 {# n9 W
  1. [code]EDMA sample test application. y& ~7 J$ F* d3 o% P
  2. /*2 ~1 ^5 X0 I% ]3 v  E# H
  3. * edma_test.c# d; A$ c' v/ m6 ^( F) v0 U
  4. *! n  v8 ~& Y) T# W1 ?# u, E
  5. * brief  EDMA3 Test Application
    / o8 Y) ^; m, ?1 ^# ]- z2 z
  6. *
    2 s' i& F  U9 k/ B0 ?, ~  H- R2 c
  7. *   This file contains EDMA3 Test code.1 i! n. t7 h4 u
  8. *- H% n0 C3 a" W7 k; _; S7 N
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    7 i5 w9 q* Y8 e. N' A
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    9 B/ @! Y" }% |/ [- K# D. x
  11. *         TO CHANGE.
    / C) T+ H& y2 n- P% X9 [& L9 }. _
  12. *, J" S" F  ]) D& x9 e
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    $ T) E* g* p  k& U( j
  14. *4 C5 P( b" i4 w6 _4 K& x
  15. * This program is free software; you can redistribute it and/or+ K, G) A- a% Y; r% S8 W, G. `
  16. * modify it under the terms of the GNU General Public License as
    4 g" X+ |( l/ J  s
  17. * published by the Free Software Foundation version 2.
    0 H! `8 x& D) C
  18. *
    ) B- {8 c$ H: ~& ^' Q
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any+ Z1 |3 ?* s7 [* H3 M6 Z! N
  20. * kind, whether express or implied; without even the implied warranty
    ! ?# w6 f0 m* x* B
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    ( r4 v$ N: ]( v4 `  b) K
  22. * GNU General Public License for more details.7 O% v6 s7 _# w  [. l/ U
  23. */, y: D3 A) z  }$ R. N' }

  24. & J( ]: Q6 A4 q8 ^
  25. #include <linux/module.h>
    " B. @* [" w1 Q! B
  26. #include <linux/init.h>
    * X( z  t) d0 Q+ B" A0 y
  27. #include <linux/errno.h>
    7 H+ `, H* a( ]' `3 O
  28. #include <linux/types.h>
    . e+ q& v. S( c; u
  29. #include <linux/interrupt.h>. ^1 Y2 }2 Q9 ~( y5 W5 I9 f# P
  30. #include <asm/io.h>
    ' b+ N* q. u9 w' C1 D2 g* c% T
  31. #include <linux/moduleparam.h>+ W' ~  U$ f; _) `% @  i# [9 h
  32. #include <linux/sysctl.h>9 P: D6 C' y/ x8 ~
  33. #include <linux/mm.h>
    9 v" w% L) v0 d, w( Y* T: P
  34. #include <linux/dma-mapping.h>7 `5 |# d' t* D& F, \7 d6 m( S) |7 P
  35. ) Q7 Q! Z3 j) h! w; W) U7 I4 B
  36. #include <mach/memory.h>
    ; q. m  m" o5 [2 y* g
  37. #include <mach/hardware.h>. ~# L) a8 |2 l. Y9 A
  38. #include <mach/irqs.h>( O& ^' H: L& b
  39. #include <asm/hardware/edma.h>
    ) k. r8 l6 H5 f8 L, }& c
  40. " a. \; v: t; {2 M1 n3 Y
  41. #undef EDMA3_DEBUG
    ' U* S& _5 O, A& y; w
  42. /*#define EDMA3_DEBUG*/
    0 ^& i8 D' a$ T! ~
  43. - B) Z9 H5 m7 v5 ]7 n2 ?+ V3 H
  44. #ifdef EDMA3_DEBUG
    9 U  Z$ o* d8 m6 \% s
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)# Z; ~- Q2 V, u9 J
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)# |% ~9 _3 e* R8 R
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)# U, n2 d! s- N
  48. #else& k0 U; T) i, t# E7 O/ t% ?9 G
  49. #define DMA_PRINTK( x... )1 v# S  P# Y7 ]2 S' F
  50. #define DMA_FN_IN
    9 ~+ Z4 r8 J' R. x& l
  51. #define DMA_FN_OUT
    8 k: |* _; o7 T! M* Q$ p
  52. #endif
    ! x1 L4 i& t- n/ o
  53. * I- w* s/ S4 b9 b- W+ w6 C6 t
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    . t9 M. @9 E8 V9 S. _
  55. #define STATIC_SHIFT                3
    ; h8 a$ u# ~' |. r5 \, H1 E
  56. #define TCINTEN_SHIFT               20+ Q2 U  t, C1 \: R6 {8 [; r/ b/ c
  57. #define ITCINTEN_SHIFT              216 t& p+ S% u& S% `2 g& b, J
  58. #define TCCHEN_SHIFT                22
    : f2 m1 D+ l4 W& s
  59. #define ITCCHEN_SHIFT               23
    ( x% S' r9 K9 \" a" W5 w

  60. ; v- y# m! f& V
  61. static volatile int irqraised1 = 0;
    3 [2 u/ ^7 T, Q. c) u& j8 u: j
  62. static volatile int irqraised2 = 0;
    6 _$ H  S' O( y% W8 Z' R

  63. . y8 y. B: v3 Q/ f& `4 q
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    $ {' x6 r1 X+ M1 r7 Z6 N3 j
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    9 X  F6 T' j& M. {
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);( K) H/ G( T  u, o4 ]5 D' s
  67. 3 G  [+ o  ^* ~# V8 b5 g
  68. dma_addr_t dmaphyssrc1 = 0;
    ) \+ o( A6 d. `% V3 }
  69. dma_addr_t dmaphyssrc2 = 0;
    $ I; n  Y) i# `+ q6 c4 Q# x/ E
  70. dma_addr_t dmaphysdest1 = 0;9 `  m+ i+ X* F3 L" ~4 \
  71. dma_addr_t dmaphysdest2 = 0;
    & I# z6 f4 J8 W; g; g/ K
  72. ; Q; E. @8 E5 C+ l
  73. char *dmabufsrc1 = NULL;
    0 O3 x. H* v' w1 }; X% b- m1 Y
  74. char *dmabufsrc2 = NULL;. F3 o! `( O2 }6 }0 R4 l
  75. char *dmabufdest1 = NULL;
    2 L5 l8 J9 u- k
  76. char *dmabufdest2 = NULL;
    $ p5 ~& _0 G% `: H& s* v
  77. 3 [  k' l8 H9 n' w8 D+ M9 D: ?
  78. static int acnt = 512;- W3 }+ ^" H4 c
  79. static int bcnt = 8;
    : u4 d: g1 O' }6 C% O% w
  80. static int ccnt = 8;$ ?( C5 N  w* [7 o& p% A
  81. + Y. W: i3 K* u3 W
  82. module_param(acnt, int, S_IRUGO);- r/ B" {6 B9 L1 G/ ^  \9 z( O
  83. module_param(bcnt, int, S_IRUGO);0 g7 R4 P9 S- b3 W# k
  84. module_param(ccnt, int, S_IRUGO);
复制代码
$ W& r# E0 s# O% `+ Z* L

' K- ]' M, ^3 M5 d7 x4 V% K      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
5 \% d0 _; r' O5 u) t2 g7 xarm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
* T% w, T7 J% b: o: N     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
6 E2 j# i) q* ^% M% [; C0 J% B$ A
  \  Q! w; p8 S7 z+ {8 |% x
9 @, v5 [9 C% A& ]5 A0 N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-5 01:27 , Processed in 0.040039 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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