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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 8 Y5 Q0 b+ h4 K: }; n, o
  1. [code]EDMA sample test application
    : `& g' Z* `4 z6 n9 p/ Y' q5 ^) I
  2. /*
    " T0 ?$ N9 r" q' S" a" C! E  \' E
  3. * edma_test.c0 @1 z$ z* x; f2 ]; ]
  4. *6 u1 @. L( Q+ U+ b& l$ _2 T
  5. * brief  EDMA3 Test Application/ R7 q- `6 O7 }0 s0 u6 a
  6. *
    9 p" g  N. \: y" ^+ g5 J& w+ M: K
  7. *   This file contains EDMA3 Test code.* R+ n0 g# u+ D2 s
  8. *
    , l7 v  G* O8 v0 J! X, R
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    ; V# J, l- y5 c
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    0 C4 T+ U- G% |: d- @% h2 v7 o
  11. *         TO CHANGE.# u0 [. @: H# N3 @5 O, o
  12. *
    4 q+ ~" Z& [2 c
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/: q7 K: H1 q) E5 {3 p
  14. *4 `+ M/ Z- t3 v' V* U
  15. * This program is free software; you can redistribute it and/or
    " Q. e* u4 I/ G% d$ l9 d
  16. * modify it under the terms of the GNU General Public License as6 _/ V9 _/ h( x
  17. * published by the Free Software Foundation version 2.
    ( @" I% ?3 _" e5 K" h1 Q2 M9 z
  18. *0 ]! Q6 t5 i- ]! c2 G$ `$ K
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    ; A2 L% D! X" n2 c: t5 g+ C
  20. * kind, whether express or implied; without even the implied warranty# J) E3 Y* ]0 w+ ~5 q% C, M# z
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    - q* u- Z, w5 n$ [( Z* A. F
  22. * GNU General Public License for more details.
    ' s) C( t( l, u6 h
  23. */4 o0 b( I0 Z- |* k: _0 z$ D! e$ W; g
  24. - s: v; ?. T- q+ R* ]6 s
  25. #include <linux/module.h>
    * F3 q$ G* n8 S, D( t
  26. #include <linux/init.h>
    9 B1 h% K' V6 W5 J' p
  27. #include <linux/errno.h>
    , [' D- _, Q# m0 k1 t9 F
  28. #include <linux/types.h>6 g6 n. {% C1 g  q
  29. #include <linux/interrupt.h>1 G' D# O9 c, [; v: U9 F, I
  30. #include <asm/io.h>
    + H- L) L5 p, l. a
  31. #include <linux/moduleparam.h>. |5 E6 `8 z' E; Q
  32. #include <linux/sysctl.h>
    ; v3 t0 U" T, P4 p' R
  33. #include <linux/mm.h>
    / l3 Y  ^, B0 ?1 ]
  34. #include <linux/dma-mapping.h>+ Y3 W' Q& t! L- b% Y8 |

  35. 6 e7 D' Y3 c4 }
  36. #include <mach/memory.h>; a3 T5 _( ~0 z
  37. #include <mach/hardware.h>$ R( F& M* g& x4 t: {. a
  38. #include <mach/irqs.h>$ P4 a  Y4 O5 A: r
  39. #include <asm/hardware/edma.h>+ z5 e& p. u' T4 d$ q. t1 _7 m
  40. ! b0 I6 ~& T* e- H7 a% s
  41. #undef EDMA3_DEBUG8 ^/ `) b0 _# D% R$ }4 O" R9 c
  42. /*#define EDMA3_DEBUG*/
    ' i) S( e' X8 p8 R' N) J
  43. 6 e) n0 p3 T8 v$ M) ^
  44. #ifdef EDMA3_DEBUG6 ?- D5 D6 F8 Y. \. ^1 \
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    * {, v( K4 i: Q
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    7 M% [% p5 A' _1 Q) q# U
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    % q# W/ u8 @. C# A! p8 ?3 S) F7 T
  48. #else+ y6 k3 |$ R0 O, t/ |
  49. #define DMA_PRINTK( x... )
    8 b) J4 p+ k/ d; R) E) A- W
  50. #define DMA_FN_IN
    + u& r' p3 d' ^% @
  51. #define DMA_FN_OUT
    / z1 F, K* _- D  q* a" P: O
  52. #endif" k9 G/ m$ Y" Y. }3 Z, s

  53. . }0 u/ f7 \9 M$ `
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)( W& U8 R$ K: ?* @5 x- j1 P
  55. #define STATIC_SHIFT                35 X: m0 E. C. L- m( H$ z1 z
  56. #define TCINTEN_SHIFT               20: F6 {* {& D6 f/ H( E4 U. n0 i
  57. #define ITCINTEN_SHIFT              21
    3 E1 ?4 _  o. M1 x7 P" s& @
  58. #define TCCHEN_SHIFT                22
    % \0 w  W1 |  {+ {
  59. #define ITCCHEN_SHIFT               236 N, Z; m7 Q: I" ?* I

  60. $ P! \$ x* q$ u
  61. static volatile int irqraised1 = 0;
    5 c5 K1 A6 _% z% N6 Z  o; X
  62. static volatile int irqraised2 = 0;) r: h% D3 _* P6 x4 L/ k

  63. % A- q$ ]7 D1 m3 ^
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    & l# y' F& d4 M- E6 d
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    : G, I, c2 E  l3 y9 x+ {4 j: b  m* k
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);/ b/ N& X# j/ ^! z
  67. 9 ?: O' Q3 i+ _8 K
  68. dma_addr_t dmaphyssrc1 = 0;* ~+ Y; s4 D0 j7 d$ o
  69. dma_addr_t dmaphyssrc2 = 0;
    " z# W4 {7 H* z4 P
  70. dma_addr_t dmaphysdest1 = 0;
      t( e& P1 Q/ B7 B
  71. dma_addr_t dmaphysdest2 = 0;
    & e, t0 r' ?4 ^- \, Q) K& C: m

  72. . g9 e* R3 K$ Q8 B' Y
  73. char *dmabufsrc1 = NULL;8 P2 Y( C6 e! `. E6 B" ~! V; ~
  74. char *dmabufsrc2 = NULL;/ e# X3 P9 H/ ^+ Q& k& N5 ?: ~
  75. char *dmabufdest1 = NULL;
    ) V: n5 _% M* U; x
  76. char *dmabufdest2 = NULL;
    / Q, L4 Q+ Y$ f* I! I4 S

  77. 2 e9 z/ m/ ]5 U7 S* D
  78. static int acnt = 512;
    0 |. N$ K: p! I/ h1 s8 p! P
  79. static int bcnt = 8;9 f! P( w$ }8 J3 {" c5 K: q$ g7 n! s
  80. static int ccnt = 8;2 Q& x. z; e# Y- z, j6 v+ F$ x

  81. / o* z) B! i! K0 U& `7 N
  82. module_param(acnt, int, S_IRUGO);) i0 V2 I& U+ M, o
  83. module_param(bcnt, int, S_IRUGO);+ N/ o- t; X0 D) C7 O
  84. module_param(ccnt, int, S_IRUGO);
复制代码

% a, W3 e; l& l- `! Z3 \
7 g) B1 G. I' a( X: z' o7 P; c+ A      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
6 e3 n) g+ V6 Q, ~& F, s" Oarm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
6 m9 W' T, N2 [; e; A& u     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
) _' A" t& m- C* a' L; Y; \$ h) e: v# j4 y# E, b- ~: Z0 W

7 r7 U0 w+ n6 i" T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-7-27 03:48 , Processed in 0.041341 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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