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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
* V' }' e0 h7 @) ?; {- h, Z3 H
  1. [code]EDMA sample test application* l( z3 J5 {5 t4 W/ B
  2. /*
    # R3 f1 |" K' i; j2 \6 D; Q# r
  3. * edma_test.c
    3 o+ _: t1 [7 P% Z0 o3 R# |& l
  4. *% j( x/ P! F+ D
  5. * brief  EDMA3 Test Application
    5 _0 E$ z( w5 m8 d7 r9 u
  6. *
    / B8 Z0 i5 G! }' w
  7. *   This file contains EDMA3 Test code.' r' [6 t: m6 K+ t7 V0 c
  8. *
    $ K0 p/ E6 g- X3 i6 ?$ F' h* k
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    3 }. e& G: i5 {% d- j9 X
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT/ N! [4 w" z8 P6 G
  11. *         TO CHANGE.
    ; B; k4 J0 C' I1 g6 }; a
  12. *
    ! Z" `7 @7 {3 a' u7 u6 r
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/8 A- k& f* D- M  x5 n- z/ i
  14. *
    " I+ B5 {3 ^  v% D5 G
  15. * This program is free software; you can redistribute it and/or
    . V% v1 A* K3 z$ x* E/ z+ g  [$ L* {
  16. * modify it under the terms of the GNU General Public License as
    , x  x# B* D* V/ f6 Q$ r1 B1 ^
  17. * published by the Free Software Foundation version 2.
    4 e$ J) a3 L& [# O: k2 D1 a
  18. *
    ! ~$ w) E, i' V3 L1 ]8 j
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any3 x( a# s2 Q0 ~- \$ `3 A
  20. * kind, whether express or implied; without even the implied warranty
    + O; c# r7 E) O; M% _" z. t: E
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the2 x" [! {+ h' g* b+ X; q
  22. * GNU General Public License for more details.
    5 n' u, S: f9 k6 C, e' I
  23. */
    # {, c* q. g/ W1 q5 O

  24. 7 \4 d1 i8 g  q! t
  25. #include <linux/module.h>' f: e5 N4 b, ?; w
  26. #include <linux/init.h>( x! g. C& b- ?: s
  27. #include <linux/errno.h>% ?8 G0 s# x% V3 N; P& |6 _1 S5 U
  28. #include <linux/types.h>! t( L0 g2 E2 Z4 T+ z: D
  29. #include <linux/interrupt.h>6 D) a+ e8 B  P9 q/ ?
  30. #include <asm/io.h>: E) X) ?9 e& |0 k
  31. #include <linux/moduleparam.h>/ o+ m! E" ]# H! H- u5 J
  32. #include <linux/sysctl.h>, r  c# {, u9 K
  33. #include <linux/mm.h>
    + {7 `' X7 e' a8 B* P
  34. #include <linux/dma-mapping.h>
    4 {9 L2 _0 E2 N# h

  35. 3 ?' d# W9 |* \& I, j! l$ N
  36. #include <mach/memory.h>" q8 a( _3 R" I8 X3 u
  37. #include <mach/hardware.h>! t3 [) |0 D  Z" X
  38. #include <mach/irqs.h>
    % E: X& N% |7 Y% n) I' k- t
  39. #include <asm/hardware/edma.h>& Y, O  p; _; ^5 n, o4 l+ t
  40. # m5 c  h0 {/ u8 p! `3 M
  41. #undef EDMA3_DEBUG
    + ?6 j" u) i; c  m, T) m
  42. /*#define EDMA3_DEBUG*/
    % a0 m, X: I& y+ P/ o& A( h

  43. " o# J7 d! @$ f7 `5 O
  44. #ifdef EDMA3_DEBUG
    0 ^& M9 b3 @, B# j
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    0 Z( h4 V" d: F) F
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    ' ~( v% C3 p/ C4 \
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    9 z. G  M) g3 K
  48. #else* A# l: q1 ^1 Y& G$ A5 z5 ~/ z
  49. #define DMA_PRINTK( x... )
    / Z! ?! P# A' H! M1 }
  50. #define DMA_FN_IN" I& R0 P! H- w3 }2 u
  51. #define DMA_FN_OUT
    5 A- ?. L0 h' z
  52. #endif- q5 E7 T  R) I9 K; O
  53. * o1 z7 M) q6 O6 x! y
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)4 T! @8 x6 j. w9 c& T7 f: R" w
  55. #define STATIC_SHIFT                3& W$ q3 ]( l/ K# [1 Q& M# H
  56. #define TCINTEN_SHIFT               20: }* x( R  S4 n$ S; J% [3 O3 q
  57. #define ITCINTEN_SHIFT              21) J' J9 @4 c8 R
  58. #define TCCHEN_SHIFT                22
    . a4 a$ F; U. v
  59. #define ITCCHEN_SHIFT               23, J2 _& p( y9 l  x% c- ]# n

  60. 7 Z& p& D! L% P& h  ~& B
  61. static volatile int irqraised1 = 0;6 \% m9 s$ S8 h) ]9 U- F/ V
  62. static volatile int irqraised2 = 0;
    $ n1 F% ?" r9 m1 g& [

  63. 3 d1 K( O0 g7 p: P3 m4 p. H
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    # L0 s7 W9 Y; ~" ^' E9 X
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ) U( U3 B7 }+ Q+ P; m& Q* w8 n
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);- b/ c1 e! W9 c" _, P) @
  67. 4 w. u' A9 ]2 q- c& m9 Z( L) N
  68. dma_addr_t dmaphyssrc1 = 0;: f4 r+ S9 `8 K. @- \
  69. dma_addr_t dmaphyssrc2 = 0;
    + ^) W8 o( o: }9 j7 T
  70. dma_addr_t dmaphysdest1 = 0;
    6 d: J% l( y8 R" |( D
  71. dma_addr_t dmaphysdest2 = 0;
    $ J. r: X4 h) v$ ^

  72. # ~8 t- a/ k* b" P) v7 p2 U3 T" E7 l
  73. char *dmabufsrc1 = NULL;
    0 V2 H: R8 a! G
  74. char *dmabufsrc2 = NULL;
    : x0 X. J0 @3 D) f3 C
  75. char *dmabufdest1 = NULL;
    0 S: q  E  W2 U5 j
  76. char *dmabufdest2 = NULL;
    $ Y- h5 j, P9 e" Q
  77. ) U. J- Y* Q1 N0 s9 A" x1 A. f
  78. static int acnt = 512;- l7 J4 ^  C& F* ~! J. Y# L
  79. static int bcnt = 8;1 J2 W+ n, z/ {" e" s
  80. static int ccnt = 8;
    ; n4 k+ E2 a6 q  h+ ^

  81. / L- K: d8 ]% T5 |! ~* J( A9 z
  82. module_param(acnt, int, S_IRUGO);
    1 Q" q9 H9 G) }% g/ e
  83. module_param(bcnt, int, S_IRUGO);1 e8 o2 k5 W2 B5 D. s7 Z4 J2 `) s
  84. module_param(ccnt, int, S_IRUGO);
复制代码
5 N$ e9 q. U6 b& t# e) ]5 v

- L: k' b$ u0 s# g      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
0 T" l, [) ~& \) w; 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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。2 x. P4 P; Y. i5 f* G. T. b
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
, f3 c- D. \6 g9 i. ^' i3 `$ }; E1 M% d

; ~1 I+ m, J7 P9 L9 I
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-2 03:34 , Processed in 0.041276 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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