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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 / i1 s5 z! G8 T, }, t
  1. [code]EDMA sample test application
    : J7 @. w% J9 V: G% W/ V5 V
  2. /*
    8 k2 n  C- U3 Z. G2 ?
  3. * edma_test.c3 {: b$ d9 M0 J$ k  I/ ]4 M
  4. *
    7 j9 S) \& k% Z+ [! k8 H
  5. * brief  EDMA3 Test Application
    8 a4 S+ K. T1 {2 Y0 a
  6. *
    2 q. W$ C: K4 ~5 H8 o) {
  7. *   This file contains EDMA3 Test code., H% F; O- b) @
  8. *! a$ Q7 S8 A6 L+ ?# n$ L
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    2 A5 W5 ?% w4 u
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT) X3 u( v* Y( C+ b, x8 ]* d( u
  11. *         TO CHANGE.
    ) X) q, E3 [6 t4 q. ?4 I4 _' t
  12. *
    . N! K* a9 \6 l' O& \" w9 w# ?7 ]- S" ^
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    6 G& z) P2 o4 ?/ p0 v- a# _
  14. *  \" g( m+ o, I5 Q. o
  15. * This program is free software; you can redistribute it and/or
    8 ?6 h& J* ]6 c! q6 n, z
  16. * modify it under the terms of the GNU General Public License as
    ) j/ O& H+ d% Q% p/ i6 H
  17. * published by the Free Software Foundation version 2.. S% d" v1 G' J9 F' J
  18. *$ a- C  g3 P# [( |( o; H" x/ ]8 r
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    7 X- Z! Y$ S( \! H( v% `
  20. * kind, whether express or implied; without even the implied warranty
    ! V' l' x' ~- E5 Y* b) ^
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the3 u/ V, Q' I9 C/ G1 |. j
  22. * GNU General Public License for more details.8 A/ b" v% ?% }! d0 J2 Y1 r) C
  23. */
    # _! J% v. {# ?  S" y

  24. 0 r1 F. U# N; |
  25. #include <linux/module.h>& n) D' @+ V. j! G6 B
  26. #include <linux/init.h>6 [/ J0 l% k0 R- O0 o8 b3 J
  27. #include <linux/errno.h>2 s5 R# G- Y) l8 U7 _% R. Y
  28. #include <linux/types.h>) y) B" U$ ]7 r: i: r4 H
  29. #include <linux/interrupt.h>( u2 c& V7 ~1 I* Y* x* x8 W) k
  30. #include <asm/io.h>0 a, x1 W, V1 q' m
  31. #include <linux/moduleparam.h>
    # U6 I; H; D# w6 P" x# n* B
  32. #include <linux/sysctl.h>( R1 s1 E2 Q: L/ K1 b) p
  33. #include <linux/mm.h>0 o0 c8 \* M. e. Q' k
  34. #include <linux/dma-mapping.h>* b' A& f( a, H5 G% o
  35. / A5 \7 a' R0 ~5 }
  36. #include <mach/memory.h>& }8 W' R2 I' R  o7 n8 ^$ r' N- G
  37. #include <mach/hardware.h>( c% Q+ `4 i2 X) \
  38. #include <mach/irqs.h>- P0 Q: v/ T$ b& B9 `) }
  39. #include <asm/hardware/edma.h>( F# T( {' Y- c6 ]. x) N+ f  E4 H
  40. / B+ N; T5 q3 w
  41. #undef EDMA3_DEBUG
    3 n3 u( t$ t0 y: H" F; t
  42. /*#define EDMA3_DEBUG*/
    * C# R6 J& U- P4 [8 e
  43. : a; d) s; s( F' U1 l5 z
  44. #ifdef EDMA3_DEBUG
    9 g  m/ R! E& ?
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS), g# ~/ s1 a  ~7 e
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    - V) k! o/ j+ o
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    1 c9 x; v) O3 \1 S: z# u
  48. #else, T# C7 ^# n8 T3 G4 ^9 Z
  49. #define DMA_PRINTK( x... )
    ; w, A, h  O0 ^$ t! _  t
  50. #define DMA_FN_IN
    . q3 {& u( ]* Q0 r; K2 D
  51. #define DMA_FN_OUT
    % n6 X+ F3 [1 Q
  52. #endif
    1 C" K; U, w9 }
  53. ' _5 z$ k% t* e! K. \
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    0 D% c! U! X4 l9 `2 V9 r, L+ U
  55. #define STATIC_SHIFT                3: J. k, y& \, H/ X* @, j4 a
  56. #define TCINTEN_SHIFT               20; z* P- k; l2 X6 {1 T6 Z+ c* s& s, c
  57. #define ITCINTEN_SHIFT              21( P) t" ]3 Y- l- `& N- ]
  58. #define TCCHEN_SHIFT                22& h! J. S# ~9 d& u- t, X
  59. #define ITCCHEN_SHIFT               23# X8 h' ~- k4 J$ q, H

  60. 1 d5 _; S! R1 ^% I! s. T& J
  61. static volatile int irqraised1 = 0;( k$ n3 M* h1 x5 ?
  62. static volatile int irqraised2 = 0;$ w8 u5 A5 K# {- P+ s7 G" w4 d9 |% C

  63. + u  u5 t4 e0 s4 g4 z' r. P& b
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);: P8 T6 i/ l8 ]/ z  h1 ^  j7 @
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);, o9 a$ v0 ?) j3 `" a* U, g$ m# h8 h
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);6 n1 m2 z5 R; [$ A  U8 P7 I
  67. . |4 M& J- i( p2 |: C
  68. dma_addr_t dmaphyssrc1 = 0;% d4 E# V( ?% T9 t% }9 Y" c+ ?
  69. dma_addr_t dmaphyssrc2 = 0;
    ) X, Q. v+ ^/ R2 n% N
  70. dma_addr_t dmaphysdest1 = 0;
    + z5 V! V. k6 F  G
  71. dma_addr_t dmaphysdest2 = 0;
    4 x- A' Q; r; e3 r$ j
  72. ; m5 U' u& [2 T. @1 U; S0 b
  73. char *dmabufsrc1 = NULL;2 Z% a, V) a, u
  74. char *dmabufsrc2 = NULL;7 D! F( F) Z- p6 j
  75. char *dmabufdest1 = NULL;
    4 z4 r, y4 Z: A% ^
  76. char *dmabufdest2 = NULL;2 F) b; _2 l1 C  j) f9 S

  77. . U1 W1 H! I' R- s
  78. static int acnt = 512;. I/ m  T* h( Z. [7 p2 P9 e
  79. static int bcnt = 8;
    7 R$ G& ~) Z5 B
  80. static int ccnt = 8;
    $ C/ ]: \1 @9 ^) M/ x

  81. 2 C0 }* G: H* P& O- M5 y" a
  82. module_param(acnt, int, S_IRUGO);+ h, u: @' S/ U8 g+ |8 m
  83. module_param(bcnt, int, S_IRUGO);
    ! S, B8 e5 v" W* W
  84. module_param(ccnt, int, S_IRUGO);
复制代码

; W0 ^9 J5 K; n4 U3 x! }& e, s8 o
  p9 R3 x$ K2 @$ ^6 o3 Y      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
+ ]+ M3 z! ~' earm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。9 v8 i) L% H8 ?
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
1 j7 j! S7 W2 t
9 W) d* ]) A- _2 y/ V1 x; y+ r& j- X& }3 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-11 13:30 , Processed in 0.039703 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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