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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 - I0 X' P) L9 {- u" h
  1. [code]EDMA sample test application1 u# q8 K6 o  O- t; B+ T. D
  2. /*
    ) H: [4 R( G5 X) u
  3. * edma_test.c# Y, G. x; H, L3 g; m1 C
  4. *
    . J1 }3 |9 ?) P' Q
  5. * brief  EDMA3 Test Application2 |3 Q+ N( g( J# U) o# E5 ]
  6. *
    6 t2 n8 |9 U- ^' C+ s; S  P
  7. *   This file contains EDMA3 Test code.% j$ o6 w/ G4 Z2 H$ _& F
  8. *
    1 {. S; q% B4 h3 _
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE% E0 s$ l+ e, t2 C/ h
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    # J2 K0 R7 R1 r7 ]
  11. *         TO CHANGE.
    & Z. q7 Q+ V# y) M9 j% Z
  12. *
    * s& F- c; c4 V8 ]7 ~% W6 d! W, b
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/2 r4 |2 q+ O: w- g+ J
  14. */ l" I; d7 j8 J. Z, |1 ^
  15. * This program is free software; you can redistribute it and/or9 V- h9 }1 {! z
  16. * modify it under the terms of the GNU General Public License as
    * A/ q' K5 `  B2 H
  17. * published by the Free Software Foundation version 2.
    9 P! j1 i) [8 ?" U1 v
  18. *
    8 ]2 d+ Q( Q/ V; `
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any. {  D2 _( }  `& a
  20. * kind, whether express or implied; without even the implied warranty( ?4 J2 k2 G: x( E% h. C4 D1 B7 l
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the, t& A5 f( v- O  T2 n+ M
  22. * GNU General Public License for more details." Q2 v2 A- J; ]% K
  23. */, W( A9 }* W. {) D

  24. * o& \; v. A* I' `
  25. #include <linux/module.h>
    $ P+ ?& ?9 \+ f
  26. #include <linux/init.h>
    9 F. q9 Q( g$ ^4 H# z
  27. #include <linux/errno.h>% A8 w, n' m: i$ K: E0 C6 X4 r: D
  28. #include <linux/types.h>
    # V* s: m3 q0 z3 \
  29. #include <linux/interrupt.h>  f* L9 [6 }4 u1 E1 A* h$ w' o$ E
  30. #include <asm/io.h>/ {7 p0 f! N) C
  31. #include <linux/moduleparam.h>( o6 x9 r, L- y) D/ s- _5 J
  32. #include <linux/sysctl.h>
    & q, }5 a% i& W+ J
  33. #include <linux/mm.h>
    4 b- r+ q& ?8 s$ i4 w
  34. #include <linux/dma-mapping.h>
    # D8 X$ @4 V" d
  35. ; d; o, ^. K) T& r; ?
  36. #include <mach/memory.h>3 i9 p& K, d4 O: A
  37. #include <mach/hardware.h>
    " ]- f, \- |& Y6 l: Y, q  S2 `
  38. #include <mach/irqs.h>  S' X1 Q1 A/ Q4 O  A9 w8 c, o2 z6 b( s
  39. #include <asm/hardware/edma.h>& N& j& i0 _% H
  40. 9 M" }. V3 v( s% R; h8 a0 u
  41. #undef EDMA3_DEBUG: C- j* z6 p! g; q8 N
  42. /*#define EDMA3_DEBUG*/
      y. a8 C4 y5 N# V) m( P) R
  43. 8 u" F: u0 ?9 L, R5 T
  44. #ifdef EDMA3_DEBUG
    ! |- J' w) h2 ?% @
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)/ W$ K; S8 f! K. Y2 D( s) |6 L
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    & ~1 B, ^1 `, z2 ^
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    & g* t/ R* ?. g7 `9 R3 ^
  48. #else
    7 W3 b' {" k/ E5 F/ n# s
  49. #define DMA_PRINTK( x... )
    . Q& z( b/ h  }$ R- G1 k
  50. #define DMA_FN_IN; H& Y8 o) M& Q$ ~
  51. #define DMA_FN_OUT
    + K" G8 N: O; R8 I+ u3 F1 ?
  52. #endif
    * `" J; X1 h+ K( |* j! T

  53. 7 _( t: ?: v& ~( ^
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)8 E# u* P2 z1 M9 d' O8 [* ?$ H! C
  55. #define STATIC_SHIFT                3( X( u6 n; N. j( F% B7 d
  56. #define TCINTEN_SHIFT               20
    ! l/ V( S# Z5 d# r1 U# ~6 m' p
  57. #define ITCINTEN_SHIFT              21, p  C% w) \* O5 t/ B" Q
  58. #define TCCHEN_SHIFT                224 z. V  i# M; N( i3 B% z
  59. #define ITCCHEN_SHIFT               23
    / }; X1 l4 M8 m3 n- j" e! Y0 h6 b

  60. % I7 z4 q. f( M4 J) V
  61. static volatile int irqraised1 = 0;
    ( J# B/ V# N" E, F- C& j
  62. static volatile int irqraised2 = 0;2 q; S* `5 C& f# T
  63. 4 r2 T5 B8 q  u0 r5 a: o6 y  R+ O
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    - X8 Q$ }* i3 e' I  s5 o  K
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ' d- w% Z# ]/ F6 a* n( t  @
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    7 h2 A4 g' J8 f4 o

  67. / x- h3 K& c8 W. y' X
  68. dma_addr_t dmaphyssrc1 = 0;
      M. }& M* @0 \6 j+ i
  69. dma_addr_t dmaphyssrc2 = 0;1 K1 r7 N% X% S" x: g$ I
  70. dma_addr_t dmaphysdest1 = 0;
    $ Z7 ?" K- ^' O1 a% _1 E" t6 [
  71. dma_addr_t dmaphysdest2 = 0;- ?2 L) g9 w/ T% n7 k+ l' d  Y6 R

  72. - p& _) e3 v% p2 v% k# ^( \
  73. char *dmabufsrc1 = NULL;
    7 ^" D5 W9 j6 `3 B
  74. char *dmabufsrc2 = NULL;5 }6 J- x  W' ?: B! D5 ~
  75. char *dmabufdest1 = NULL;
    0 Z. g  p2 Y4 V; K; @5 ?; z
  76. char *dmabufdest2 = NULL;
    1 T. p0 w6 v' C; U- K

  77. 7 J% ^# \4 h; ?. _: J; {3 H) e4 Y2 f
  78. static int acnt = 512;
    3 y) d7 p, \" Z* i1 r+ T
  79. static int bcnt = 8;' D2 T- j  m* f- z* G7 Z9 a
  80. static int ccnt = 8;8 s3 m4 T) d- s' E

  81. ! F! k( N; o7 A& C
  82. module_param(acnt, int, S_IRUGO);
    & ?2 T; e9 @6 A0 c9 h0 h9 X
  83. module_param(bcnt, int, S_IRUGO);
    4 u/ D) Y9 j; t% n: j3 U
  84. module_param(ccnt, int, S_IRUGO);
复制代码
) U% [' Q' n0 y, y, h- ^2 O4 c' }

& U: a* ]* _. ?2 U      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用2 `! O- q' S0 Y: r. r
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
, }5 A/ M6 u  ~1 d) `# b$ ^     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。& Q: t! X8 ~6 q: c! o1 C/ t

3 D! v- ?- U0 w/ z" e) K5 C3 k* G- H
$ X$ t4 d2 j! R; |" M: c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-28 05:18 , Processed in 0.040678 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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