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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 5 `7 R2 N& H  J1 A' u9 }4 W2 t3 i
  1. [code]EDMA sample test application: T& J5 n: {( s/ C
  2. /*
    2 x# C3 ]( r) v4 z; F2 g2 b  A
  3. * edma_test.c: D: c* W7 x. i  R! ]1 Z
  4. *
    8 e: h$ Y. ?: d. J8 s( B; t
  5. * brief  EDMA3 Test Application
    , o/ C2 f) Z+ P5 |7 W5 ^
  6. *
    0 N3 V  B1 z& z! s( X% [
  7. *   This file contains EDMA3 Test code.
    7 z$ O7 j! m. Z5 b: t
  8. *8 c1 o* l3 T# s, O) D
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE/ |/ D5 E0 f% H- H8 j
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT3 v1 I+ H, T4 ]. C5 s. @% c5 d; O; K1 D
  11. *         TO CHANGE.& w0 a0 C) n5 r" F
  12. *
    ' o% r. n+ x# H4 F: P
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    7 w: v3 A9 t1 W/ z) Y( L
  14. *
    + L# Q% f4 m/ _( k) T; S2 v8 T. {6 ]+ {
  15. * This program is free software; you can redistribute it and/or
    $ i0 V6 u- f2 {7 k4 d5 C( p" I
  16. * modify it under the terms of the GNU General Public License as. T3 z# ~7 ^1 N# @9 j/ n$ R
  17. * published by the Free Software Foundation version 2.
    . w4 Z% p# d" o8 C+ S/ G
  18. *7 L1 S" ~6 V$ f+ o. x2 E4 G) E
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any: N! {# f( S& h  D
  20. * kind, whether express or implied; without even the implied warranty
    % H, C% @& V7 o: i6 c! j8 A
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the4 x0 s- G3 c  Z3 k; m$ W, O5 E( |
  22. * GNU General Public License for more details.5 Q+ ~, x8 K6 }8 t
  23. */* C# N0 ]! R4 [6 y# Z

  24. 5 V$ B! Y% d7 I2 N
  25. #include <linux/module.h>+ H8 [; Z: k: b2 a! Y/ @& q
  26. #include <linux/init.h>7 F) f) }9 l( b( y5 C+ z# g
  27. #include <linux/errno.h>
    ) z4 Y6 h' y) Z& ^, I/ N3 X* C
  28. #include <linux/types.h>: A" q4 i( @# {6 {6 P+ r1 t8 S
  29. #include <linux/interrupt.h>( @' \# I6 ^. N- b, z- }9 w
  30. #include <asm/io.h>
    % h% B7 ?1 \/ P/ K5 d
  31. #include <linux/moduleparam.h>
    $ S8 G' R1 h2 }
  32. #include <linux/sysctl.h>1 n6 L* m8 d+ q1 s: T4 K8 n* i5 I
  33. #include <linux/mm.h>
    $ [  p  j+ w& _' U, y
  34. #include <linux/dma-mapping.h>
    * D  V3 N1 E& @! w9 a9 o
  35.   n0 J2 G3 y; T$ A" E# f' H
  36. #include <mach/memory.h>3 g4 S- Q6 ]2 D! x& p4 \
  37. #include <mach/hardware.h>
    ! Y" i$ G2 C, W/ g, L" C5 \& m# X
  38. #include <mach/irqs.h>4 z, M6 T8 b7 C1 E" W
  39. #include <asm/hardware/edma.h>
    8 `+ |9 |& i- w2 A, x+ l4 L

  40. * m5 H& y! R: |- b5 h. o  j
  41. #undef EDMA3_DEBUG
    4 Z3 h8 I" _+ l# k9 Q: x& H
  42. /*#define EDMA3_DEBUG*/
    0 D0 l0 q  s8 `, q+ O

  43. 0 n# R/ @9 Q3 G! v2 U
  44. #ifdef EDMA3_DEBUG
    ' O8 |! Q$ M. `6 ?8 W: s, g8 A, c
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    1 f) e/ T; ~7 I4 B. _* I6 w0 J* l
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    2 x' k( \2 o' w* b7 m
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    " Y) b) L9 o. ]: C+ l# D. i; ?
  48. #else
    " Y+ U: b) l: ?. D+ x
  49. #define DMA_PRINTK( x... )+ `, _: K4 x9 o4 j
  50. #define DMA_FN_IN
    ) M* O9 e$ Y2 B& G: {  S1 M
  51. #define DMA_FN_OUT
    0 P, q( q3 _, O4 @. X
  52. #endif
    ( z* W$ c3 p7 y4 ?! }" |  s2 w
  53. , J! d( ?" Y7 t
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    . c, ~' v" C" @  W; i
  55. #define STATIC_SHIFT                3
    , w2 x% @( j& Z6 e3 [5 U1 d
  56. #define TCINTEN_SHIFT               20
    6 z- R0 J, j& x
  57. #define ITCINTEN_SHIFT              21
    & e. S$ S1 k5 ^, ^* W7 A
  58. #define TCCHEN_SHIFT                22' y7 p, ?% Z  u" H( E0 C* E1 I
  59. #define ITCCHEN_SHIFT               23
    " P9 I9 K2 i/ P  h9 w
  60. % s9 u$ z3 b& Q  K/ B) \; K
  61. static volatile int irqraised1 = 0;
    " @9 |% t+ l" K1 t
  62. static volatile int irqraised2 = 0;
    $ N9 b$ J6 A8 i: d: M* S% h
  63. / T6 y1 k5 ^! J0 H
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    # [6 ~% j- Y/ {9 j6 y1 g
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);% Q- ~* L: h0 ^' H' u! ~
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);: ^: d9 ]) ^& ]; K2 s1 Z& |

  67. # r; d3 X/ A- Y1 e
  68. dma_addr_t dmaphyssrc1 = 0;  @3 `- P1 @/ T6 l6 ~6 C3 W
  69. dma_addr_t dmaphyssrc2 = 0;
    ! A& |( X$ d% w7 F; z) o0 n
  70. dma_addr_t dmaphysdest1 = 0;" T" B3 G4 E* H) L. D6 X' E
  71. dma_addr_t dmaphysdest2 = 0;+ u4 ~, S/ i$ W
  72. 0 g4 h# B' C$ I# Q/ T
  73. char *dmabufsrc1 = NULL;
    * I/ V4 |# J- q* u8 v% f; A3 R
  74. char *dmabufsrc2 = NULL;
    ! N  L0 ?( W  O
  75. char *dmabufdest1 = NULL;
    7 @# {  p& [9 h; K# `+ N5 I
  76. char *dmabufdest2 = NULL;
    5 Z- g9 Q: ^$ |8 U+ C

  77. 8 m$ D# Z$ y* T5 z& ?. _! q
  78. static int acnt = 512;8 E, J0 r+ n! m; c2 B) R
  79. static int bcnt = 8;2 U( a" ~- A$ n9 g& @& [
  80. static int ccnt = 8;
    + u+ |+ c( w6 @( O5 b

  81. 7 q& [4 P% o0 _2 z4 S
  82. module_param(acnt, int, S_IRUGO);
    ' y9 @/ E( K, _& P( v1 J/ P
  83. module_param(bcnt, int, S_IRUGO);6 f! J. R  h7 z' j
  84. module_param(ccnt, int, S_IRUGO);
复制代码
9 R: m! m4 c+ C9 l2 f# P1 V

+ I6 i1 k: }, ^1 V$ h3 x- ^! K- e; _      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
1 I* c. M! Q1 `4 N! K0 R5 {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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
0 P- L0 h  [: A" y: F* C     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
3 b& |* t2 O  J9 ]) H' s
4 u: m' K2 u* H! c/ H& `) s) I
: j* K2 J3 G" o& u+ h) o! Y+ \  `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-7 15:09 , Processed in 0.036898 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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