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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 ; [+ p( q( S: C
  1. [code]EDMA sample test application8 T+ a7 z5 t  l- O% b& \( ]
  2. /*7 |! O$ x4 [! S* J* _2 @) K; O$ H. o  J
  3. * edma_test.c
    4 _, B* B% N0 U8 ^2 r( K
  4. *2 l3 L& v/ d. v2 B/ j
  5. * brief  EDMA3 Test Application) \5 ^$ a6 C4 Y7 x, Y
  6. *
    ; W' `$ H3 Y& i' D/ @: Q/ q
  7. *   This file contains EDMA3 Test code.
    8 Y+ g# {) N, w# G/ M  h4 B4 t
  8. *
    : W0 G3 P/ G  d, C1 |% o( l6 H
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE. W9 T7 b3 H# }5 B
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT7 Y  U- z) U8 h2 m9 t0 P
  11. *         TO CHANGE.$ Y8 B9 H. j2 m6 N0 U
  12. *
    / O% i/ }; ^  ~; a
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/; g0 H' h4 j1 ]& q, _1 U
  14. *
    5 K9 G2 @* |# A. k' U
  15. * This program is free software; you can redistribute it and/or- j# @. \3 y  [0 L2 N
  16. * modify it under the terms of the GNU General Public License as; X+ C# t* X! |" I5 N1 a
  17. * published by the Free Software Foundation version 2., Z2 I2 k, M; h. S
  18. *
    5 ?5 ^+ v# Z& D& f# v' e- G
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any8 p0 ^3 w% z( y8 p" V2 M' ]' H% n2 |
  20. * kind, whether express or implied; without even the implied warranty
    & f& b# g( |8 Q0 O+ r$ ~7 `
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    ; b# ?# q4 j9 V& O
  22. * GNU General Public License for more details.
    " n4 ]" P* j) I% t
  23. */2 U3 K) v. r+ t; P8 F$ d

  24. ; z  y6 v( P- B
  25. #include <linux/module.h>( l9 V, J9 n$ {
  26. #include <linux/init.h>! C3 H6 g; g; f  P% H2 X
  27. #include <linux/errno.h>
    % p  u& w/ R  k1 a' u
  28. #include <linux/types.h>
    6 Q, P4 @* S6 s4 b- K2 f
  29. #include <linux/interrupt.h>
    " ]8 y4 L4 h( H9 ~0 I
  30. #include <asm/io.h>2 v  ~/ r7 j- i
  31. #include <linux/moduleparam.h>
    ! A0 e' O# _2 r5 @/ C
  32. #include <linux/sysctl.h>2 S+ O# m3 E( d0 a
  33. #include <linux/mm.h>
      O$ n$ y' b! r9 V3 R, D4 \& Z
  34. #include <linux/dma-mapping.h>. T: @  J1 Y! c- U& N
  35. ( T, J) t2 s% o, P
  36. #include <mach/memory.h>8 B" ?  `. ^1 K" L
  37. #include <mach/hardware.h>
    1 B. Q2 d3 N) V# C" j) m) y0 @
  38. #include <mach/irqs.h>  k' j$ h6 y: }) i8 f, F
  39. #include <asm/hardware/edma.h>
    " y: ?$ q8 X  S5 G$ x: w& r

  40. 6 p/ w( c' [' u8 z" A; q
  41. #undef EDMA3_DEBUG
    : ~1 a+ J6 y% k- l9 i
  42. /*#define EDMA3_DEBUG*/
    & S) n6 x& N5 ]6 f

  43. ' S# a; p6 ]/ `9 ?, {, _, V( u
  44. #ifdef EDMA3_DEBUG; v; @2 R& D; c$ M% R
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
      y+ c' b0 d0 d* s6 @
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    $ k8 i( X7 H5 k6 V4 E
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)+ v/ i1 i* D; n& s/ A
  48. #else' `4 v  _; x$ ?8 S9 L: W0 `( e
  49. #define DMA_PRINTK( x... )9 i6 ?/ L2 {( V
  50. #define DMA_FN_IN! Z2 [" D7 s1 Q
  51. #define DMA_FN_OUT
    % X/ m# G6 M" N, {7 _; q2 E' l
  52. #endif
    , t. \8 X/ U4 j7 Q: x' Y9 o1 r

  53. 2 O2 p( n  m& Z( E/ t* i- R
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    ! U9 m- Q2 F) T1 Q$ o# ^7 C! }
  55. #define STATIC_SHIFT                3. j/ {! t: u9 v2 p' {$ H2 u
  56. #define TCINTEN_SHIFT               20
    3 e6 D5 `5 U2 `  i
  57. #define ITCINTEN_SHIFT              21# O" p, c# X) |' R! J( i) ~' x+ T. f
  58. #define TCCHEN_SHIFT                22
    ' }: ^, k) C2 L* A
  59. #define ITCCHEN_SHIFT               23
    * R3 [8 ~+ G) |; z: a
  60. - S: y( B; x  s8 ]; H! M
  61. static volatile int irqraised1 = 0;
    ' ?2 c6 S: V& n5 G* E
  62. static volatile int irqraised2 = 0;+ F$ w$ Q: p1 O9 t1 j8 K
  63. ! M. p$ @: Y" H9 _
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);) v; m' c1 q- K& c  J5 s9 E
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    0 e  w( Y" b' H2 _9 b* d$ n
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    1 }: a  D. K+ j4 y5 G2 Z/ u, H; c8 W
  67. 3 G& N1 \( }9 H" U. r
  68. dma_addr_t dmaphyssrc1 = 0;" ~  o/ N: R0 U  d& i% w
  69. dma_addr_t dmaphyssrc2 = 0;
    0 M7 h- Y5 V$ z; J! S7 x' M9 @
  70. dma_addr_t dmaphysdest1 = 0;
      d( L! Q' S: h# J. X
  71. dma_addr_t dmaphysdest2 = 0;
    ( z( J/ f# j7 i' E: z: K5 y

  72.   s. j; U) ]7 q9 N8 \- a
  73. char *dmabufsrc1 = NULL;
    ) b. L$ B0 {# h' q" ~
  74. char *dmabufsrc2 = NULL;
    & m6 \6 _6 p# v# X
  75. char *dmabufdest1 = NULL;
    * q" `' H; q( n8 ~- e" z
  76. char *dmabufdest2 = NULL;$ G, ^  Y( n0 Z& i, ~2 c! s

  77. 4 n9 K4 l9 _+ h( f! Q# s6 d
  78. static int acnt = 512;1 z) v" c9 {& Y+ V
  79. static int bcnt = 8;
    7 X9 |, p0 H. E/ n
  80. static int ccnt = 8;
    ( {1 w: \5 }3 U6 Z. U' G! h5 H
  81. ( b, b# G. A4 q8 k* x; t
  82. module_param(acnt, int, S_IRUGO);  e3 g6 Y! C% k+ Y5 z
  83. module_param(bcnt, int, S_IRUGO);0 O: f4 n; w0 z/ Q, h+ C+ |9 p1 z
  84. module_param(ccnt, int, S_IRUGO);
复制代码
' }3 t. `! r7 C# g, h

0 H# w2 p3 o$ g- b1 T& N6 d      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用' Y  x$ r# x& H1 F$ k# C* h
arm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
4 h3 {% C: G# b/ M5 C# Z3 N" }     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
8 }& P) {# O1 k- s: U, [3 N2 K  ?9 V4 \6 L' C) W8 N

# x# u9 i8 X) |; i) i* ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-6 08:34 , Processed in 0.041874 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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