OMAPL138如何在Linux下使用EDMA3驱动 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 . D8 p7 U; _/ A: L6 I# l
  1. [code]EDMA sample test application
    : p# K' }+ n4 g3 F4 x
  2. /*
    - G+ o2 U% |  E! f! A
  3. * edma_test.c
    - {  C/ c& q! V* o3 z# T
  4. *& s. f1 l1 {+ U. `% C1 b
  5. * brief  EDMA3 Test Application
    " B, c/ A/ L6 D' F
  6. *
    - O$ u# h- {7 F! p
  7. *   This file contains EDMA3 Test code.- \' ?7 Z% x& ]3 j
  8. *% j. R) @$ \, O9 t8 K3 `1 f* t
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    9 ]7 C3 x: i8 Q+ h3 I9 T# V( j
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    ' @. H/ G7 e7 |' H4 a  N+ b* Q( i
  11. *         TO CHANGE.
    / |1 O! M5 [8 w, P' S6 V* ~/ a9 w
  12. *
    + D+ ?  W' O9 \! p8 r% d
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    ' l3 r, ]* t3 d7 s1 K% a
  14. *  J( F* }5 U" O2 A) f
  15. * This program is free software; you can redistribute it and/or7 b9 U, h; Z  M* [6 a! z+ G4 _
  16. * modify it under the terms of the GNU General Public License as, J7 V9 k  _7 }6 ]7 Y* I
  17. * published by the Free Software Foundation version 2.( U5 x. j; T' G. X5 P0 ]1 E! s
  18. *
    - ?* L0 p* M! d+ e/ p' H
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any4 k4 i! I9 C8 [; X6 H" o4 h. e# \. d
  20. * kind, whether express or implied; without even the implied warranty
    * h4 U  |" z- q3 \/ x; a
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    * ?! y" ]; f7 h- z6 K; w
  22. * GNU General Public License for more details.
    ( R! I( I  W( }: p# b
  23. */* \: D1 |  j! C/ ^! o! \" F

  24. # w+ _9 ~4 P% C  g% k1 d* @& o* h
  25. #include <linux/module.h>  Q4 t. \! E1 q3 R9 v/ g) L$ I2 h
  26. #include <linux/init.h>
    ( N  j! h' d2 d" Y' I. ?% Y
  27. #include <linux/errno.h>
      F+ S5 Y- X) J5 c7 W" U
  28. #include <linux/types.h>+ |2 ~2 v" Q6 F9 y
  29. #include <linux/interrupt.h>& B" }" m+ M, H1 R0 Y
  30. #include <asm/io.h>
    " O5 i5 T7 u6 e$ p
  31. #include <linux/moduleparam.h>( m2 S( c4 Q1 n' e, s/ L7 d2 `
  32. #include <linux/sysctl.h>
    2 o( u, C4 H% a( \, h9 f
  33. #include <linux/mm.h>* |5 X. ]! l3 W. E( h
  34. #include <linux/dma-mapping.h>% z, }5 [& S" U

  35. 2 v8 B1 g8 B( W# P6 U+ p' b; y
  36. #include <mach/memory.h>. u  ~& @6 }/ M$ Z1 x
  37. #include <mach/hardware.h>
    9 y* q6 f: C/ }- N' q1 |5 ]. B1 `
  38. #include <mach/irqs.h>' u7 S5 g9 x1 d% r2 E8 _
  39. #include <asm/hardware/edma.h>, g% x& Y1 I0 Q. y4 h
  40. & b; V9 J/ J7 f6 H; M. d) r0 \5 R; N
  41. #undef EDMA3_DEBUG: z" _4 w' m5 w
  42. /*#define EDMA3_DEBUG*/7 d' K, N8 Z( _2 F8 R. g7 w
  43. # U+ A# K9 y5 r0 U" t, r
  44. #ifdef EDMA3_DEBUG
    ( r1 n0 z4 M2 c* v/ }9 l# ^7 x
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    9 d8 Q2 u) z( p
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    , I  W8 J3 }( }0 W
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    / A' C2 j& E. K# o* K/ Q6 L1 }
  48. #else
    . d4 s' B, t* H$ L& J
  49. #define DMA_PRINTK( x... )
    ; ~. C9 P% D3 z% R' V' M# w: \% ~
  50. #define DMA_FN_IN. {" U6 [, H' R1 S
  51. #define DMA_FN_OUT
    ! o! N6 _8 `7 J7 J2 e' o
  52. #endif1 U$ G" Z6 r* S% r& P  @

  53. 0 E. y) ^! S, O- m" D1 T
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768), j* g4 f3 g3 o
  55. #define STATIC_SHIFT                3
    $ U0 U% T: T5 m% O
  56. #define TCINTEN_SHIFT               20
    " j9 u! J7 B# G/ h& W: i: Y# `: P
  57. #define ITCINTEN_SHIFT              21. z* ^+ @2 }) L$ E" A8 M
  58. #define TCCHEN_SHIFT                222 X9 Z0 J- K2 S$ u* y6 P
  59. #define ITCCHEN_SHIFT               23
    ) N: |. K' h& j) x+ V

  60. 7 M' B0 M5 }# N/ k/ u
  61. static volatile int irqraised1 = 0;
    # c" M- v7 b$ E  T) ?6 L
  62. static volatile int irqraised2 = 0;+ G" C" U& N* @4 G* l+ Q/ d& L: `
  63. 4 M1 ~! o. g# J' V8 r9 r! n0 ~
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    / _9 Y8 D) U2 i5 W" f; X& _
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);' a  x1 {( s" a9 x
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);' F5 x* V& K  o( w6 b3 D4 @1 t

  67. ! _4 x$ I& f0 e6 a
  68. dma_addr_t dmaphyssrc1 = 0;' F& z& \9 V: v/ }* z! H
  69. dma_addr_t dmaphyssrc2 = 0;
    ! p* X, H* w2 h7 S! O  `
  70. dma_addr_t dmaphysdest1 = 0;
    8 a% t; g7 n  H
  71. dma_addr_t dmaphysdest2 = 0;% Q! C# W3 h. ~" @- {* y* f

  72. , p* n7 _5 x+ M6 N% ^+ r/ B4 k
  73. char *dmabufsrc1 = NULL;
    2 `, u- z  G3 l( |+ ^1 `+ W1 X
  74. char *dmabufsrc2 = NULL;1 b2 x9 u- p2 U; z# K- v2 G( `- H  V
  75. char *dmabufdest1 = NULL;
    ' i4 n! g5 a+ v' @9 D# u
  76. char *dmabufdest2 = NULL;
    ' e( e& Z/ i9 S. k: A8 o

  77. , f% J( _/ {6 C6 c; n
  78. static int acnt = 512;
    9 d3 @" T- n& E: k0 _
  79. static int bcnt = 8;
    5 s+ l4 c1 ~- h& t
  80. static int ccnt = 8;) G0 T$ p# H% d. b

  81. & |  [. S) U8 n# d) I
  82. module_param(acnt, int, S_IRUGO);
    ! O+ h4 R' e" S5 ^" o* F( m
  83. module_param(bcnt, int, S_IRUGO);) j3 b) E% T1 C# s1 U
  84. module_param(ccnt, int, S_IRUGO);
复制代码
: Y& C' D6 v4 H6 L! R4 a' i% p

0 v! j, S6 `/ L& z) V- Z9 L      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用' G3 n+ R" U0 {! Z* Z+ s
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
/ R3 [' Z+ N$ c( H" f     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
$ _$ y8 K! O7 R* ]4 m' X8 m  t/ Z( K% r8 J
2 U& N' ^$ T, C1 x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-10 07:19 , Processed in 0.044588 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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