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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
3 L2 _$ A  i* ?) A& z( W1 S0 N- S
  1. [code]EDMA sample test application
    ; j* R) h3 n( B8 C/ U- G
  2. /*
    0 c/ a( U: U6 I+ J5 g8 R
  3. * edma_test.c
    3 c9 Q( {6 H1 W6 M+ h% z' c! a5 L
  4. *
    , G3 O( @' x9 Y" j3 O
  5. * brief  EDMA3 Test Application
    # y7 l9 X" g! b+ [& W
  6. *4 ?- u( R; c6 K' U3 Q6 y
  7. *   This file contains EDMA3 Test code.
    ; [/ V5 n5 I: O
  8. ** n: T8 `- o- _  ?- E$ v
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE0 {# U6 t, V2 Y; Q) h/ s7 g& B
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    . o  s& |6 ]; f2 }# s  Q
  11. *         TO CHANGE.
    % j- @; u+ ]# }) q
  12. *
    . A& U& [5 _* S( Q. ?- l  L8 u
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    7 ~* w! @/ j, `$ y/ ?
  14. ** ]/ l1 z& r* _7 t8 v% w, Z/ ^
  15. * This program is free software; you can redistribute it and/or4 x* y: B" h- i+ w+ i, z- t5 l
  16. * modify it under the terms of the GNU General Public License as
    0 f/ V9 ]+ V3 T* F) j
  17. * published by the Free Software Foundation version 2.9 P: u! P$ R, O# }  C- t
  18. *8 g: t6 b: H7 i  F5 F
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any8 Y( p; h. T' @1 i5 S' p
  20. * kind, whether express or implied; without even the implied warranty) C, X# M+ S8 D2 {  r& M) L
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    & r4 @; x# e& o0 E; h
  22. * GNU General Public License for more details.
    + y% m7 r/ B2 P0 p. e( O' T3 h
  23. */( \3 r! }2 e2 k7 k* k
  24. % Q, M/ G! l0 c: u. y& e/ C. Z0 z' U
  25. #include <linux/module.h>, v6 O# T/ u  L  w: d; v' L- ^6 f: [
  26. #include <linux/init.h>
    % X4 I% h$ ?8 |8 s- M
  27. #include <linux/errno.h>
    " a8 b! R, e, ^- m, w3 E
  28. #include <linux/types.h>
    : c% r5 i) R( S, u3 S4 h4 [
  29. #include <linux/interrupt.h>
    8 ?$ w) Y. L+ t" H" O
  30. #include <asm/io.h>
    9 s, M1 W7 ?  m0 N! o6 v+ o
  31. #include <linux/moduleparam.h>
    & i4 Q; i# ?( O
  32. #include <linux/sysctl.h>3 d- R4 `! ~- t0 w" n+ x
  33. #include <linux/mm.h>" p% i3 Y  e- M$ o0 r' H2 X
  34. #include <linux/dma-mapping.h>
    5 P# U/ F; l# p" }4 w3 h
  35. . e( H$ g# ?; [( o" P
  36. #include <mach/memory.h>
    # x0 |8 O, @4 a
  37. #include <mach/hardware.h>- N$ N0 ^0 V8 V& }$ i- p4 r- U; U1 A
  38. #include <mach/irqs.h>+ G# ~7 m( K1 k" ~  X
  39. #include <asm/hardware/edma.h>8 t) o) I8 F- I" i4 N$ l

  40.   v2 K7 t3 K( k; x, ^6 N
  41. #undef EDMA3_DEBUG
    + Q: g! l% c  l
  42. /*#define EDMA3_DEBUG*/
    5 d7 M/ o/ @0 m9 d8 I
  43. $ i* d: ]' _. M) U
  44. #ifdef EDMA3_DEBUG
    $ X$ [9 f/ }) p( r4 `( C6 l0 v
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)& K/ ~! j0 C$ b: t2 v. f" k  M& G' t
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    : I* z1 P. F, Y% w7 l# z" @
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)8 u& H6 B$ W1 j; F- _$ j5 x$ z0 r
  48. #else: L+ n7 O6 S- V! [3 P) A) F5 r+ \5 x
  49. #define DMA_PRINTK( x... )0 ^5 t7 n* r3 i% A; }6 X
  50. #define DMA_FN_IN( _' l% X  b0 `0 n) H
  51. #define DMA_FN_OUT
    * B  S2 I0 u% S1 [/ F5 L
  52. #endif6 I8 b: l! u, {. a4 l9 [( S$ i

  53. 5 n# N9 U) Z& n* w: j
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    5 X; w4 q2 v3 |8 @% w1 e* ~
  55. #define STATIC_SHIFT                39 E" |6 P2 a4 H) E* x$ s, r8 @, G
  56. #define TCINTEN_SHIFT               20- R  m' @5 f2 N% t& X
  57. #define ITCINTEN_SHIFT              210 f3 U# c) f1 N
  58. #define TCCHEN_SHIFT                22
    % W' @' h2 d0 A* |
  59. #define ITCCHEN_SHIFT               233 s; p& A+ O% r$ T/ l) `
  60. , j6 M$ w6 J$ q0 C4 _# T" C8 j- m% s' s
  61. static volatile int irqraised1 = 0;
    ( a1 p7 s+ J9 f: O- y
  62. static volatile int irqraised2 = 0;/ p) G/ i2 n' |) H4 O
  63. % g- v; S  h2 m  O
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);5 z( e7 f5 o4 [" i6 C4 F/ L
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);! U7 J9 W$ U$ Y3 O) R* M. y
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ! C5 ]# p1 K: \- x

  67. & B' G/ k3 o* \, V+ k$ m$ d
  68. dma_addr_t dmaphyssrc1 = 0;1 p6 |0 ]6 y0 p) l, O8 I: z
  69. dma_addr_t dmaphyssrc2 = 0;
    0 M3 Q8 A1 ~1 m. l; k
  70. dma_addr_t dmaphysdest1 = 0;
    4 M. W- D& k( e( ?, w
  71. dma_addr_t dmaphysdest2 = 0;
    - ~: T4 U+ Q! \3 J- z  [9 Y5 w

  72. + Y) Y. ?+ t0 |& O7 |
  73. char *dmabufsrc1 = NULL;# R: ?* x! E% }: W( i* N: B
  74. char *dmabufsrc2 = NULL;
    / N: B, ^; g  n' H
  75. char *dmabufdest1 = NULL;
    - |/ h3 U  d; Q; M3 x2 Z
  76. char *dmabufdest2 = NULL;
    & J. S2 u- R6 x7 B6 K# e

  77. ; K, ?4 o+ T' s( r0 E" _
  78. static int acnt = 512;6 E, P6 U8 M! v# {- D; e2 ~
  79. static int bcnt = 8;6 L) l, B5 ^4 u# j+ X% _0 Z( v
  80. static int ccnt = 8;0 h8 }" x: }9 o* J
  81. % |# L" o. |: a  l" M2 }
  82. module_param(acnt, int, S_IRUGO);
    ( h3 _( L9 y! C. ?7 I
  83. module_param(bcnt, int, S_IRUGO);
    ) o, U3 H+ c& ?9 L8 d4 @
  84. module_param(ccnt, int, S_IRUGO);
复制代码

! E+ o8 Y( T1 Z! W4 P' p; W7 A0 s2 T9 E) E% _1 C$ e; Z0 C, v
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用5 r2 C3 P0 b, u* P, e
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。3 a& f& `0 A7 N1 Z
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。6 m  }& J; u3 d% k9 K, T/ m5 ^

! |: l/ ~) m1 G5 C* w3 H& D0 B# c6 q  K9 P" I0 g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-9-13 23:36 , Processed in 0.039011 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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