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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 ! e! F( a( h! O" n4 W# L
  1. [code]EDMA sample test application
    * k6 Z4 o% R7 O$ E6 @. c. |
  2. /*- l$ ]0 q8 J, C8 ~1 s4 L8 O
  3. * edma_test.c% K' |' _1 V! i/ j5 B7 J+ q
  4. *9 w% M' C2 u+ S& b/ {
  5. * brief  EDMA3 Test Application
    . P3 Y9 Q6 C$ ]2 u$ p/ r
  6. *
    ; Y! L5 P1 U6 k% s5 o+ w3 ?
  7. *   This file contains EDMA3 Test code.
      ]5 o  N( [1 s) K* ]2 ]
  8. *% n$ L+ k) {! c6 D0 Q
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    1 k& K+ M# O' }  f8 E' k- h. f
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT, f6 X$ E0 g& N# H  g/ H" A
  11. *         TO CHANGE.* h# H4 L$ o! L
  12. *- n6 r% G7 g5 A3 q1 l1 c8 f
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    2 h) [3 T9 E: D7 Y8 L/ C0 z6 D7 D) W
  14. *3 K! Q% X$ d! i* w; ]* }8 d
  15. * This program is free software; you can redistribute it and/or
    $ Q# m" g, V$ s
  16. * modify it under the terms of the GNU General Public License as
    + T5 r% V1 x& c6 u4 m, ^
  17. * published by the Free Software Foundation version 2.
    ! z% Q5 G$ e2 N# R2 ^
  18. *8 [' g1 H5 {" h" L
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    0 k( K1 J# \! K( ?9 C6 ~
  20. * kind, whether express or implied; without even the implied warranty
    0 V1 u6 |# [& @1 Z* h# a
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    . _  p, a5 J, g# ^" P2 |  J
  22. * GNU General Public License for more details.
    2 ]" a9 g% L; b1 k" C( A% M
  23. */
    & C7 Z0 x( {/ S% h9 D+ f( n

  24. 2 A2 b& E" V, ?! P5 g4 j. m% ?, b
  25. #include <linux/module.h>
    1 L0 P7 i1 E3 c% M
  26. #include <linux/init.h>
    ( O. R4 q4 \3 y, D. b. }
  27. #include <linux/errno.h>: M3 G. h: n( `8 g3 j$ F
  28. #include <linux/types.h>
    4 W" O4 Q3 k. b& }. |* ?
  29. #include <linux/interrupt.h>/ f+ o, T& r- x( K6 c
  30. #include <asm/io.h>9 t; W$ d6 v) j
  31. #include <linux/moduleparam.h>
      ]* j( \" l4 V
  32. #include <linux/sysctl.h>
    ) Z: _6 L5 l! A8 k! @: @
  33. #include <linux/mm.h>
    / _4 Y+ D0 }' k; X6 Y3 Q# p
  34. #include <linux/dma-mapping.h>
    - d$ I+ W0 o/ a' x

  35. 4 R* z3 P( T' r8 c# Y
  36. #include <mach/memory.h>) s0 Q: H* x6 ]% R" u
  37. #include <mach/hardware.h>
    9 e) z& k% i) P( ]- b9 U
  38. #include <mach/irqs.h>1 s0 _& E  a( f9 p% Y# _& y
  39. #include <asm/hardware/edma.h>
    ( E; f2 V( K- c4 @: u0 h
  40. . ^5 I3 z1 p$ _, P
  41. #undef EDMA3_DEBUG
    # I: L2 f1 @% E- p& v3 [
  42. /*#define EDMA3_DEBUG*/
    ; a" n6 u+ U# V
  43. % t  l5 P, B0 u) Z3 G  F# d
  44. #ifdef EDMA3_DEBUG6 q; d, |0 r3 Q3 u' p8 q6 L
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)! E# T6 [- D, f6 R
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__). y! a# c% _( [& w/ H5 x4 ^; |& T1 U' S
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)) A. H/ V4 k: ]$ M
  48. #else1 b, d4 C& {- s- E1 z  g1 J* t
  49. #define DMA_PRINTK( x... )
    8 _. N" E' t' ?6 m4 G' E
  50. #define DMA_FN_IN
    0 K2 n+ k% N) m7 {! y8 z  g
  51. #define DMA_FN_OUT# y5 a5 w  e: d' s; Z% b1 c6 ^
  52. #endif) P: [/ L, C/ ~; T2 m+ \

  53. ( k0 g9 ?2 i5 H1 ?: ^4 }
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)6 ?  n: a6 V8 A
  55. #define STATIC_SHIFT                3, _& C. C7 u! p  v+ K* Q
  56. #define TCINTEN_SHIFT               20
    ( I! \2 l; q* ?9 ~6 O' y/ U, {( a: v# }& }
  57. #define ITCINTEN_SHIFT              21# y- {: C  R" t* B4 M# w
  58. #define TCCHEN_SHIFT                22
    ( l0 |! X3 N2 z5 I6 O
  59. #define ITCCHEN_SHIFT               23! W  a8 r) {0 e8 P7 P- R2 ]! X

  60. 4 \3 j* F* V- I; g9 w# R" n9 w
  61. static volatile int irqraised1 = 0;
    , S- ^* U7 r9 @- b  J
  62. static volatile int irqraised2 = 0;
    : Z& b0 H% ^3 z4 F4 x2 x
  63. ) H4 a4 ~% [  B) A# l
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);; |4 H+ }+ x6 ]' d
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    & A" m9 M0 [2 G1 L( _. G3 z! z
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);; V1 l+ @; d6 f8 [* R1 ~* Y

  67. % N6 ~' G* \! a
  68. dma_addr_t dmaphyssrc1 = 0;
    ! l( W$ h1 V  f2 r" h
  69. dma_addr_t dmaphyssrc2 = 0;
    + s; `" q& G, B
  70. dma_addr_t dmaphysdest1 = 0;, g# u$ H3 m& [; g% ~
  71. dma_addr_t dmaphysdest2 = 0;  g: m7 ?- f/ K" E" X1 S
  72. # {; o; [+ H+ e) }8 H3 X" y
  73. char *dmabufsrc1 = NULL;
    # C0 t# T- |) l4 h4 }7 I
  74. char *dmabufsrc2 = NULL;
    ) n8 P2 _/ U! o8 S; J/ Y7 Z$ E
  75. char *dmabufdest1 = NULL;
    " Y: N( Q6 b% i# s& G
  76. char *dmabufdest2 = NULL;
    8 a2 y$ V/ w" E! y3 d$ t% D4 b# S% V
  77. ( o9 z# A) m- c
  78. static int acnt = 512;
    8 O+ o( [* `* O/ K" h
  79. static int bcnt = 8;# C# {0 J+ r+ d$ E8 t: @, S* g
  80. static int ccnt = 8;
    3 u  g+ C0 T$ [: c: i
  81. 8 e4 e: B& P- [) L
  82. module_param(acnt, int, S_IRUGO);1 t' J( X/ P/ Z. `
  83. module_param(bcnt, int, S_IRUGO);
    3 j. t/ U* f# ~: y8 N9 e" ]& M7 a, F& H
  84. module_param(ccnt, int, S_IRUGO);
复制代码
4 G$ ~/ `$ T& v" {# J) j
) F5 p" B1 Y; K
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
) B3 |; R5 S" S9 f- ~$ qarm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。  z5 u9 N2 _# n- ~. R& v
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。  [+ M' J" i3 l
2 p# `$ J$ M( F
2 H+ z+ Y9 P7 |. ]# N( j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-15 10:37 , Processed in 0.045349 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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