OMAPL138如何在Linux下使用EDMA3驱动 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
5 U) \1 I7 q: Q' w0 B6 z2 y3 h
  1. [code]EDMA sample test application; r+ K6 h0 l$ ~' n  C+ D4 K, H3 Q
  2. /*
    9 S7 E3 V  w4 `* m- t5 n. v/ r
  3. * edma_test.c/ D$ i* H; o6 r& M, m2 N# k+ c
  4. *
    ! ?2 m3 N* p0 ^
  5. * brief  EDMA3 Test Application
    . b# z# a- u* H# v4 N2 ?  ]* _
  6. */ V( f4 z) F4 Q' ~* K
  7. *   This file contains EDMA3 Test code.
    ! T( t+ P" h) W5 Q( N% p
  8. *
    / _# Q- D2 Q' P5 @7 ]
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    - v/ a/ b1 T$ p! N. g
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    ' {) o0 W, \3 t- ~: O  v& H$ x
  11. *         TO CHANGE.
    ! c4 O! c: W  V8 U  I5 K2 E
  12. *
    $ t4 H- t2 v4 w5 C$ ?; W$ G" u1 D. {
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/3 n0 y' S8 v# C! v0 Y' u
  14. *# B7 l% [2 `' J  E/ @
  15. * This program is free software; you can redistribute it and/or
    / B7 G, b# Z3 s/ g- r2 i
  16. * modify it under the terms of the GNU General Public License as1 [6 e4 F6 M. E" u
  17. * published by the Free Software Foundation version 2.( A4 ]+ b4 \+ P; j+ ^, a
  18. *
    " B( S. S' m$ X+ O9 A0 E) d$ D
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any  C: d6 b: k$ C/ a
  20. * kind, whether express or implied; without even the implied warranty6 m9 g* I0 _$ d
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    . Z% u3 d2 Z4 [# }! @& n
  22. * GNU General Public License for more details." }6 L7 }# a: i& L# g' e
  23. */
    9 N( y5 v! A9 F1 r! J
  24. 9 N+ `- n( \/ \! C0 [6 E# o
  25. #include <linux/module.h>3 w% C: x9 a! ^
  26. #include <linux/init.h>
    $ u- |1 U7 G  `
  27. #include <linux/errno.h>
    . g4 b9 N9 H: C3 b& p4 `3 h
  28. #include <linux/types.h>4 g% ^' t" h" @/ ]3 T& a* o
  29. #include <linux/interrupt.h>
    " V% c1 z6 |; k& T, O4 d8 @) O3 g
  30. #include <asm/io.h>9 W. i* Q4 W/ |" [
  31. #include <linux/moduleparam.h>
    + W' }" U! ?  x6 w" m9 M; K
  32. #include <linux/sysctl.h>2 [. |) T# `! r- w  m. `& @: I8 L
  33. #include <linux/mm.h>2 h# w8 p/ B' M( I& q, g3 F
  34. #include <linux/dma-mapping.h>
    5 _; V7 u2 y+ \+ p; g5 x# \/ a* l  W

  35. 5 g! y; a$ ^7 Y' _# l' c0 V, ~; C3 R
  36. #include <mach/memory.h>4 o5 p* |4 {% M6 K7 P
  37. #include <mach/hardware.h>, f. x4 u& [0 t$ }$ V& H
  38. #include <mach/irqs.h>
    ) v* Z8 L2 o0 \; g; f3 v0 g' E
  39. #include <asm/hardware/edma.h>) Q/ E2 m. @- Q7 g8 l3 e' R( V# P# Q6 V7 D
  40. / Y: ]- p9 t  |4 x9 q4 z
  41. #undef EDMA3_DEBUG
    & j/ n/ u3 P6 p
  42. /*#define EDMA3_DEBUG*/
    " h6 A+ e  o' j; \& M
  43. 1 @# k5 j4 X8 E1 U7 r. H+ m* i
  44. #ifdef EDMA3_DEBUG1 V3 T- C/ _7 J8 ~+ l4 q
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    7 N- E9 T* F3 o; g2 j5 ~
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    " s+ j9 X, \- z/ L, v
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    3 J6 c/ T  N; M' V/ {
  48. #else
    # h6 J4 V8 {6 a8 d: c9 y: [- Z
  49. #define DMA_PRINTK( x... ). T* B8 o! G' p+ i" z
  50. #define DMA_FN_IN
    7 a0 [5 o6 ~) E6 b- w. ~' L2 H7 F- P
  51. #define DMA_FN_OUT
    " R! t# u9 P; ]( k6 o1 h
  52. #endif5 R0 m/ H& Q# C" X' q9 J
  53. ) L7 K, p& Q+ c+ q
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)5 O, d: O. \! S9 w4 w! n2 E2 T
  55. #define STATIC_SHIFT                3
    3 x2 I8 m. v0 e; W# j3 h
  56. #define TCINTEN_SHIFT               20
      t) F! n* a2 |# F/ D# [" Z8 a
  57. #define ITCINTEN_SHIFT              21
    / I9 {$ A) A8 {! [" L' d# c. d
  58. #define TCCHEN_SHIFT                22  W2 {' _8 w8 ?  m# Q2 t
  59. #define ITCCHEN_SHIFT               237 T4 |9 F6 t* ?) a) A

  60. , V) X" c' p/ U7 K6 r
  61. static volatile int irqraised1 = 0;
    , u' z$ \$ m3 D% G3 Q- f" z+ R
  62. static volatile int irqraised2 = 0;1 B0 J) P& v% b$ A' U2 @  K
  63. ( x, X; w7 u0 y  N2 R" J
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);! L! ]( v1 _& L, Z
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    + a5 S1 L8 _  N9 H1 [1 K
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    . n8 z) m4 x; ?" r$ q2 x. v

  67. 2 O! f7 Z2 s9 D# K5 O
  68. dma_addr_t dmaphyssrc1 = 0;% I$ w) C) t/ t2 d" ?8 J
  69. dma_addr_t dmaphyssrc2 = 0;
    ' `( N0 p- p: \7 N$ J+ p
  70. dma_addr_t dmaphysdest1 = 0;1 v  h( i4 q: R$ f
  71. dma_addr_t dmaphysdest2 = 0;9 g! D; f. V8 v: ?

  72. ' h9 m; \6 H5 ~5 G. ~$ f% H( n
  73. char *dmabufsrc1 = NULL;
    1 y) L! A4 j1 o5 @4 i+ }
  74. char *dmabufsrc2 = NULL;
    ' U" I0 R5 M, f- p5 q, j/ k
  75. char *dmabufdest1 = NULL;
    : f4 Q' f5 f! l# e( R! Y2 t8 E
  76. char *dmabufdest2 = NULL;0 r5 M0 U% J" A/ D0 B! [
  77. ) W0 L6 U. m9 \% _# W2 V5 v
  78. static int acnt = 512;- B$ W5 C9 C' C: X* F
  79. static int bcnt = 8;) S8 H& n" l7 K9 X
  80. static int ccnt = 8;
    " z& E* \8 O. ~" w! B
  81. 1 ]! T9 a/ m: B/ N' D9 ^
  82. module_param(acnt, int, S_IRUGO);. [; I4 q( F8 T
  83. module_param(bcnt, int, S_IRUGO);
    ! |' ]. ~4 z" f
  84. module_param(ccnt, int, S_IRUGO);
复制代码

% u+ p6 N/ v! k3 @/ F3 @7 ?, {" b# ?. {- L  L: r
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用6 x# i" w  A0 I% p# i' b
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
2 P) n% D: }$ w$ e! q( C, X     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
0 ^2 g! h3 p& p4 N/ d1 `; [9 H, @' e
. ]' N! S. t, `
! B' s" N  \8 }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-12 07:19 , Processed in 0.036235 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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