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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 # J% C, h1 o* }/ ?" u
  1. [code]EDMA sample test application; @! C( G3 Z# C2 T/ t. U
  2. /*
    1 X( e' _+ g9 _2 x) u* e" A
  3. * edma_test.c
    & ]3 X. e2 f- |! X( F* w& c
  4. *6 l. h4 O! p( b! e
  5. * brief  EDMA3 Test Application% ?' T5 _% ^- ?: \! S" [' t) U
  6. *
    5 R" Y9 d7 @7 ]9 v
  7. *   This file contains EDMA3 Test code.! H3 D. S6 k/ {" w; v  W# x, n
  8. *
    3 B7 d8 z; m) F5 O& i. n
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE# I: l& U: t  I& p5 M
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    8 X/ T4 c1 ^: Z+ I* s. @
  11. *         TO CHANGE.% k8 L# d- ~7 r1 e7 a/ ?6 c$ s. k
  12. *
    2 O" p- c1 L6 n! x$ r$ T. D  x
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/' @9 Z! V" r- s- i
  14. *
    ) [5 ]; R6 F0 L" @4 L
  15. * This program is free software; you can redistribute it and/or" G$ W, j1 v. j& `% H) F* k
  16. * modify it under the terms of the GNU General Public License as+ G" `$ U( \7 T% A1 x( S
  17. * published by the Free Software Foundation version 2., \+ F8 I2 p. V- Q; Z/ }, _( W0 B
  18. *
    7 o1 n5 F/ q5 r* k' _& B: f8 ~9 @
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any( K$ q) o" Q5 f
  20. * kind, whether express or implied; without even the implied warranty+ {9 e. U- G. f+ V) C
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    , x( Z9 t* V2 S
  22. * GNU General Public License for more details.
    % C6 T9 G1 @# w0 M8 ^' k4 Z
  23. */
    ' \  w% J" x( \7 h

  24. 8 }: N6 ], N# d4 j; J2 U
  25. #include <linux/module.h>. J) \4 Z. t* j0 b' c2 L% Q" {- u
  26. #include <linux/init.h>
    ; f3 V4 i7 R  ]; e. \
  27. #include <linux/errno.h>6 C. x: [0 y; P0 [) X/ g, O
  28. #include <linux/types.h>7 p6 A0 C6 w$ |$ f) K4 O
  29. #include <linux/interrupt.h>
    4 a2 Z8 P$ z6 z; d; G5 m& N
  30. #include <asm/io.h>: U- o4 ]* m! B/ ]* i4 `
  31. #include <linux/moduleparam.h>
    $ v2 L+ y9 e. \4 F/ p5 N% W
  32. #include <linux/sysctl.h>/ v7 Q" ?6 k. T# S; D$ c" q+ |
  33. #include <linux/mm.h>% U+ C. e- q' I, a5 j7 o
  34. #include <linux/dma-mapping.h>
    % @: x' Z; ~- u- M/ u
  35. + j( j9 C! ]# @2 Y; ~# b$ `
  36. #include <mach/memory.h>% g$ C7 I/ p0 A) `/ g7 _
  37. #include <mach/hardware.h>
    8 a: q: P/ @2 T. D5 @; ~$ t# R
  38. #include <mach/irqs.h>+ u2 h* q6 M# r
  39. #include <asm/hardware/edma.h>$ ~# H( a+ a" V1 L5 T- @

  40. 7 x: D. w8 Q. q4 s5 [. S
  41. #undef EDMA3_DEBUG6 }0 ?( D6 `- S& c
  42. /*#define EDMA3_DEBUG*/+ k; d% Q1 N$ f

  43. ! `* R$ i2 s2 A0 F% o
  44. #ifdef EDMA3_DEBUG& m8 C. n* z3 L2 n" r$ J
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    & A3 y9 J% k) e7 w1 q0 r2 f2 R
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)9 v  Z2 R2 g* y7 i0 Y# \4 R0 R0 M9 b
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    % s# V! R& a# ?# I: E5 O
  48. #else$ {) J1 T' r% N
  49. #define DMA_PRINTK( x... )5 d5 k, _' z1 h) P5 |7 l7 |# f* x
  50. #define DMA_FN_IN) \/ p2 D- h$ f
  51. #define DMA_FN_OUT$ F1 P$ ^* g  \6 ?
  52. #endif
    ' d6 |' {! d' D, J

  53. ) i$ w* \0 n& n' X$ x* G# L
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)3 c: b8 M  r% x+ t, A" }
  55. #define STATIC_SHIFT                3( _  o6 z& A9 L7 M7 k! K: Z, w
  56. #define TCINTEN_SHIFT               20/ z- e- Q1 b' I) i! x  d/ h) {
  57. #define ITCINTEN_SHIFT              21' C& X2 P+ j9 I0 U3 C  F
  58. #define TCCHEN_SHIFT                22
    : A1 u) P. }5 E1 z- k' g4 Q  v
  59. #define ITCCHEN_SHIFT               23
    ; o) x% B, J' ]% R. o  h9 f

  60. % `& \1 i+ f, i
  61. static volatile int irqraised1 = 0;$ X9 I& T* V8 R0 Y2 _4 g3 W6 }
  62. static volatile int irqraised2 = 0;
    0 s* s+ D) h# T% x
  63. ( X9 h; e/ ~# E: g- j* ~2 p" }
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    6 ?6 a2 E* B4 z
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ( t2 l! G, Z5 U5 ~- ?
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    6 h  {2 l: x( M! [9 z( e, a( ^, L1 V

  67. , V$ k) |8 I: {* o
  68. dma_addr_t dmaphyssrc1 = 0;
    ( z) |" D( l) y  V$ X/ u
  69. dma_addr_t dmaphyssrc2 = 0;* z1 Y2 x; F8 }/ V; y! q
  70. dma_addr_t dmaphysdest1 = 0;- F( Z& e# H: u1 c# m
  71. dma_addr_t dmaphysdest2 = 0;6 y3 R- ?# q4 u  v4 u

  72.   Y, o: r5 U+ Q, G, g& `
  73. char *dmabufsrc1 = NULL;9 Q3 V; ^. S1 r2 c) y
  74. char *dmabufsrc2 = NULL;
    % G& G; B  Y/ ?) [2 E
  75. char *dmabufdest1 = NULL;
    ( b) }: _( O, E6 Z" }; _+ d* D0 L
  76. char *dmabufdest2 = NULL;
    $ L) j  A5 Z. `; |

  77. ) I3 a+ z5 W# l+ F3 v
  78. static int acnt = 512;
    8 i6 d$ U1 T. _3 _6 J* f! ~6 _, l
  79. static int bcnt = 8;1 y- }5 H  V: E
  80. static int ccnt = 8;
    , y/ v1 E+ T% E" f6 K) I

  81. . T" ~! n/ f" B* D" w9 d9 z. ]
  82. module_param(acnt, int, S_IRUGO);
    2 N6 I! w  n0 l; u' b/ A
  83. module_param(bcnt, int, S_IRUGO);
    . e( g! X- \6 i& z6 |! E/ V
  84. module_param(ccnt, int, S_IRUGO);
复制代码

7 N, o7 M1 ]1 W1 }/ Y- e' L9 i
" ~3 ]- k$ V0 x6 y      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
5 O: ^! f- u9 N5 aarm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。# l- Y/ Z0 d  H& `
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。+ U6 l+ F% h) T/ w1 ^3 S

" j, d2 E% W- C: v6 Z% C$ b1 b. d$ o) n+ p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-30 00:52 , Processed in 0.041170 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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