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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
5 r1 C3 Z  p& |  {% O& f
  1. [code]EDMA sample test application
    2 |( _6 e4 P& V3 m# n
  2. /*, F& \4 D3 J" H: j0 v
  3. * edma_test.c
    $ i4 o% Z4 b3 Y0 j5 o
  4. *
    ) i8 t5 ^9 b1 B$ ^7 f( W
  5. * brief  EDMA3 Test Application. s, @/ r' B% E2 |, L
  6. *, o7 J! [/ x* m% n& k' R+ X
  7. *   This file contains EDMA3 Test code.
    , l7 T1 U, t% z4 V6 l
  8. *
    : J! o+ u; R( ~' f8 L
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE! x' B% J1 l3 h
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    # f+ w7 D: F7 \6 j) L  y) o" Q
  11. *         TO CHANGE.8 ~( }3 ], M- \* r8 V/ u' ?( E+ L! z- Z
  12. */ F" a1 M! ~4 p; Y, J% c  d
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    1 L/ A% f, i, @9 }+ v, Z
  14. *- }; m+ |) @! f1 m3 u' ~) U
  15. * This program is free software; you can redistribute it and/or7 V3 P1 w8 H- U" s' R4 E! H' r
  16. * modify it under the terms of the GNU General Public License as, z6 m& M! l8 S+ Q# C9 u/ m! y1 H
  17. * published by the Free Software Foundation version 2.
    % H7 ?( h$ r- ?* E8 {
  18. *
    & P) i) h  a5 k1 e) T5 T/ v
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    7 p5 L" `0 V% A8 F% B  L
  20. * kind, whether express or implied; without even the implied warranty% w1 P) u/ M$ S. s2 @
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    % t1 h9 X/ W$ }5 a0 d+ y6 m
  22. * GNU General Public License for more details.
    1 x3 S7 g2 C% D( s! P
  23. */
    ) K7 g4 _8 \2 D1 s

  24.   J2 f, i2 @! l6 W$ e
  25. #include <linux/module.h>
    2 J' J' @6 d- ~
  26. #include <linux/init.h>" l! P: E; j  Q4 p" E
  27. #include <linux/errno.h>$ h5 ?# S7 ~1 T. ~
  28. #include <linux/types.h>! t+ o& k5 g4 n! L/ U. m8 N
  29. #include <linux/interrupt.h>) r; Y' ]: n1 X! H
  30. #include <asm/io.h>7 l) A5 G' [1 C5 D5 s$ \
  31. #include <linux/moduleparam.h>; h2 O1 V$ R9 ?  K% \& E. O
  32. #include <linux/sysctl.h>
    5 w  q! [# V$ H6 q- c
  33. #include <linux/mm.h>) K) d4 [) i: s" }
  34. #include <linux/dma-mapping.h>2 k: }, j' G4 _/ R5 l

  35. / e; }) }3 p( l) F
  36. #include <mach/memory.h>
      z$ @4 T3 m& v/ t5 @2 V6 |4 ]& U
  37. #include <mach/hardware.h>
    & A5 V* f6 u. p9 m: A0 m
  38. #include <mach/irqs.h>2 j+ W, b4 y) S" c# K6 z4 ?
  39. #include <asm/hardware/edma.h>  f2 R2 @* ^( a1 M+ O1 {  b

  40. % e+ r$ b; |$ P2 H% }  X
  41. #undef EDMA3_DEBUG3 [4 m" w& `& U% r5 ^! V  o& b
  42. /*#define EDMA3_DEBUG*/, }, o$ x  E% M5 G' X
  43. 2 X2 @" P, ^3 V" Y( z% H! i
  44. #ifdef EDMA3_DEBUG
    8 P  |1 A3 m9 u( {$ t
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    9 G9 B; n) e% G& c9 w
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    7 N$ _/ `5 o2 p
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    ) i! Y$ R- g! W( l3 E- x& C
  48. #else
    4 r% ~0 f/ {2 V: n6 J' W2 T( l
  49. #define DMA_PRINTK( x... )8 {1 L* A/ Y1 N* g+ d8 \4 l3 a
  50. #define DMA_FN_IN
    ; {/ f5 P$ Y) ?, }+ W0 q* f
  51. #define DMA_FN_OUT3 K  i7 t% s" R1 x, u5 O
  52. #endif6 h, x% h3 h6 s+ i
  53. 9 u' Z4 X( o! O/ b9 F3 M' P
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    8 x# d# x9 {; t' R0 i/ u$ y% R" U
  55. #define STATIC_SHIFT                3
    ! Y! B8 t; K8 [1 x
  56. #define TCINTEN_SHIFT               20
    ( f% }# j& s' ?
  57. #define ITCINTEN_SHIFT              21
    - l3 ^4 p2 }/ v* ?
  58. #define TCCHEN_SHIFT                222 d6 P, W/ Z- V1 p* M
  59. #define ITCCHEN_SHIFT               23
    $ H3 o* ?* J" `: D' d5 F* u

  60. ' Y& ]; o2 K4 ~2 }1 w
  61. static volatile int irqraised1 = 0;$ L* f1 [4 ?8 n" p" H9 c$ C
  62. static volatile int irqraised2 = 0;5 e, U6 U2 L, m/ d& l. H) L1 k
  63. - v) U1 g9 X7 C5 o5 a/ C
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);( q3 Q# Y  I  y5 C
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    " E8 `) O2 }6 a" d% q( |
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);! p! U9 V$ M. ~5 N) I

  67. * I! S% r/ y' r
  68. dma_addr_t dmaphyssrc1 = 0;
    . b* @( |- O! O; X& Z1 N1 }
  69. dma_addr_t dmaphyssrc2 = 0;
    ) i* I- d/ T5 y) w* @' A  q
  70. dma_addr_t dmaphysdest1 = 0;
    9 M6 ^% \. o% T3 B& v
  71. dma_addr_t dmaphysdest2 = 0;
    9 ?( ]8 u/ h" J" C
  72. : r$ \( Q  H" Q
  73. char *dmabufsrc1 = NULL;
    $ W6 @2 ?1 k4 ?, ~' c# k# B% Z% `
  74. char *dmabufsrc2 = NULL;
    5 `" u7 F% E$ d2 F/ i! ?" [
  75. char *dmabufdest1 = NULL;, Q& l- v) _4 r' P* a/ r
  76. char *dmabufdest2 = NULL;9 o4 ?! k  x5 Z6 C5 V! s, p

  77. 7 t5 e# u: P- `- x* l
  78. static int acnt = 512;8 |: K; B6 }) t: F( l
  79. static int bcnt = 8;3 b. L- b- j. t) m
  80. static int ccnt = 8;1 Q1 Z+ h* C& P7 d' S
  81. $ w0 p$ |. w  R1 b1 f
  82. module_param(acnt, int, S_IRUGO);
    9 ]# B9 M: n" a2 Z( g+ k
  83. module_param(bcnt, int, S_IRUGO);
    $ L. k' X! X6 t$ y3 Q3 Q4 W$ W
  84. module_param(ccnt, int, S_IRUGO);
复制代码
' K( A$ F" Q7 D# r4 u2 p* o/ G

2 O( c% B; b0 X5 \      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用- V8 R' `$ T" i/ C  T0 q
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。# M4 v3 X2 v9 b: n1 y4 b/ J
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。- v% [! W! E! o3 G

2 ~* w/ _8 d; h1 z' H$ K
& B6 j4 j3 z' X  ]; s3 B7 u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-2 10:41 , Processed in 0.039837 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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