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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
* b4 o1 R! W4 U
  1. [code]EDMA sample test application9 }4 J! w+ N" n# R' @# U; b( R7 |+ k
  2. /*
    : s: A/ a! u3 i2 c" I! |% x7 l
  3. * edma_test.c, g/ ?: Y- m( y
  4. *) }9 }3 i/ T) [" `/ U" A; _3 J
  5. * brief  EDMA3 Test Application) W5 V) D# f* z* U
  6. *
    " w5 t* m5 i) p( V( M$ B
  7. *   This file contains EDMA3 Test code.
    5 f, q1 ]$ k' M( E4 @3 w
  8. *0 d7 |* D) O% }3 r% _8 w4 r
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    0 n% Q  J) R) ?- _! Y
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    : K# M$ T+ n4 h+ v; ?7 \# g
  11. *         TO CHANGE.
    $ V8 b4 I5 \+ F( S3 Q
  12. *
    9 S, g: d3 b/ H1 B
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    % b5 N5 y( S8 L7 J
  14. *
    6 @3 q; I" P* ]
  15. * This program is free software; you can redistribute it and/or, O# J5 b' i4 I% T+ z2 t" z( p& R
  16. * modify it under the terms of the GNU General Public License as/ a) _3 ]$ o0 p& ^
  17. * published by the Free Software Foundation version 2.7 ^* G3 N# ~* V7 H# [4 _' d% I
  18. *
    1 z2 T- l6 \, G: U; z, E7 S) r
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any! a6 m' j, f6 O  ~2 G) B7 E
  20. * kind, whether express or implied; without even the implied warranty
    ' `, V& x" m- l. l  x
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    % I+ Q! K' q) K7 ^2 c
  22. * GNU General Public License for more details.
      n/ |" c( Y! m9 U" }" y" W: E
  23. */$ p1 r( C9 j& `, S+ m

  24. ' P$ z4 e; B" |* ^
  25. #include <linux/module.h>
    6 }* z8 _8 A4 F% C1 i% f
  26. #include <linux/init.h>
    & w" n# f8 l& ?" ~. r9 T. M
  27. #include <linux/errno.h>: X; W& n# f4 n& \1 S! Z% i6 s- M
  28. #include <linux/types.h>
    $ n* W& a, Q, [% O" j: d
  29. #include <linux/interrupt.h>: y* Y! p2 a9 u. B6 M' h( b# R
  30. #include <asm/io.h>
    . O# C3 ^/ \$ L4 M. h  _. ~
  31. #include <linux/moduleparam.h>
    ; I+ X' d: I% i- f, e
  32. #include <linux/sysctl.h>2 b* Z$ q+ b. a' ~6 H4 r0 X5 o' o
  33. #include <linux/mm.h>
    ; n) g. h7 O) c. e+ [9 F0 j
  34. #include <linux/dma-mapping.h>- d5 [& H/ F( F9 U" |" _; Y
  35. 0 y' E0 {* l1 \/ X9 C
  36. #include <mach/memory.h>9 C5 _5 B0 G) I. Z) A
  37. #include <mach/hardware.h>
    7 P, Q2 g0 k& H* U% I! u7 B
  38. #include <mach/irqs.h>0 H6 K3 m# l8 w: k; l2 }
  39. #include <asm/hardware/edma.h>/ J5 g7 d" y# g4 l& b: f- u

  40. 0 V4 q# P  C7 H
  41. #undef EDMA3_DEBUG5 |' Q7 r9 F4 Q9 R( ]7 h4 S4 r
  42. /*#define EDMA3_DEBUG*/0 i* q. ^1 ^8 }0 p) j0 o  ~
  43. % G  B) u5 F1 A3 I( |, O* _! S8 f
  44. #ifdef EDMA3_DEBUG# a" ?# W4 h! q3 y. K
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    9 R- K3 @) |1 f+ V
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    + D+ \3 I# x7 g; E0 `
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    3 R/ N& D* [- Z: {& m: |5 k  g- ]8 a
  48. #else
    1 l1 p" \' `' @
  49. #define DMA_PRINTK( x... )) T; [: Z0 E( d: k7 N
  50. #define DMA_FN_IN6 C/ R# X' Z( |. ?: O. e
  51. #define DMA_FN_OUT
    " T& I' w1 f6 K
  52. #endif
    ! ^! N& L; S% ]( w2 `

  53. & ?0 y2 [4 Q: v2 Q, N5 ^
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    " y6 k( c  S0 M) h* S
  55. #define STATIC_SHIFT                36 @) e( M  D& d. |7 W% K
  56. #define TCINTEN_SHIFT               201 G9 q. t; l& {/ _
  57. #define ITCINTEN_SHIFT              217 W) D$ s; G3 ?; u( k( D% L
  58. #define TCCHEN_SHIFT                22
    / y. u4 R3 o" y. O8 W
  59. #define ITCCHEN_SHIFT               23  b; u5 N, p1 T+ w0 h

  60. ; s# z5 G- g& f/ n, a& q
  61. static volatile int irqraised1 = 0;
    ( g: S) N# R8 g8 g
  62. static volatile int irqraised2 = 0;. h) x! i7 L& h7 c& T, j
  63. , _( `& p. ?6 s7 t6 N) }, p
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    & n' b5 u  R- A- K7 A5 G. _
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    $ B' G8 q- D# [5 L% K3 g. t( k
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);$ M9 l8 m; X+ z
  67. , i1 P/ L& M9 V( [, _3 a
  68. dma_addr_t dmaphyssrc1 = 0;
    1 C- k  L5 T. a( F1 S' d
  69. dma_addr_t dmaphyssrc2 = 0;- P/ H5 |* q3 a& H- y
  70. dma_addr_t dmaphysdest1 = 0;
    ' L& g. q& w: G% J% Y
  71. dma_addr_t dmaphysdest2 = 0;
    ! o9 a" I/ H9 T) Q

  72. 2 j. z  s" p4 N9 Z
  73. char *dmabufsrc1 = NULL;4 [, W, g7 l' \6 I3 u$ _8 S" o
  74. char *dmabufsrc2 = NULL;2 m' M; s6 ^5 d* x; @
  75. char *dmabufdest1 = NULL;
    ' I/ p/ I) l" _$ s  b/ |! P9 E
  76. char *dmabufdest2 = NULL;
    ) s' }* d- V/ ]# q- F
  77. ( {. u7 A8 A0 T% a6 [
  78. static int acnt = 512;4 n9 _# t: W9 C: L
  79. static int bcnt = 8;) `3 T0 u% m& ^# f& q/ ]
  80. static int ccnt = 8;
    7 O1 k+ K/ y) o7 d' T

  81. # g1 Q1 b: c/ a& A+ i
  82. module_param(acnt, int, S_IRUGO);
    " J8 W8 p, Z( V7 h7 G7 z4 h, {
  83. module_param(bcnt, int, S_IRUGO);
    5 Q: a/ V5 |( M' B, c0 a; D
  84. module_param(ccnt, int, S_IRUGO);
复制代码
. Q5 ]$ ^9 Q6 r6 l- ^: d

5 E* b6 ~; X" h      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
7 l% O' q$ ]3 o8 }+ 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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。7 [' {2 S9 D9 {* S( K# H) R
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
* S! C- N8 X% b8 O9 ?. Y$ l
- ~4 C9 R( I- i& z: D; Y& h* B  `* [# V! L
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-6-12 00:05 , Processed in 0.039512 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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