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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
- M  z4 [5 M' o; ?0 y( o/ W9 K: M" |5 q
  1. [code]EDMA sample test application; G- h6 h! e. g& C
  2. /*
    " F/ u( ]3 S$ N8 k& P- U5 C% s  v1 Z
  3. * edma_test.c
    ; Y, ^. v5 f1 m" g  \* D
  4. *
    , C& A6 T& S: B* }0 v6 @
  5. * brief  EDMA3 Test Application
    9 g; U. T8 p! C! U/ G+ q
  6. *2 Z8 K+ ~6 B; j) A1 G% i& S
  7. *   This file contains EDMA3 Test code.
    3 I/ C! o3 \2 d8 w4 i  i* B
  8. *
    ; U5 @1 t( E! \3 ^  R/ t
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    0 F4 L- ~& k- q7 p# G
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    / Z' |' y( u( b) ~  D
  11. *         TO CHANGE.
    ! `: L: A4 o. E0 d: M4 x
  12. *9 q( g  Z. g9 A8 n# U
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/' K4 U9 I- _) \; b' M6 J" m
  14. *: e' W+ X$ Q3 `: C( ]
  15. * This program is free software; you can redistribute it and/or
    * h& ]2 ?* Y) O& X+ Z9 ~" u$ p
  16. * modify it under the terms of the GNU General Public License as
    + H% T- `, x+ P0 f  Z9 F( t
  17. * published by the Free Software Foundation version 2.6 E5 c  z( Y4 \0 c  K7 _6 u6 C# m1 A
  18. *6 O/ x2 o1 t0 u/ M& d
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any+ f& a- O: w0 m. V4 _4 V
  20. * kind, whether express or implied; without even the implied warranty0 G& Y1 m6 L0 ?( x
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the! j0 O4 R) B  G4 |
  22. * GNU General Public License for more details.
    ) a' |$ L( {; P% ?5 l6 }% q
  23. */2 T3 D& L/ d: h& F; A" Y
  24. $ x: |4 M; G( G! ^1 R
  25. #include <linux/module.h>
      ^& F' `, r) C8 a: ]
  26. #include <linux/init.h>
    ) u+ P! Q1 [+ r
  27. #include <linux/errno.h>
    0 U7 h. C( E7 ?8 h) ]/ k/ `/ \
  28. #include <linux/types.h>
    7 h+ n# ]4 t5 q+ H$ }8 e
  29. #include <linux/interrupt.h>% F) e, C+ K0 A; w' |
  30. #include <asm/io.h>3 u* A1 t: }: T' z+ {4 H' Z1 M* t
  31. #include <linux/moduleparam.h>
    # `- c4 g2 t$ `. j4 }7 ?! K, I
  32. #include <linux/sysctl.h>
    - O) y  e7 D5 w/ O- s
  33. #include <linux/mm.h>
    ; }5 t; w6 E, e- G+ ?2 d
  34. #include <linux/dma-mapping.h>
    8 h! h( {, M7 b: K: q( M2 x" U
  35. 9 K& s6 V$ a7 ^  o3 p
  36. #include <mach/memory.h>
    ; z" S) s" b/ z% u) j
  37. #include <mach/hardware.h>& |& ~# b7 m+ `' B4 I9 v
  38. #include <mach/irqs.h>
    ' y1 ?  Z' d0 @: e2 S
  39. #include <asm/hardware/edma.h>8 m& i, J! E- q1 m8 ^! W3 m" U

  40. " \* r8 c+ r$ j2 u. h) @
  41. #undef EDMA3_DEBUG
    0 J/ L5 j& N" ^! _; l# v8 e* {/ R
  42. /*#define EDMA3_DEBUG*// |3 w  O; F& o1 a: m/ O. c) ?
  43. 4 q& x6 S$ i) T$ |
  44. #ifdef EDMA3_DEBUG: y* {! n0 M; I$ @! B! `4 Y( z8 F) _. }
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    / u! r" ^, \9 t- ]- F% K  q
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)/ D% J7 `1 u) f$ N7 l
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)7 K+ [: L2 p) ~
  48. #else' i' W+ H6 F* v  _# X
  49. #define DMA_PRINTK( x... )
    6 T* R) _" C: U6 J1 c6 s- Z
  50. #define DMA_FN_IN
    - G8 A# u, G/ R6 m9 X
  51. #define DMA_FN_OUT
    + j3 ~* {# s1 [% g' ^
  52. #endif% ?0 ~% j4 `3 B
  53. 2 v7 P0 `, u4 P6 i& M
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    / o8 A  x) m8 y8 Z
  55. #define STATIC_SHIFT                31 B" U( W  N6 z, n' K1 J! l
  56. #define TCINTEN_SHIFT               20
    9 ?( A2 I/ l3 C  N1 U
  57. #define ITCINTEN_SHIFT              21
    " y+ e+ L+ m! Z
  58. #define TCCHEN_SHIFT                22
    & T' f+ z7 E/ e; }
  59. #define ITCCHEN_SHIFT               23# K) {7 M# z) n
  60.   Q/ v  x; J# D* i( h' t  m
  61. static volatile int irqraised1 = 0;* i: s  S2 c/ D( z3 P* d
  62. static volatile int irqraised2 = 0;
    7 Y. d2 Z8 p( M" T( q. h

  63. & j" {# V1 ~0 i- E1 a: o$ [$ ]
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    * v0 {5 I8 {, @+ x
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);! W6 X! c. V7 r( A& A4 i
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ' Y9 r! C" q& d9 u5 @& U
  67. ; G( ]. S1 H! @* G/ i# S( `' t
  68. dma_addr_t dmaphyssrc1 = 0;
    7 }7 t. W' h% x2 x
  69. dma_addr_t dmaphyssrc2 = 0;
    * |, {. }% Z3 P! F
  70. dma_addr_t dmaphysdest1 = 0;7 i% l% U3 A7 d; C- W& e
  71. dma_addr_t dmaphysdest2 = 0;; X7 S% O- H9 v  }! l5 V
  72. 5 y  o1 i8 M/ W; ?6 L+ F& Z9 u
  73. char *dmabufsrc1 = NULL;
    : ~7 r5 h$ F& m' Z1 a; R
  74. char *dmabufsrc2 = NULL;2 y. b! t  R4 p3 L3 P0 V& H5 K3 i' r
  75. char *dmabufdest1 = NULL;+ |- w7 {" E3 ~' `5 Y! Z1 x2 a
  76. char *dmabufdest2 = NULL;
    # J" K! `7 _/ A9 R9 a. z; j+ b

  77. 9 C! V3 _* y* i' v; {+ o  \3 E4 ?1 K
  78. static int acnt = 512;$ ^& s9 l+ v, f2 F. M7 V: n1 ~
  79. static int bcnt = 8;
    6 P) d4 n8 Z( T8 I
  80. static int ccnt = 8;
    5 r9 K  F; H" r, ]- S$ _- F

  81. # C, l. J( k8 Z) ~
  82. module_param(acnt, int, S_IRUGO);
    / n3 ]7 Y2 }9 k! B
  83. module_param(bcnt, int, S_IRUGO);
    ) h" n" ]  W# t: z  e
  84. module_param(ccnt, int, S_IRUGO);
复制代码

: X3 K4 t7 R( d7 E1 H: }4 ]4 T
9 Y' d9 @' }9 a+ N% a2 d. a      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
, p3 o6 t& `" R$ a, ]0 P* U4 i( farm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。* X6 |% f4 y. L2 A5 i
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。$ Z; y+ y9 h; v3 W5 R2 y( V
" B$ K8 f, g: V3 N& q- B0 ^  z

# c& C. p0 r! ]! f, {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-27 02:37 , Processed in 0.039960 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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