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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
$ B% n3 Z* m3 j4 u/ \- x5 H
  1. [code]EDMA sample test application
    5 Z" `7 q7 p+ v* T. _- O
  2. /*4 H5 O8 k0 t0 _' r3 e, Q
  3. * edma_test.c
    & l& I( j& a4 m* b
  4. *
    7 s5 E; z' t6 [8 [: p" Q
  5. * brief  EDMA3 Test Application
    " V0 Y% Y. @3 x
  6. *& O( O* m7 W6 F) b* \/ w% O
  7. *   This file contains EDMA3 Test code.
    / S& X- Z% ^! C% G3 z- J
  8. *! h3 L  A5 q  I2 c1 X
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE6 v, _. q9 L0 Y) O. \, w5 x
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    * e: Y- N/ J9 ?8 d9 R/ K
  11. *         TO CHANGE.
    9 H0 T6 i/ a+ }2 K( ]
  12. *: g1 t7 g& _% `4 r
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    ' Z. F2 |0 B- ^4 E
  14. */ D) W* C" O/ X( q7 U* G
  15. * This program is free software; you can redistribute it and/or1 J$ n" [1 @9 r) E3 q- k
  16. * modify it under the terms of the GNU General Public License as' o- C3 b% Q1 T: a2 N% y
  17. * published by the Free Software Foundation version 2.! L, {! q& s- P$ n
  18. *
    # H/ }) \7 ~: e3 K
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any( [- c7 k% I0 _) f6 u4 q0 _# a! V
  20. * kind, whether express or implied; without even the implied warranty6 l% z; d, B; j7 ?2 ]% \9 F  k. M
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    ) J# o; J6 O$ Y& R- g, P  G: ~
  22. * GNU General Public License for more details.* |# i( X' A# |( \
  23. */
    # I/ }7 E+ e. E" ^
  24. / k5 s4 a: \& h( _
  25. #include <linux/module.h>
    7 S. f8 K4 O; C) x0 W
  26. #include <linux/init.h>
    $ f) a8 X$ N, b
  27. #include <linux/errno.h>, U  m! @. r! x9 s: ^: V" C) \! _
  28. #include <linux/types.h>
    ! [& L! r+ T2 H& e' O1 `7 Y
  29. #include <linux/interrupt.h>
    2 T2 A2 D$ b- X' J& M
  30. #include <asm/io.h>
    : L; u2 d, H9 q: r" s. W; z
  31. #include <linux/moduleparam.h>% ]( s6 N! ?+ h* T- i: i5 d
  32. #include <linux/sysctl.h>
    5 a$ L* p9 {1 s) s
  33. #include <linux/mm.h>
    * b& y; `, e: w! R- W/ p% w+ |8 f
  34. #include <linux/dma-mapping.h>" R  T( g& s4 J0 G- K

  35. $ M5 M, X  H2 E1 ~
  36. #include <mach/memory.h>
    " A  j2 g2 o0 G) ~3 P  S
  37. #include <mach/hardware.h>
    7 [+ F2 K; Z! L% C- S( _; x2 [5 |  S6 n
  38. #include <mach/irqs.h>
    ) M: o+ F0 e% J+ p; s
  39. #include <asm/hardware/edma.h>/ ]0 [, b7 ]7 l# g
  40. ' i  o7 u6 j' H1 w
  41. #undef EDMA3_DEBUG  w& H2 L0 J0 J& k  \$ x5 `
  42. /*#define EDMA3_DEBUG*/
    % a3 W) E3 C' l% ?$ A

  43. " L( v0 v/ q* e# k& @" j7 R
  44. #ifdef EDMA3_DEBUG- P! h; b/ ]/ Z6 r
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)2 d# K2 O3 Z& x  ?# D) P$ T
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    * r- q  K2 ^% z6 G& I
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)0 T* h+ o$ ~, x2 x: v5 T, n9 H% j
  48. #else  \8 u. r, k7 D) y& T+ \2 U
  49. #define DMA_PRINTK( x... )' H& Y. g" g" u8 J% L) F
  50. #define DMA_FN_IN
    9 G8 {( Z- w5 Y: {
  51. #define DMA_FN_OUT2 B/ k8 q( l# A  ^5 j$ K5 ^/ R  u# W
  52. #endif
    ( o4 s" S* W1 u2 z$ x2 r

  53.   i3 W7 I# P; X
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    5 \  D; }5 n( C8 z7 F
  55. #define STATIC_SHIFT                3
    7 r- Q- N  U" G0 u! Q, ]1 X
  56. #define TCINTEN_SHIFT               20% o$ z. [3 I8 Q
  57. #define ITCINTEN_SHIFT              21  l0 H+ z' c) w
  58. #define TCCHEN_SHIFT                220 u- x2 @1 H) Z: |. t/ X0 x& E
  59. #define ITCCHEN_SHIFT               23; C6 a0 N+ o2 y6 X) r% H' W! \& {
  60. & h' f# u+ T1 ?
  61. static volatile int irqraised1 = 0;
    : U8 G, _2 ]# a8 |1 w
  62. static volatile int irqraised2 = 0;
    9 U/ ]- F1 z2 u2 s" U7 r

  63. * i* R# B. _" C+ ^. u1 f" {
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ' u; G  A3 w( I1 h/ S
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    - u1 B5 h$ A; w/ C& `; \: }; }
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);9 z2 O4 L- M7 N4 F' h* ^* W

  67. 4 W9 o2 R( M. ^& d9 T) D% P
  68. dma_addr_t dmaphyssrc1 = 0;7 D3 B; P, J1 S' ^
  69. dma_addr_t dmaphyssrc2 = 0;; D. B( w9 B6 Q; P2 x# c3 B0 c
  70. dma_addr_t dmaphysdest1 = 0;1 {' \. c2 y# {. B
  71. dma_addr_t dmaphysdest2 = 0;
    + F% x, B' E( Y7 }, C

  72. . n# A9 n/ M# L4 z8 z2 ]
  73. char *dmabufsrc1 = NULL;3 W3 z# F8 C% f3 q) N# y/ U* j( R6 v. y
  74. char *dmabufsrc2 = NULL;
    $ q$ d# H& h; G+ Z/ b# u1 ~
  75. char *dmabufdest1 = NULL;; B2 p* x1 z% C
  76. char *dmabufdest2 = NULL;
    ( H) a4 {; m* r' O, U/ v' w5 v( w

  77. # z2 ]: E8 [2 f! V/ p  c+ z: e4 d
  78. static int acnt = 512;
    2 T- v; o! z, H+ S4 S
  79. static int bcnt = 8;
    ' D  O9 H: n2 S3 h* n- v: D
  80. static int ccnt = 8;  X3 U5 w0 m6 H8 b" f  L5 ~

  81. ) i2 H5 I" b# A+ \' A
  82. module_param(acnt, int, S_IRUGO);
    ' D+ L9 O( ]( j2 w" X
  83. module_param(bcnt, int, S_IRUGO);
    2 X5 i, r8 C. s$ n
  84. module_param(ccnt, int, S_IRUGO);
复制代码
7 C4 K& a+ u1 x3 P/ N2 q4 H" T. E
8 _+ P. A: O5 n  n  E/ [
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
+ P9 Z) k) v9 q% o( ~9 }8 larm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。1 F! `: A9 s7 Q, ~
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。6 S2 X4 Z# ~& K/ O  N
; I  f! S# y2 N7 F

6 a( }+ Q8 e8 \: S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-13 10:22 , Processed in 0.045033 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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