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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 4 T, T9 I6 R( Y' v) o: ?3 A# {2 D
  1. [code]EDMA sample test application3 \' u0 }; L6 p: X
  2. /*7 P% Q% W8 w1 r2 V( N1 q0 l3 K. v
  3. * edma_test.c6 @5 y8 e( v- ?0 C* E# f8 L4 q
  4. ** b- ~, ]+ J( k, D8 c) }( |
  5. * brief  EDMA3 Test Application: b$ s& e/ M% J/ `
  6. *
    / b+ ~. S+ [) S& o' h7 y
  7. *   This file contains EDMA3 Test code." t7 ~3 K7 S% l9 s* p: ?( x
  8. *2 c; v  i" G8 Z
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    : u7 J2 J! P& k- \+ E4 n
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT0 z) c3 P/ V9 l* A0 E# n
  11. *         TO CHANGE.9 \1 @: }" @$ h' I; K
  12. *
    ( T* V& @& S7 S
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    : q5 S3 A) T4 A; T6 @" x
  14. *
      {' d9 y# W1 `9 V5 D  @
  15. * This program is free software; you can redistribute it and/or
    8 m( F* x6 D9 X& F9 w! V* {
  16. * modify it under the terms of the GNU General Public License as- z2 A# f" u" c7 I( u/ w. K
  17. * published by the Free Software Foundation version 2.5 C  w$ ~7 N7 S3 R3 {5 N1 A+ |
  18. *
    7 v% f$ L+ t, h/ K& f  B
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    ( h* l+ i  q. H- @; h
  20. * kind, whether express or implied; without even the implied warranty
    / Y9 U7 n6 N% J: I
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  S6 \4 c% [7 L9 {% S
  22. * GNU General Public License for more details.
    - C! c2 z1 [6 ^$ u$ o& w6 k8 x% Y( z
  23. */
    # z  d. R2 D" `- N

  24. - H5 S9 g0 y7 m) E1 u# O: w6 {  ?
  25. #include <linux/module.h>
    % J' ]% p+ {4 ]' E' p) B  L1 \
  26. #include <linux/init.h># {8 {8 u% ]) C5 {. B
  27. #include <linux/errno.h>
    $ K2 g* D* m% m! D# I$ W
  28. #include <linux/types.h>
    7 k& L0 _5 v( m; V
  29. #include <linux/interrupt.h>
    4 J- {4 J# a! ]4 w9 k3 J' p3 H
  30. #include <asm/io.h>, X$ A$ y( [/ G/ G; y
  31. #include <linux/moduleparam.h>
    4 a( E1 ]' e1 K! e, u% z' D* n* k2 p
  32. #include <linux/sysctl.h>
    + n/ L8 y9 B2 d, R; A4 G
  33. #include <linux/mm.h>, \( p& Q( A# d& j
  34. #include <linux/dma-mapping.h>
    8 B4 d" t: L) K3 ^3 q

  35. * N/ g7 D  H+ B# C7 ~: x$ x4 d
  36. #include <mach/memory.h>
    , J- `# X' m- `" j1 A. P: i" }
  37. #include <mach/hardware.h>" j* Q  [* V6 ^! G
  38. #include <mach/irqs.h>/ T; K# Z% n0 x$ `
  39. #include <asm/hardware/edma.h>4 @, d4 _9 F5 e# _/ J( O
  40. ' ]" g+ ?8 a* u0 T! ]  W5 R9 m
  41. #undef EDMA3_DEBUG
    / t7 x# h! u! u4 c
  42. /*#define EDMA3_DEBUG*/
    4 K) a& \0 b) ~5 ?: y

  43. ' r. P, X- O) Q8 p, O. h
  44. #ifdef EDMA3_DEBUG/ O4 ~+ g% b  o1 Y
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    . N  V2 y6 b, f5 U7 d
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)) o+ q) U/ |6 O  _' T  z1 C
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__), U' }$ R  f: _% e/ z
  48. #else
    2 i. a; m, ]/ t( z" Y
  49. #define DMA_PRINTK( x... )
    * f9 p/ d! E! K1 y8 L  {( A: y
  50. #define DMA_FN_IN
    & k7 }2 z1 h& F8 I! X- q/ H
  51. #define DMA_FN_OUT/ D. w1 j& d. `3 J$ P; V
  52. #endif/ Q8 Z' q7 A! J7 |. E+ a/ ?
  53. 4 l% F4 l, _. n9 e1 r8 t
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)! _' V8 b; Q! s
  55. #define STATIC_SHIFT                3) g7 y6 ]0 f: j! [4 o$ p
  56. #define TCINTEN_SHIFT               20; C+ J# A8 ^" o3 j
  57. #define ITCINTEN_SHIFT              21* C$ X7 c" e" |! A, U& r
  58. #define TCCHEN_SHIFT                221 r+ L* a, f4 {% P( F+ r
  59. #define ITCCHEN_SHIFT               23! ?. ~4 R: b. M3 T5 W5 Z8 N

  60. - p4 y" x2 I) t! h  m9 h5 O" M# L
  61. static volatile int irqraised1 = 0;9 Z6 n/ r* G' W4 F+ N; G; t
  62. static volatile int irqraised2 = 0;$ D/ K" R# m: G" M, s

  63. 9 A: k$ U) r& O
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);' U$ F3 y" d5 |- q
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    $ ?. A3 L  k$ h6 P5 H2 D
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    + H4 g9 u) J/ I) n! T

  67. # a1 L, o7 L; M# }+ ?
  68. dma_addr_t dmaphyssrc1 = 0;
    , X$ l- p$ H6 H7 K
  69. dma_addr_t dmaphyssrc2 = 0;
    ) y" D6 M4 Y$ [1 R2 _5 X
  70. dma_addr_t dmaphysdest1 = 0;
    - F/ ^& l- p( |9 Q
  71. dma_addr_t dmaphysdest2 = 0;
    4 g& [4 O) }* L- N$ m3 A- P

  72. ; V0 s6 u7 ?! ~. F' c- Y
  73. char *dmabufsrc1 = NULL;4 A" i% W. @! f) h8 v: L) @& U  Z
  74. char *dmabufsrc2 = NULL;, U( I  D. `! e# M
  75. char *dmabufdest1 = NULL;
    " B4 i, M; D) m& P4 W  J. \
  76. char *dmabufdest2 = NULL;
    : T- ]( y" T9 J# y, Z! |4 J' v; g. F

  77. : A( x9 b) @' `% W- H8 d
  78. static int acnt = 512;
    / n& v6 d$ \& M" M; U( _0 M2 T
  79. static int bcnt = 8;5 Z+ _; Q* Q# j
  80. static int ccnt = 8;2 h+ n" j1 |' q* A
  81. * S8 M8 h0 x  n2 B9 Z* S6 D4 j9 r
  82. module_param(acnt, int, S_IRUGO);$ T& E/ n$ f- `7 D- |& z
  83. module_param(bcnt, int, S_IRUGO);
    ; ~' A. R3 i3 b
  84. module_param(ccnt, int, S_IRUGO);
复制代码

% [$ |7 d$ |* n- a' M# o
! i/ V* u3 K; h& t) F7 t  `8 a2 S- E      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用9 z! {0 P3 @2 F6 U' }
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
& Q' P. c6 ~% r" ^& D     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。/ z6 F' P4 l- o3 [
$ Z- ~/ ^8 r/ C- W2 A3 V

9 I+ ~8 E8 M9 C) N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-27 15:40 , Processed in 0.046497 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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