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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑   i# s3 |/ Z0 L9 m+ v
  1. [code]EDMA sample test application1 p8 Z. t5 g3 @
  2. /*4 E8 r6 ^2 \& m! ^1 e  S# K
  3. * edma_test.c
    : g5 o$ R/ `' m9 E( W8 v6 }
  4. *' m. J# L: ^8 j6 S
  5. * brief  EDMA3 Test Application
    9 s( S, M* L2 Z
  6. *
    & @. Z& d2 J+ Q* z+ a4 I
  7. *   This file contains EDMA3 Test code.8 U4 t4 v" f. S
  8. *
    . b9 F5 E2 I9 F4 V( ^8 A! w! c
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    . C6 `7 L/ {7 H0 L( D3 O
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT, t) S, K7 ~6 C
  11. *         TO CHANGE.9 _# M! f9 H. ^$ ]: {
  12. *
    : J+ A2 Y4 {+ k/ q
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    7 h0 M- _) h7 _; K
  14. *
    * h6 c  q( n8 R
  15. * This program is free software; you can redistribute it and/or3 Q; h; r+ }6 o' o
  16. * modify it under the terms of the GNU General Public License as
    2 w" w2 d6 i0 {4 @+ e  t4 T
  17. * published by the Free Software Foundation version 2.# s; K9 Q5 e: J! p4 _7 D, S
  18. *
    6 _2 t* i- A8 Q# a0 `
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    9 {' o+ ^; F  ^4 c+ T- v
  20. * kind, whether express or implied; without even the implied warranty
    + y5 d( j! x$ D2 `+ M/ B
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    ; Q( u* ^; f2 P; I& ~- g
  22. * GNU General Public License for more details.. X# Z9 H2 {; C1 w/ y
  23. */
    : Y0 z% y. H5 l: f+ H. l
  24. : n; T0 B( \4 q5 {) g
  25. #include <linux/module.h># T6 }1 Q1 @& t3 k1 O- N+ b7 w
  26. #include <linux/init.h>: B/ u! \7 ^' o$ V* k, P
  27. #include <linux/errno.h>7 |, Q- E  x* _8 m( I6 ]
  28. #include <linux/types.h>  u9 v, d1 ]+ X" o: v. R
  29. #include <linux/interrupt.h>1 c) J* r+ \; P( l5 |: q! j% R
  30. #include <asm/io.h>
    - N; R! a; L: e3 z6 u9 v, Z
  31. #include <linux/moduleparam.h>% b* O; Y; _' N' A- ^" q4 i# q
  32. #include <linux/sysctl.h>7 u+ j* t: q8 ~0 m# J+ V, j
  33. #include <linux/mm.h>
    5 e; _. l6 O9 f3 a" H3 f( R: C9 h
  34. #include <linux/dma-mapping.h>
    $ F' p! _' `0 \: w- p3 Y
  35. 8 w9 u& N2 @  a' N3 H
  36. #include <mach/memory.h>/ n4 E% |7 e$ q5 ~! j
  37. #include <mach/hardware.h>
    , x5 Q% `  Y6 R2 s& g
  38. #include <mach/irqs.h>3 l: V- w4 W5 U, S9 g2 G6 S
  39. #include <asm/hardware/edma.h>/ v& c4 o7 ?5 e3 ]' y& }8 W5 [

  40. ; |, L9 v, Y) Z+ x
  41. #undef EDMA3_DEBUG: r2 K! J. B$ d- i6 z+ O
  42. /*#define EDMA3_DEBUG*/
    / h9 S  ?2 l. v  l$ ~, j4 \

  43. 2 y9 b2 r( d5 j) c8 R. h0 t
  44. #ifdef EDMA3_DEBUG8 S3 C9 t9 B2 g, C
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS). e5 `  P0 {4 C! A& O
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)  M3 V8 l6 x; F6 g% c5 D6 v( S
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    , Y; k5 O; j. n3 x) `+ @& }! r1 r8 |
  48. #else! ]6 ?( y8 R! |
  49. #define DMA_PRINTK( x... ), q6 F" X: t3 A) e$ `# m1 c4 j
  50. #define DMA_FN_IN
    2 u! E. s4 [2 G8 z
  51. #define DMA_FN_OUT: D* l' y. [- Z9 t" u# ]
  52. #endif& `6 h* Z: ~; E$ E% T

  53. ! p* @3 O1 s; Y0 M7 w  s% z& ?& d
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)2 z$ n6 b( c! h! B
  55. #define STATIC_SHIFT                3
    / N9 e; A- H! i8 z
  56. #define TCINTEN_SHIFT               20
    7 T. W1 @9 C8 \1 G; v
  57. #define ITCINTEN_SHIFT              21$ P7 S4 S; N( D' A# {
  58. #define TCCHEN_SHIFT                22* w2 u( n5 t2 ^- O& D( I1 i! v
  59. #define ITCCHEN_SHIFT               23
    $ f) o" ^& N5 \6 U3 i
  60. , O7 N8 P: i9 C6 t
  61. static volatile int irqraised1 = 0;1 Y3 U* a* P: \
  62. static volatile int irqraised2 = 0;2 O$ X: X6 P: B* Q

  63. 9 `! ^9 }9 y$ E( v
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);% @- m) f* a! v5 `- v  D% a1 O  K
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    6 I  k- K4 ]3 s* W1 S  g
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);- d$ X. f+ E# R9 h! o0 O
  67. & m$ R. e2 U; D5 b: f: X- i- P1 A6 h
  68. dma_addr_t dmaphyssrc1 = 0;. r8 ^6 V$ J$ h' ~) r0 h3 t( J
  69. dma_addr_t dmaphyssrc2 = 0;1 a! V1 [/ @9 g, f* a% w
  70. dma_addr_t dmaphysdest1 = 0;5 K- V, t% {. o
  71. dma_addr_t dmaphysdest2 = 0;) L) I% u) j0 I3 _3 D

  72. : g/ E2 F% k6 e5 |: h1 S0 z( r
  73. char *dmabufsrc1 = NULL;
    ! q3 e# _2 `' J. z, Y
  74. char *dmabufsrc2 = NULL;6 X7 j6 _4 P/ w* K1 ^. M2 D
  75. char *dmabufdest1 = NULL;
      [0 f. b& \4 y# w( w1 ]3 u
  76. char *dmabufdest2 = NULL;$ v) v  G5 s  B; c* I( `8 Q
  77. ' T& a* v6 f1 w$ [1 g
  78. static int acnt = 512;
    ( o( m2 R0 i) S0 o) b
  79. static int bcnt = 8;) K* ^  C$ ~' |8 H5 g' J
  80. static int ccnt = 8;) l' D3 k. D  L# R- z- j

  81. * e6 T! m, A/ J7 Q! F
  82. module_param(acnt, int, S_IRUGO);
    / W" D" d3 i: o" W
  83. module_param(bcnt, int, S_IRUGO);
    6 m0 b8 y0 ]4 J- h" V$ s" \
  84. module_param(ccnt, int, S_IRUGO);
复制代码
" b2 s3 h# I$ A4 I; p* ]( W7 w
, O$ b* p8 K& ^5 W9 S
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用3 v8 u( r7 ]7 }; G8 R* y! t
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
! R* n" F2 K, O& k" G' `     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
  }: R# x  E- V
7 J! `) E4 L' X. E& |6 M( G  i1 Z; y& Q9 g/ A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-10-11 23:33 , Processed in 0.045399 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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