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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
9 P' _% S- P; v' `( V
  1. [code]EDMA sample test application
    6 n# ?/ ^. R" X5 a# W% u
  2. /*! K# G' v8 I* u* `
  3. * edma_test.c
    ) n% r% k  B: i% O$ q2 C% y* O3 ?3 [
  4. *
    4 h9 A4 x: @  s. s2 g! q% v1 s
  5. * brief  EDMA3 Test Application# ]1 f% e, ^% [0 b( v
  6. *
    6 f: P$ \) A0 V0 `5 Q" O! D
  7. *   This file contains EDMA3 Test code.
    ( m2 h* `& f# `7 ?
  8. *
    ; \' ]% }2 N2 V& c' l
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    6 D3 x& n% H- r' ]0 {7 E. l7 R
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT6 f% d& Q) {" }) a7 ?+ {* L/ @
  11. *         TO CHANGE.% p3 t# m1 [6 z; R6 R
  12. *. F7 d5 P8 y- i3 `% U4 y
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/- q, Y6 s8 B" r8 D! t* g$ G
  14. *7 I& s8 [% Y) p) J) M4 a
  15. * This program is free software; you can redistribute it and/or6 A; I" u. i- D$ C
  16. * modify it under the terms of the GNU General Public License as
    - I8 f$ b( H  m9 O5 L
  17. * published by the Free Software Foundation version 2.
    / @2 v1 c0 D# _7 @. R7 W1 l+ h$ y$ G
  18. *
    0 Q: S9 ~8 p/ K) b! ^4 Y% ]* [
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any" P' L9 F1 T6 Q! r* W, P
  20. * kind, whether express or implied; without even the implied warranty
    , @$ F# `! f+ a0 \& C
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the& P# x7 A4 @9 q# r
  22. * GNU General Public License for more details.
    ; Z# z; q0 i# X# V
  23. */
    ! d. O" H+ l' U

  24. 5 R6 B! x8 z& [  o! e
  25. #include <linux/module.h>
    & J4 ^% W7 k! p. p% o6 P3 [" }* ^  Y
  26. #include <linux/init.h>
    1 r1 \4 F( m1 `% s; P$ W* F
  27. #include <linux/errno.h>" o# Y9 G0 p. J# {
  28. #include <linux/types.h>
    % S9 B0 G2 |) ]2 ^, p
  29. #include <linux/interrupt.h>
    * J, N$ J( t8 {0 R
  30. #include <asm/io.h>7 i5 C) t! w# D8 ?2 @4 Y
  31. #include <linux/moduleparam.h>$ D' `. G( C; K1 f/ U7 M
  32. #include <linux/sysctl.h>* h2 Y2 [( N1 ]2 i( |
  33. #include <linux/mm.h>
    5 U$ d* f" X! o6 H2 ~  N; Q
  34. #include <linux/dma-mapping.h>: `) o9 K  K, O  N2 s! Z. L' G
  35. : b+ p2 U" K+ V( Q  ~
  36. #include <mach/memory.h>
    2 y* p- U, x' t& ?  `
  37. #include <mach/hardware.h>
    0 ~8 `: f8 z  G% _$ W& S9 }
  38. #include <mach/irqs.h>
    ! I9 V6 s$ ^* F9 @. e' y
  39. #include <asm/hardware/edma.h>
    : ^" J3 ?% t3 q3 d2 Q, o$ `
  40.   D& K/ }! h: ^' r6 m! w) }( H
  41. #undef EDMA3_DEBUG
    " f+ Q0 }# ]- m: v/ }# c  _" E
  42. /*#define EDMA3_DEBUG*/% x( u" D+ w3 s' x5 x6 X
  43. $ d9 ?; R, [/ \  V9 Q
  44. #ifdef EDMA3_DEBUG
      f, I5 @9 w) l& D  X! s
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    1 M9 T1 E, F- i  H* C" q' H
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)1 k! p$ X, y0 B3 Q2 B
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)+ P* v5 ?' ?, v5 `% S* I
  48. #else
    + F6 I1 e2 y6 |# P, G. D
  49. #define DMA_PRINTK( x... )( j0 R' Q; {$ S$ C' v' u4 D4 P7 T
  50. #define DMA_FN_IN
    ' f+ b7 t# x, o4 K- u$ ~
  51. #define DMA_FN_OUT( F" w. x% s' s- }6 `# K
  52. #endif; H; x$ O1 W* q" p4 v
  53. " s( o5 g- l1 W
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    $ }% I/ ?* n; |8 q5 d
  55. #define STATIC_SHIFT                3
    6 e# }7 N$ x5 Q
  56. #define TCINTEN_SHIFT               20; N4 K! j. E. D% k8 e0 s. B' s
  57. #define ITCINTEN_SHIFT              21  p. G! d# K$ ~1 f
  58. #define TCCHEN_SHIFT                22. D- @7 l3 L2 r( H" u$ s/ H
  59. #define ITCCHEN_SHIFT               233 o: G, e# K) l- b$ ]4 X
  60. $ b& c8 A$ E# F9 S. j$ {
  61. static volatile int irqraised1 = 0;, G4 F: G! l, c3 R
  62. static volatile int irqraised2 = 0;
    * I7 C  j+ g9 z$ D( m  ]9 B4 X

  63. ! R$ T) Q: P: O% @9 L7 Q0 c
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
      m+ [  `& O# O) ]) \; u
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);! Z* I# Y$ _. C. Y, p( M
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);0 Q) o# h; K; d7 g
  67. ( m4 v$ @8 _! E* c! s% L
  68. dma_addr_t dmaphyssrc1 = 0;; s: V" U1 m' j2 V( m: W
  69. dma_addr_t dmaphyssrc2 = 0;6 D% w9 _2 d1 c. J% N9 a
  70. dma_addr_t dmaphysdest1 = 0;
    2 B+ {* ?' S% x/ X; e: b
  71. dma_addr_t dmaphysdest2 = 0;
    ! `9 ^. A+ K6 T# W9 _+ |9 D

  72. 9 w* {5 @) m) X& h  I5 Y- C/ @
  73. char *dmabufsrc1 = NULL;
    " T& d/ _$ M; o! \
  74. char *dmabufsrc2 = NULL;+ @6 d1 o/ H4 @: i$ v7 X' e
  75. char *dmabufdest1 = NULL;9 q; m; L+ w+ q5 ]" I
  76. char *dmabufdest2 = NULL;
    % G+ }% ]& V% w1 F; ~. G# r
  77. 6 j6 g6 ]  u9 K8 r
  78. static int acnt = 512;
    " ~7 ?3 B* x) E. ^( Z
  79. static int bcnt = 8;' b$ s4 z9 O4 ~( [! J
  80. static int ccnt = 8;
    / G/ \6 _- v' B) p
  81. $ I' j. G. i4 K9 _
  82. module_param(acnt, int, S_IRUGO);9 I& i7 I) I% ~- O) Z6 @  d& ]
  83. module_param(bcnt, int, S_IRUGO);
      {, w" t" s& I  Y
  84. module_param(ccnt, int, S_IRUGO);
复制代码

% n+ c  e8 Y3 h7 X- X- Q7 j: K2 m
: X4 z9 W5 u$ _: H- f) i" {      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
7 y8 U1 h* g9 D2 x% l3 m$ g- marm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。0 x, t+ Y. H3 ~; Q2 u  I8 j: `
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
# w  [; ~* f5 N) W! R4 z3 P$ }( v5 N. t1 B- M
3 s' a: T3 p1 y% I5 J- @* G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-18 04:54 , Processed in 0.041167 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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