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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 3 w" C/ q: P# n( R- K
  1. [code]EDMA sample test application7 W" @# q, _2 k/ K4 u! {
  2. /*1 k, A  M. c& c" g' ~; }
  3. * edma_test.c& N& X! K5 d. ?, H( |0 S! Q0 b
  4. *
      v  G& F4 _% l$ ~
  5. * brief  EDMA3 Test Application$ W: i2 i+ R( B- s
  6. *- b& R+ }* o3 E
  7. *   This file contains EDMA3 Test code.
    ' n2 S0 ]8 E( [7 P5 z8 \
  8. *7 D; {0 y# W: x/ O
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE8 L1 y( L/ r$ V( P, h% N& d
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT8 G  n* `* t+ Z& i, o/ M* A& B
  11. *         TO CHANGE.# C6 }$ J! B- n5 o$ a! h( ?" ]
  12. *
    ( t' K- Z, j+ \3 U+ }
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    ( V/ i* S1 O) C( d, y. s
  14. *! H- k8 H& ]# s0 ]+ l
  15. * This program is free software; you can redistribute it and/or
    ; i- w( u$ I: X# e- I
  16. * modify it under the terms of the GNU General Public License as
    7 A& c6 ?- d" e6 b/ U7 g2 J
  17. * published by the Free Software Foundation version 2.
    & n+ H+ p/ {. ~  C
  18. *: r" }$ E0 g+ C; [( c/ g) }7 W" }. D
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    : Z* l- u2 x+ o. G( y# N1 C
  20. * kind, whether express or implied; without even the implied warranty
    ! E& H% k; r5 g4 R3 ~9 j* _3 M
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    4 T7 }/ V; V5 i8 t' {
  22. * GNU General Public License for more details.
    + X( h4 [: g* F) K2 p2 K* }" M7 G- m
  23. */2 I9 P7 S5 t) G
  24.   c, I' Q) T6 j! C4 Y5 q* N0 a5 w
  25. #include <linux/module.h>- H! {; M9 M& ]2 s! M& y
  26. #include <linux/init.h>
    8 A# E( K& _; Y3 n" T2 ^/ p
  27. #include <linux/errno.h>; @3 Q$ l* y% \
  28. #include <linux/types.h>2 s4 [/ a5 T% \. E  h. Z: X5 y. i) v
  29. #include <linux/interrupt.h>
    2 O& _% ^1 p* g2 P/ s1 u
  30. #include <asm/io.h>
    ! G# h; h( m: ]
  31. #include <linux/moduleparam.h>; O  ^) l* ?/ |+ T0 b5 a, ]9 x* ]
  32. #include <linux/sysctl.h>4 F4 g, y' J! [, m! S# @
  33. #include <linux/mm.h>4 i0 `+ l4 A; o$ o8 O( ~3 K
  34. #include <linux/dma-mapping.h>
    % r3 b' m# a5 I
  35. $ T7 }" b# P) t) |
  36. #include <mach/memory.h>
    4 j2 @& ]' x' _: I4 {
  37. #include <mach/hardware.h>
    3 K: o! @; L6 J
  38. #include <mach/irqs.h>- X1 ~4 E; S$ v) ^) R8 E
  39. #include <asm/hardware/edma.h>
    " A' ?% C+ I% }. ?8 h' @, s' ?

  40. ; F' F- i( z" @
  41. #undef EDMA3_DEBUG& N. T# y' _6 P1 H$ e
  42. /*#define EDMA3_DEBUG*/
    % F. n, l; g" Y/ c! |4 T
  43. 5 E3 F3 `) B$ I8 w  b3 m+ E
  44. #ifdef EDMA3_DEBUG3 F+ j/ a: J6 i; H. ]3 j
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)7 m0 _4 f4 ]& R! }
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    # `8 Z/ _$ W2 C, }/ ?
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    . V0 f( }9 T0 j& a8 ?
  48. #else0 k  ^) E  B# |) ?9 x
  49. #define DMA_PRINTK( x... )
    4 H7 O) p; Q# O1 C7 S" w
  50. #define DMA_FN_IN) ?7 p: m3 L% }
  51. #define DMA_FN_OUT/ o: N& S; `3 C8 i' J9 z; K
  52. #endif) O+ t* `- o! u1 f3 R/ T
  53. 0 O+ J, h- f5 z7 g
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    . D! g6 K6 k$ O: a( p+ F
  55. #define STATIC_SHIFT                3
    1 Y6 @  Z5 p- _# `3 Y6 Y
  56. #define TCINTEN_SHIFT               20
    + P( x, [% t: u, W
  57. #define ITCINTEN_SHIFT              218 h- @' |- C( R6 {1 D
  58. #define TCCHEN_SHIFT                22
    8 b& `0 a& K9 @- `/ e8 s* p
  59. #define ITCCHEN_SHIFT               23
    . r/ w4 [0 o+ i2 |

  60. ( k4 m; Z6 z+ g- E; X: m
  61. static volatile int irqraised1 = 0;! h: W% q2 E7 B. @0 z; L4 F2 R# a
  62. static volatile int irqraised2 = 0;
    - Z9 }$ w7 b8 c+ {$ _
  63. / m, D+ q' L/ P) S. {, X+ n
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    , y, o8 X9 ?( p
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    5 P: g' V& i& i
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    / T- S4 }# b  B. Y% W6 E4 t3 ~

  67. - j8 F7 y) q' s1 a6 `
  68. dma_addr_t dmaphyssrc1 = 0;
    ; \0 S/ `( `7 `) m
  69. dma_addr_t dmaphyssrc2 = 0;3 G) g: }8 O# h3 o
  70. dma_addr_t dmaphysdest1 = 0;
      P5 S% e8 o$ V9 e7 _; v
  71. dma_addr_t dmaphysdest2 = 0;8 w& D- v" u1 e5 V/ Z; n
  72. 2 c6 v0 ?" t; l% O
  73. char *dmabufsrc1 = NULL;
    5 T- U1 ?& `9 b8 |, l$ c! F
  74. char *dmabufsrc2 = NULL;3 Y. s: E, d; u: @' J9 b
  75. char *dmabufdest1 = NULL;6 `7 o9 F8 f* |
  76. char *dmabufdest2 = NULL;; ~4 y, M# r( y: S% a" p
  77. : r) m& H/ R8 Q9 ?; F
  78. static int acnt = 512;& j- j3 a3 i2 {6 k0 V! q; H
  79. static int bcnt = 8;
    - w+ W/ O1 J; S, ~. p
  80. static int ccnt = 8;
    6 S1 K3 Y# N. N" C
  81. 2 F6 {5 |9 b1 O7 M$ y8 d0 ^
  82. module_param(acnt, int, S_IRUGO);+ j- g0 [% S- C. z- s$ ^1 ^
  83. module_param(bcnt, int, S_IRUGO);
    2 {' d+ m0 K! z) b0 p
  84. module_param(ccnt, int, S_IRUGO);
复制代码

! Y" N1 s% j, n. [' W) n9 q
8 s/ `9 x7 Q$ X+ ?0 r      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用3 A0 x9 m& `; C; @
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
9 N( @: t8 o5 d/ Q: Y/ g9 y     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。- A7 U; o) B7 d9 d% N! m  B

% C" v5 `" N- Q+ T9 _
& e! O" {4 O; r' W, @$ A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-15 23:06 , Processed in 0.038863 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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