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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 & F7 x, s' v8 y) S3 F* c* I
  1. [code]EDMA sample test application+ R7 Z) _( q9 X. X3 S
  2. /*
    4 o9 l: p8 ?: k& V* d# S/ U
  3. * edma_test.c
    8 O* h* q4 e7 D; [2 ]0 E
  4. *
    7 I: X" Z6 V! h, C" R4 E) R! ?
  5. * brief  EDMA3 Test Application7 j' G7 h0 d4 [# J! v( K
  6. *5 E, G, }% D" C" W
  7. *   This file contains EDMA3 Test code.. E8 R# @. M. Q8 q$ c2 y0 }0 Y
  8. *. ?9 q. I. {- m7 p+ k9 z+ V. M* {
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    - q, s( S4 F7 T4 C
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    ! @! B/ G  {( ^/ e4 w5 f8 {
  11. *         TO CHANGE., A4 k+ ]3 j; e$ A9 P- r! K
  12. *( {: n0 o. B) S
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/6 `  y- f3 s' Q5 b! r& M* ?
  14. *2 o) {0 u! U2 n8 Z8 v5 {! }) a
  15. * This program is free software; you can redistribute it and/or' H) k$ R1 ?4 O6 y
  16. * modify it under the terms of the GNU General Public License as
    ; e: U. w  J# ^" v8 i0 _6 L1 l& f/ R
  17. * published by the Free Software Foundation version 2.
    , P+ i4 @+ M& }, E: Q/ ~
  18. *
    * D7 N* l4 E) [& W0 j
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    : ^" Z% U' G9 S) F9 [$ ?4 L
  20. * kind, whether express or implied; without even the implied warranty( J) O3 }5 r) _- t
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    9 n9 j  v' d& N! z3 P/ i- F
  22. * GNU General Public License for more details." ^) l% i& x& l" h! B4 ^
  23. */
    & S! n7 n2 r" R
  24. 8 j/ x4 m( w% v& d+ c
  25. #include <linux/module.h>
    ) [4 o+ ~( b4 x( {
  26. #include <linux/init.h>5 `0 G5 o" n9 H9 B, M# b( V; c
  27. #include <linux/errno.h>; q% f8 ^( F" s4 L8 d
  28. #include <linux/types.h>
    : h6 b% Z, ~: `; k9 e1 p
  29. #include <linux/interrupt.h>; [' i' m7 U0 E* w0 i
  30. #include <asm/io.h>
    " D5 N, f1 ~* L* j; {
  31. #include <linux/moduleparam.h>3 b4 r+ |( J/ N- R. @
  32. #include <linux/sysctl.h>3 Z+ K9 e1 d/ D
  33. #include <linux/mm.h>
    ) j8 v0 {' Y. N/ D- r* Y# O
  34. #include <linux/dma-mapping.h>8 c0 h9 ^% N  G4 N& _

  35. % o- ?! l4 m* i) x
  36. #include <mach/memory.h>" r3 C) y" t$ X  u" K1 F
  37. #include <mach/hardware.h>
    0 U+ D' C# O6 m8 _4 r' g' Y+ z% E
  38. #include <mach/irqs.h>" V& v% ^2 O0 p
  39. #include <asm/hardware/edma.h>
    5 k8 N. C0 ^% ~( F6 k
  40. 4 n8 U" \- S! v% w& u
  41. #undef EDMA3_DEBUG' ?7 J& f8 Q" g( f) [* C% K/ c
  42. /*#define EDMA3_DEBUG*/7 w; X+ Q) ^& ]6 G9 q8 A" J* g

  43. # e% @, t2 I" C
  44. #ifdef EDMA3_DEBUG# C3 e7 [1 t# I# {+ T
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
      H8 P! F. Q# e/ F, t: d
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    ! B$ P& W% s$ d( Y9 E
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)3 }3 d8 d# Q! Z; v% Z6 {( p1 @# [
  48. #else
    1 _( w; S& i$ D
  49. #define DMA_PRINTK( x... )* |' ?7 B" y9 i; Y
  50. #define DMA_FN_IN
    . M+ A. f. W6 E" u, U# Q
  51. #define DMA_FN_OUT
    ! L4 s; d. H* z/ l
  52. #endif/ k  O. z4 V: h

  53. ) g. q# a  Q. ^' I
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    - s! ^1 v+ m& \7 e; O, Z
  55. #define STATIC_SHIFT                3
    6 o7 i, J* p# i/ m% A; P
  56. #define TCINTEN_SHIFT               20
    + K! j6 j  X/ z5 a" s
  57. #define ITCINTEN_SHIFT              21
    0 V( W8 a9 B( A: S! S
  58. #define TCCHEN_SHIFT                22- H" o; p! z6 z5 @' i5 d
  59. #define ITCCHEN_SHIFT               23
      h2 x3 `; `0 ?1 R8 B! E

  60. 1 O2 X- H) B' Q3 j2 B0 X2 ]0 i
  61. static volatile int irqraised1 = 0;
    . U( A* ]6 }; s$ X
  62. static volatile int irqraised2 = 0;( H2 z7 w$ q( u% z! H

  63. : p8 a! T# l1 E8 c6 x% J
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);% [/ d2 n* L. q6 t, _
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);) V. n) M1 L& A6 V; r; j* q
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);7 g+ b* y; w# G3 }
  67. , t1 O, X  d+ b, \4 c
  68. dma_addr_t dmaphyssrc1 = 0;
    1 z$ I* T# E7 G0 Y: w: M
  69. dma_addr_t dmaphyssrc2 = 0;
    ! Z+ [8 K. |1 |/ @; s  i1 Y6 T. v# L8 b
  70. dma_addr_t dmaphysdest1 = 0;: ^8 \1 L' H: q3 t/ P7 \) ?
  71. dma_addr_t dmaphysdest2 = 0;
      H0 _, @% z7 G& t1 J
  72. , I) M1 m3 r* j' I. v+ ^7 t
  73. char *dmabufsrc1 = NULL;
    3 ?7 D$ _4 ^" p& y
  74. char *dmabufsrc2 = NULL;
    : g  \8 K; v: r9 v7 U) k5 f, l
  75. char *dmabufdest1 = NULL;7 f4 A6 M& H- K. f, B
  76. char *dmabufdest2 = NULL;
    . q4 B  ^2 {1 H: u% H  ~

  77. * n: B" S- _- v6 v7 O4 D! C4 q/ u
  78. static int acnt = 512;
    ; |- B" ~5 O! m3 m# v1 s! g( g
  79. static int bcnt = 8;9 @  ]! N2 d; V2 v- y
  80. static int ccnt = 8;
    % a- k% p, O5 ^7 H  Z
  81. ( a6 U; _, W2 ~0 u* V( ]+ Q7 b
  82. module_param(acnt, int, S_IRUGO);
    * `4 X* |& e8 U: [9 E& x
  83. module_param(bcnt, int, S_IRUGO);
    / n1 {5 O" i6 W3 R$ d: m1 g8 E
  84. module_param(ccnt, int, S_IRUGO);
复制代码
( X& C2 H( J$ s$ d, U: L9 _4 m/ d
& U1 e; O* S8 s9 ~8 j& ^: Y; }
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用/ @! S6 ~& v3 |0 s% T) H' e% B
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。0 U7 i! S* B+ V
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
  e1 z0 U+ e  @- U9 i
  ^0 z, S& n! b3 X6 F! ]. F0 C* B( y$ \4 `3 _  i' h$ b7 x. x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-24 09:05 , Processed in 0.038003 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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