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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
$ g& c9 @5 O" |' f
  1. [code]EDMA sample test application) I8 Y) Z0 c1 r
  2. /*( [6 G9 Y6 V9 L& q) S$ X
  3. * edma_test.c; H4 M/ P7 _6 A9 `' Q# j
  4. *9 l8 S# U8 K" d
  5. * brief  EDMA3 Test Application$ G3 @1 Q. p1 I- c3 M1 k% Y3 O# n3 i
  6. *  o0 E( @7 E* {8 o
  7. *   This file contains EDMA3 Test code.
    " I& w0 f' ~0 ?) m0 {
  8. *
    " m6 v: b5 }, ^( O
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE# t% q% r. @9 _6 [& ?
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    $ X. A1 I. g  \# p8 R" C) x2 [% r
  11. *         TO CHANGE.0 A3 R9 Z3 T( N2 C+ E- R7 L7 I
  12. *) d  N. D4 }/ ]0 C+ ~- w
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    ' r+ B! A& U  V; i# w% |( D
  14. *" h0 e; }% P+ U2 A* O5 z
  15. * This program is free software; you can redistribute it and/or
    + W1 \. N$ P! u  O5 P
  16. * modify it under the terms of the GNU General Public License as
    4 W' c* o, ]) N
  17. * published by the Free Software Foundation version 2.! @0 Z% k3 ]' R8 j& k$ o) s
  18. */ M) i: S% O4 b0 m& m+ k) K
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any8 u. D5 z2 S1 K$ r! O3 ^+ A
  20. * kind, whether express or implied; without even the implied warranty
    . R3 v8 r' {3 Z
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    % T9 v9 Z4 b: f
  22. * GNU General Public License for more details.; |+ b* e' @# V
  23. */
    # t* A% e0 v* h2 h

  24. 6 _8 f+ O5 z0 W) _4 c* k6 V
  25. #include <linux/module.h>3 h" S  j. K) g: p( k0 u* m
  26. #include <linux/init.h>
    - k2 M1 \% ~! X; q; a/ J% u1 y7 x3 X* ]; P
  27. #include <linux/errno.h>
    ' {2 n7 g* v6 \" a, `
  28. #include <linux/types.h>
    % B- N$ l3 h2 ]! W/ v
  29. #include <linux/interrupt.h>
    # t( e1 |, Y3 \: r
  30. #include <asm/io.h>
    % `0 M" l/ C- L3 H( g
  31. #include <linux/moduleparam.h>+ \3 L, Q) d: J5 @! U
  32. #include <linux/sysctl.h>
      ?0 J& r; L' Z% G8 k% {
  33. #include <linux/mm.h>7 L* v6 A# }1 M% q0 R/ ^
  34. #include <linux/dma-mapping.h>
    3 b9 c6 d  x, d' [/ A
  35. . ^" z1 h, G$ m$ [5 a
  36. #include <mach/memory.h>: w* \* n- B+ @9 w! t( J6 n
  37. #include <mach/hardware.h>* g6 A0 Z+ i) ?5 B+ L3 U7 |
  38. #include <mach/irqs.h>4 n5 j* l4 g5 g$ z5 K& d0 ~
  39. #include <asm/hardware/edma.h>
    ! N; P1 e' y) r* k! E: k

  40. # X7 ~3 v1 c" T$ V2 e, ?6 C5 h( `
  41. #undef EDMA3_DEBUG
      N3 c* b* [# B/ M+ |. h
  42. /*#define EDMA3_DEBUG*/4 N' V$ z8 o4 K8 @

  43. 2 `! A  J* G5 r9 Y; {1 s% [
  44. #ifdef EDMA3_DEBUG+ V5 `& ^' B$ Q) @! S8 c
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    1 [& T3 x2 E, u& D
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    5 i3 _5 h# d( f. e; q* [" x. t
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)+ i" U' H" m# E& c4 K- p" a6 r
  48. #else$ @/ v9 ?9 ^) _) u0 A/ K
  49. #define DMA_PRINTK( x... )' e" P+ k7 t9 n; U/ `& n
  50. #define DMA_FN_IN
    ' j' t2 M6 F' V# o. ]
  51. #define DMA_FN_OUT
    2 X5 N- H6 `/ _
  52. #endif
    9 A% c' a) {# |8 I+ `" o& R

  53. / C/ C, ?4 v2 b6 {
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    : }! k% W5 d4 z1 r$ T, y5 m
  55. #define STATIC_SHIFT                38 G; p+ R2 t+ J+ Z3 S
  56. #define TCINTEN_SHIFT               202 }' C2 b# p, Z3 _" R: a$ k
  57. #define ITCINTEN_SHIFT              21
    4 U& a# y6 Q9 m3 k
  58. #define TCCHEN_SHIFT                22$ T! Z0 v* t: @" N: G$ V# E
  59. #define ITCCHEN_SHIFT               23
    - j. f7 S) \$ y3 W$ i; @7 v
  60. $ a( j& [0 o2 n  O5 I$ O
  61. static volatile int irqraised1 = 0;
    8 k' c! S: _8 u% ]
  62. static volatile int irqraised2 = 0;
    ; P  g/ ?9 h" O  s( L- P

  63. 6 U) H3 \* V* `4 G  Q' P! y
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);( U& I  v( `' I3 R: _
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    / r2 t  N# N- a) ~
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    2 O$ [7 m! X  x1 c" j

  67. ) L  S- j, I" p+ ^+ ^+ S
  68. dma_addr_t dmaphyssrc1 = 0;
    9 c5 u9 v) G; Q
  69. dma_addr_t dmaphyssrc2 = 0;
    3 p9 M4 D' |3 i* |
  70. dma_addr_t dmaphysdest1 = 0;
    9 c% v4 R& M4 u' o
  71. dma_addr_t dmaphysdest2 = 0;
    * M! V; q/ m/ }* Q) \  G
  72. ' E5 U6 P3 T2 y* `
  73. char *dmabufsrc1 = NULL;9 z3 H/ q- O0 K6 g& J
  74. char *dmabufsrc2 = NULL;  s  M, g7 }. j0 |
  75. char *dmabufdest1 = NULL;
    1 Q8 i3 e+ }) w+ b, X# l4 u5 ~
  76. char *dmabufdest2 = NULL;
    , c# F- F7 [1 R) O) x# P
  77. ' ]" J0 t7 U/ }. }5 X
  78. static int acnt = 512;
    ( P* o- ?  |+ V  r1 g0 ?
  79. static int bcnt = 8;( A6 R8 G0 {7 R: G( D
  80. static int ccnt = 8;* ^5 p  ]6 c9 }& M1 c4 G3 S
  81. 5 m* l' }; r" k$ x
  82. module_param(acnt, int, S_IRUGO);
    ( U& b. [# i' \, Y# x) n& z- k
  83. module_param(bcnt, int, S_IRUGO);
    , v/ _) b, t& l  n% s; e* o, U# Z( f
  84. module_param(ccnt, int, S_IRUGO);
复制代码
( [. x# x( C7 I  M6 N

% T; b7 ?: P6 c8 {* |) w/ Q' K      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用$ `9 K; v; B# G
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
9 {! N* `7 k$ o8 S, H5 ^6 E* M* |     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。  O6 j; y  R- s4 E) g0 K# c
& v& w; g% Y  e- }
+ m9 f) E  S* H4 h
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-8-16 20:09 , Processed in 0.040249 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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