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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
3 v- c7 J, ~5 \# `, U
  1. [code]EDMA sample test application# X9 @( W5 ^' c% m: [: w2 v1 h
  2. /*6 I0 |( W' b' W* V" z1 X0 _
  3. * edma_test.c
    # T1 y$ @7 i* e/ p) d
  4. *
    3 Q3 O$ t$ X# u: |
  5. * brief  EDMA3 Test Application
    / d. h& q: Q% D
  6. *7 M4 u/ B5 J2 c" s7 X4 ], f0 k* M; L
  7. *   This file contains EDMA3 Test code.
    $ s+ z+ C* E6 h# N- o4 ]+ Q# j- k5 X
  8. *
    ) M& K3 N- g0 x3 M; F+ L4 A
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE9 `: o% f1 g# q1 a. E7 y/ L! A
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    $ f- v. Y. B% K5 Y$ K3 B% g+ m  t
  11. *         TO CHANGE.0 x  h7 a; ?, V# M
  12. *
    $ ~5 M: }2 a! |& s, x' }* \! \
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/: z! V$ T6 [) n& o4 r+ `& _; O& Z
  14. *  m" O- O7 i% ?6 P  c' M4 o7 g, ]
  15. * This program is free software; you can redistribute it and/or6 O6 Z! G" |9 j! ]
  16. * modify it under the terms of the GNU General Public License as
    ; u/ f/ P" L( g9 w+ u3 q, w5 Q; d
  17. * published by the Free Software Foundation version 2.
    9 U8 g. u( u8 B5 ]6 |8 a' U2 F) q0 V
  18. *, f) E. \5 [0 `, b6 p( w. q
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any' Q5 Q0 @/ \  h5 I, y8 r
  20. * kind, whether express or implied; without even the implied warranty
    ; m  }# U4 z0 K
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    ' t3 K1 `1 _$ N( k3 T1 w6 y! x- O, o
  22. * GNU General Public License for more details.! M' @+ d! O" `% @9 y
  23. */
    " ]2 L8 J( R( F6 {* X
  24. % S9 }1 m; i# M
  25. #include <linux/module.h># U& o! x- J3 k* \! F/ P
  26. #include <linux/init.h>
    0 D% O9 E6 t8 ~3 P8 n5 A8 a
  27. #include <linux/errno.h>
    # L9 L: r) c" j6 J# M
  28. #include <linux/types.h>
    ; k" J! U5 i/ u1 t) A" p
  29. #include <linux/interrupt.h>6 Y$ P1 B5 b6 Q$ M/ w
  30. #include <asm/io.h>; d5 y0 p/ Q: S; W. l& [
  31. #include <linux/moduleparam.h>
    , A* K! w4 N- {
  32. #include <linux/sysctl.h>+ I. `& [' |5 J4 R
  33. #include <linux/mm.h>
    - n% S5 d+ H" ]4 m$ X. U
  34. #include <linux/dma-mapping.h>, ?- Y, d* p  g
  35. ! U# T  C6 d% T& R7 ]" H  f
  36. #include <mach/memory.h>9 _; K2 H* z2 a& V. q$ u) y
  37. #include <mach/hardware.h>" B& G/ g4 g$ F; l
  38. #include <mach/irqs.h>
    5 z! L: w4 d1 W4 G1 }- I
  39. #include <asm/hardware/edma.h>
    ) W& B/ j: n, S5 B# H% b( \8 n2 Z

  40. ) z4 @4 h6 q  m8 z: e  V3 ]; W
  41. #undef EDMA3_DEBUG# N" i* J5 s. {! Y/ t
  42. /*#define EDMA3_DEBUG*/, }2 t, z9 o. ^& h# P
  43. 4 r- D4 \+ u* h
  44. #ifdef EDMA3_DEBUG6 L4 A! I4 s; {4 Q1 e2 ]6 ^$ U
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    2 J- \" M" N9 l, A5 ]1 X
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    & o  o0 J  x7 X8 O
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    ! r8 O, ^4 K6 G9 {
  48. #else" |( m6 J0 a8 {* W
  49. #define DMA_PRINTK( x... )- z. j9 {5 z2 f9 `
  50. #define DMA_FN_IN2 r/ F4 G. u/ O! ?
  51. #define DMA_FN_OUT
    " K& v8 T' x2 i' N
  52. #endif
    1 r; m( v8 M* @% ?* w2 W

  53. : q  g5 K5 F) `$ `; {  F
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    + O) N7 C2 S! e
  55. #define STATIC_SHIFT                3/ }) n4 U4 q+ O
  56. #define TCINTEN_SHIFT               20' Y4 t4 W- g. g. H1 a& s: S1 x
  57. #define ITCINTEN_SHIFT              21, E9 I2 X8 p& k1 W7 h
  58. #define TCCHEN_SHIFT                229 O6 d- i. h# N$ U* ?
  59. #define ITCCHEN_SHIFT               23
    4 v/ P* K( v6 q
  60. & i8 X7 j; l4 f$ ?
  61. static volatile int irqraised1 = 0;# W) S0 U2 |, [7 t; z
  62. static volatile int irqraised2 = 0;
    % g1 t$ f" r* L; n. U

  63. $ b/ r1 L: m' m& G
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);- n# w3 }- Z/ U% o* ?
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);% j3 u% K+ T' H1 F1 l  p) V
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);9 ^9 ^% Z1 @4 r. X" B2 C6 k" m* Z

  67. - m5 g- L( T) z) ?1 z
  68. dma_addr_t dmaphyssrc1 = 0;( |; L6 ]# U3 V
  69. dma_addr_t dmaphyssrc2 = 0;
    2 M$ K$ M7 ^5 E3 _7 {" A
  70. dma_addr_t dmaphysdest1 = 0;4 U# m! \, D+ A; F- C
  71. dma_addr_t dmaphysdest2 = 0;: N% s/ G' P8 x6 e6 ]

  72. 7 g, d) `; l/ T- {3 U
  73. char *dmabufsrc1 = NULL;1 p! G- m3 a2 D' |6 c5 p
  74. char *dmabufsrc2 = NULL;
    ' f' y, ^  S9 x8 p- D' I4 G9 ]
  75. char *dmabufdest1 = NULL;# i: B6 j2 d7 V
  76. char *dmabufdest2 = NULL;8 g- T( K/ c5 s
  77. 0 U7 L; ]. u7 t1 L1 \  \  }# j( ]
  78. static int acnt = 512;' N. o1 `4 y( L/ B5 l$ t
  79. static int bcnt = 8;
    ( N: m" b3 P* t5 R7 \. M
  80. static int ccnt = 8;
    2 I9 a6 f8 Z; ^, v

  81. 6 G, e, v$ x2 t1 S
  82. module_param(acnt, int, S_IRUGO);
    ; u* m0 J8 @; @
  83. module_param(bcnt, int, S_IRUGO);& \# `& f7 y7 `. `( W
  84. module_param(ccnt, int, S_IRUGO);
复制代码

9 y# s7 \4 h2 l) H9 g- Z! |
5 I" n& S, n( h$ l8 Y: W      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
: L# i! j$ h8 Y3 C" |' ]: E, xarm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
' d( t+ X+ y2 ]6 \5 c, G     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
4 \% `. B* @* @9 j5 d
9 D$ A; x8 {* \
6 [7 @: [2 d3 R8 ~/ J6 i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-25 11:17 , Processed in 0.039186 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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