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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 4 d3 ^* M. L9 r/ O6 @
  1. [code]EDMA sample test application
    1 w* K& ^/ ~* \5 w& b
  2. /*
    8 M! {7 g8 b6 c" C7 y; D  F
  3. * edma_test.c
    5 p+ b- n# p$ d7 b6 f0 k: S+ p
  4. *
    6 B8 V% G$ b4 b: }0 B
  5. * brief  EDMA3 Test Application
      ^- S* i/ h( G1 W7 u$ J
  6. *+ F' ]. L0 G5 N0 h4 W1 ]
  7. *   This file contains EDMA3 Test code.8 k7 W% Q- l- b# l3 t3 D# U
  8. *
    % T6 H# l7 O* p" B  y  {6 U
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE! \5 A2 H. W' P5 r" `5 }8 o' t, f  {
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT* q% I) C. |+ B# ]
  11. *         TO CHANGE.: |- N/ V9 i9 x: u3 w, l
  12. *3 a/ M) ^$ U3 i" p0 q
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    9 i* Q% _; @0 v2 B6 @9 J
  14. *
    , h9 d( ]1 [. g/ g( Y* }( H" t1 S, @
  15. * This program is free software; you can redistribute it and/or4 }! `3 ]" @5 v. z% }0 t7 f( q
  16. * modify it under the terms of the GNU General Public License as/ W, I" p. Z1 a( k" ^8 P  F
  17. * published by the Free Software Foundation version 2.
    0 ~0 h8 x- `1 f4 m- K/ C- e4 |
  18. *
    1 Q  D. C# V/ c
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    & L, ~' ]% q) ?  {0 A
  20. * kind, whether express or implied; without even the implied warranty
    2 \3 i+ R# X8 X% c% V% a
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    ( b. @0 C! k. Q  d4 G: E8 U4 ?
  22. * GNU General Public License for more details.$ q6 Q; T, `& s  ]
  23. */) }; N3 q* m1 z, T& |6 u

  24.   k( o# N- `# V; J/ _
  25. #include <linux/module.h>, D4 Y5 Y% W3 p% N7 @2 t/ J
  26. #include <linux/init.h>' [5 \3 ^3 ~+ B4 a! s
  27. #include <linux/errno.h>
    9 j% S9 \0 g% A. `9 [0 n
  28. #include <linux/types.h>
    " s2 U1 I1 `$ P) y* e0 a/ f
  29. #include <linux/interrupt.h>! n* ]) Z) U( t0 V/ D2 l+ M* |+ ?! c
  30. #include <asm/io.h>
    9 W" T+ i. U' @- z$ R) C
  31. #include <linux/moduleparam.h>- [) o9 U$ J0 c7 R* R! {1 e0 ^
  32. #include <linux/sysctl.h>
    # k8 _3 w8 J7 X8 a1 U: j
  33. #include <linux/mm.h>) J0 z6 x& V4 B% _* e
  34. #include <linux/dma-mapping.h>
    1 o. [; Y& j& F
  35. 6 z+ i6 s* x9 L5 }, }
  36. #include <mach/memory.h>! T8 q) k' O- q4 `* b% d6 X
  37. #include <mach/hardware.h>
    % b; \* X# j& H2 P7 i/ D% L
  38. #include <mach/irqs.h>; U6 Q1 V  z, s  L& `; c% u
  39. #include <asm/hardware/edma.h>+ C% v6 O5 r9 ~5 ^( {
  40. $ h" L  p) r2 z+ A' Q/ j! j
  41. #undef EDMA3_DEBUG  R( D' P7 X+ `3 `
  42. /*#define EDMA3_DEBUG*/# Q+ D' I: D: z( U6 {4 p4 o; k

  43. / H( @- Z# B+ v5 G, {, }
  44. #ifdef EDMA3_DEBUG
    & c/ [, X1 n+ D8 C& t' C
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)! K+ ^5 x5 F! j$ c: M6 h3 q
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
      d2 Z& H1 y& u
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    ; v( Q$ S' _" F
  48. #else" v5 A: i& j! H5 J% y; O
  49. #define DMA_PRINTK( x... )% L" d3 G* Y* w7 Q, d2 h( ?: G* O
  50. #define DMA_FN_IN
    ! o9 s) Y; `& B
  51. #define DMA_FN_OUT9 C3 M  x2 B* ]- u1 }3 Q, }
  52. #endif9 j" |3 t. b6 l0 d

  53. , i% H* Y; j& {) s3 d' H) `
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    & I( f" k7 T, Y5 y. E+ {1 q1 ^  o
  55. #define STATIC_SHIFT                3
    & G3 v8 ^7 ]+ N. N7 F8 @2 B/ r
  56. #define TCINTEN_SHIFT               20
    ' Q9 D5 m3 A( C* Y  D& ^
  57. #define ITCINTEN_SHIFT              21
    5 z+ l7 j& q6 b) t6 [/ D; ~  C
  58. #define TCCHEN_SHIFT                22
    - x1 m3 Z/ z* _$ i1 N
  59. #define ITCCHEN_SHIFT               23
    7 a( [! \2 @& I7 `3 g3 l0 s* s
  60. ' C; ?% O/ i: c% m
  61. static volatile int irqraised1 = 0;
    - w6 v+ n. g. c- J  Q
  62. static volatile int irqraised2 = 0;
    * K( B1 h. b( B$ x$ I
  63.   P: d4 c, T1 R' B8 \
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);% j2 f% v* M- k" X2 W# s2 D
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    9 V' b3 m& E7 R( H: J6 D
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);7 C" j& t. O. U& H
  67. & S; ~2 f5 |$ i0 t2 q; [# a
  68. dma_addr_t dmaphyssrc1 = 0;. D) T6 I' M9 E+ i& j# z+ R
  69. dma_addr_t dmaphyssrc2 = 0;( j) g' o7 `$ @0 W( w
  70. dma_addr_t dmaphysdest1 = 0;- M+ z0 q* Z' U9 V& {
  71. dma_addr_t dmaphysdest2 = 0;' h3 ^" L7 L3 J2 t( S+ ]8 T
  72. ; h/ ^1 {) D# `/ _. ^5 V8 V
  73. char *dmabufsrc1 = NULL;9 i6 t7 w2 ^0 I8 r& `* I
  74. char *dmabufsrc2 = NULL;2 M& h, c4 X5 V, j" Q" E4 m2 f" F
  75. char *dmabufdest1 = NULL;
    + g8 i6 l$ O2 ^3 s2 _" o
  76. char *dmabufdest2 = NULL;: ^! a9 ^$ D- N/ ]% N: a

  77. # B" u) z3 ^7 N  A# d  U! o
  78. static int acnt = 512;
    $ E( {# E7 E& }
  79. static int bcnt = 8;
    & \' U3 i0 A; C( ]1 F
  80. static int ccnt = 8;
    * \3 t+ T% F* E, q7 J  l

  81.   L; E; \  L1 V( ]$ U. v9 K( z* k# b
  82. module_param(acnt, int, S_IRUGO);1 m4 i/ A2 {6 |8 S6 M: Q
  83. module_param(bcnt, int, S_IRUGO);
    / P* t7 ?: m8 i: Z9 n. T- a
  84. module_param(ccnt, int, S_IRUGO);
复制代码

8 V' W* k0 u, _/ t4 y, v/ i& ~$ k( [, A* A3 W# q
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
! d0 {* h+ k8 _" ]8 `9 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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。5 b1 E: o3 l5 Q
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
$ Q' F- A) k* b% J/ l! r
( _+ y& j7 W, Z* s0 s9 {! }5 g3 `  N' U  f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 06:48 , Processed in 0.041890 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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