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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 ! P/ z  ]9 c4 h7 q+ O, N
  1. [code]EDMA sample test application
    " r2 m+ h  ?7 s. W9 l' @& b7 A
  2. /*
    . y, q$ L$ g4 L2 _  |& M
  3. * edma_test.c- T$ U8 G% b" @! I& Y
  4. *
    1 ?( i  S3 e: C1 b
  5. * brief  EDMA3 Test Application8 u& |1 r3 U/ }2 M% n
  6. *( c' }/ _6 n# w  ~9 o. n1 J
  7. *   This file contains EDMA3 Test code.
    9 a/ u+ p/ A; N5 K
  8. *
    : J' _/ h. ^) ^$ }' _
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE9 p. [  ~: M5 h" f, h  H# v* A
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT& P. I9 c# l$ r, g: q; o: {* l# k
  11. *         TO CHANGE.( T, @6 L' {$ ]+ q/ i
  12. *
    & A3 I* m8 W% W* K3 }. E! V
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    7 R& p# v! C8 E) J( u+ Y. V6 j
  14. *
    6 N) X% m0 @5 u! i+ R8 y6 y1 G
  15. * This program is free software; you can redistribute it and/or
    + Z& M% B9 O) q# |
  16. * modify it under the terms of the GNU General Public License as
    ' r7 ]) r2 G, h! F3 e
  17. * published by the Free Software Foundation version 2.
    ' w9 |& x8 Z( P# r4 h
  18. *( f* r2 i/ h' W- h5 ]! X
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any" K" s  Z8 \: A" J: s
  20. * kind, whether express or implied; without even the implied warranty
    ! a: O" b  {- o" t& M7 R
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    " Y& @2 z/ q0 o3 p5 ^( }$ f+ t. k
  22. * GNU General Public License for more details.: j* O* d" A3 B
  23. */9 M2 x) D; |6 q  g  I
  24. ) X8 @4 N% D+ ]! a
  25. #include <linux/module.h>- U: h+ E0 \8 C: d
  26. #include <linux/init.h>5 c# Y! p( Y- z3 }. f6 e; Q# P
  27. #include <linux/errno.h>
    5 J  }* b; j4 `) _
  28. #include <linux/types.h>
    . b: d2 n2 o1 W: F% Q6 t
  29. #include <linux/interrupt.h>0 x! T# ?6 i+ ~
  30. #include <asm/io.h>
    % N* w& \! ^& |) b
  31. #include <linux/moduleparam.h># Z4 H$ z4 D; b& q' R8 H
  32. #include <linux/sysctl.h>2 x5 m: ?( I' j& S
  33. #include <linux/mm.h>6 h" m- o. k3 j2 d; E  R, F
  34. #include <linux/dma-mapping.h>
    ' v+ _9 z0 ?# ]; E- J2 ^2 L

  35. * a- [% k! i2 U' G& _
  36. #include <mach/memory.h>
    % y/ R$ d! M3 G# ~& R- ?
  37. #include <mach/hardware.h>! x, v# k1 r+ E9 p
  38. #include <mach/irqs.h>
    ( W  a" B9 v. S
  39. #include <asm/hardware/edma.h>
    ! `7 a4 K4 U6 l/ }: [8 K

  40. # {' @3 s. @. `, [# q
  41. #undef EDMA3_DEBUG0 l, U  B3 N4 @, E% n
  42. /*#define EDMA3_DEBUG*/
    * b9 G7 E' m- m: d

  43. ; g( ]3 C' Z/ t7 _, X- R8 @
  44. #ifdef EDMA3_DEBUG
    0 U0 [( [5 K1 y1 ~# \4 q
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    : E7 J1 d: L5 m3 e! D
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)& M2 e8 D( z7 h0 V; _! A
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    6 k9 K, M1 K5 v" L; e
  48. #else
    + a* S/ f8 K1 R9 q1 H# E( @4 @  t
  49. #define DMA_PRINTK( x... )
    $ }& {& H% k; g
  50. #define DMA_FN_IN4 W1 I4 o3 W  h
  51. #define DMA_FN_OUT% o; b! G8 h3 a. i& x$ W
  52. #endif& l3 W+ u/ r' u+ X

  53. + J6 t3 t7 q% F1 v
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)+ A) V# A1 B3 e6 x1 d) Q( s
  55. #define STATIC_SHIFT                3
    $ }6 C6 ^! k, I. O! ]( s: b# q. z. w
  56. #define TCINTEN_SHIFT               20+ d/ C8 s/ s, l0 z) _: n9 |/ @. c
  57. #define ITCINTEN_SHIFT              21/ r. {+ N& q8 w9 Z$ x; w
  58. #define TCCHEN_SHIFT                22
    0 S  W2 o* |& |) B) V4 s& w
  59. #define ITCCHEN_SHIFT               23
    " W0 J% H# |+ F2 l

  60. + T1 u( K! r4 Q! B3 @
  61. static volatile int irqraised1 = 0;
    6 T6 ^9 l' q0 A/ B) B- D8 [
  62. static volatile int irqraised2 = 0;8 d# O" y# l) a
  63. 5 x1 ]/ ]( `  c8 ~' N
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);) M1 V  w* o5 T" q- R4 ]1 Q! q3 I0 n& ~
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    5 l+ Y* ]$ Y* J( U/ c
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    # H( h, g7 @: p' L/ N$ m- b: v" j  u

  67. 2 E( K% @2 |2 U# W% k
  68. dma_addr_t dmaphyssrc1 = 0;
    6 W  C& `) ?$ `. U$ |; a
  69. dma_addr_t dmaphyssrc2 = 0;
    8 J/ d! t) k1 U, p1 N: {' \0 w
  70. dma_addr_t dmaphysdest1 = 0;
    7 [* A/ k* z. v2 }* z& b; `  G
  71. dma_addr_t dmaphysdest2 = 0;
    - r+ B( x7 J0 j# s" F% A

  72. ' O( {- }& t" E3 F
  73. char *dmabufsrc1 = NULL;2 M5 O# M' p. `! F% _7 k, a
  74. char *dmabufsrc2 = NULL;
    4 L* v( d2 l" y6 X5 y4 ?$ L& j( L
  75. char *dmabufdest1 = NULL;: P" u) L2 h, A1 z- g4 z$ e
  76. char *dmabufdest2 = NULL;% f6 r6 P- ?  c
  77. & b5 U$ E5 ^$ y' V, Q! p  Y
  78. static int acnt = 512;
    : z; ~. i6 n2 T
  79. static int bcnt = 8;
    ' P4 w$ K$ |, M) I) E( M
  80. static int ccnt = 8;
    % n3 m6 [4 `! O3 d, m

  81. ; w; Y3 K0 j: y
  82. module_param(acnt, int, S_IRUGO);% b; }( e# ?1 y2 v4 r: Y
  83. module_param(bcnt, int, S_IRUGO);
    3 T7 `7 S' r  ]5 }7 T
  84. module_param(ccnt, int, S_IRUGO);
复制代码

2 v; D- u$ H) P5 n4 @0 @1 D9 J: `1 I5 d5 O% \/ L
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
# E# C+ H, y( W7 K/ G: @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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
  v6 \0 e0 _  d/ u. f" {$ N  d: m     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。0 g! O" D* S( U4 F2 V6 y& u

/ e0 `6 Y* ~- J# ?% a* G* f! m- ?4 e# S6 J! d; E
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-27 15:43 , Processed in 0.038389 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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