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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 ; |2 |0 c. R3 s0 g$ g" L3 T: n+ n
  1. [code]EDMA sample test application
    : A: q+ U7 ~" Q  ~  m3 f
  2. /*& I3 C& P2 r2 @% [! E, z' [
  3. * edma_test.c
    2 V! z) \8 p# K% E5 ^
  4. *8 d) i. V$ Y# s) N: n# h9 |$ B
  5. * brief  EDMA3 Test Application
    & N5 g& A: g0 g+ b" f3 H* ~
  6. *
    " ^2 a; s- V& D: D. k; v+ P/ _; r
  7. *   This file contains EDMA3 Test code.
    0 [2 J' _6 Y- J
  8. *: z6 @. v) W9 U- }: y
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE$ X: T1 e) q% y
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT( l" u9 O+ l- d
  11. *         TO CHANGE.
    % i6 C. j1 \% |! w1 U! Z. u
  12. *
    4 ?% C# I8 B2 @0 x# W' b8 o
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/- S; Q  u3 l  f  j
  14. *
    ' l4 d$ m5 A# q! T- @; ~
  15. * This program is free software; you can redistribute it and/or
    / v% R& H7 b  i2 b3 U2 E1 E
  16. * modify it under the terms of the GNU General Public License as2 c  Q1 e: a) p) e4 h; l6 h
  17. * published by the Free Software Foundation version 2.
    # T) a* ?$ i8 K/ Y' l& o0 d: j
  18. *$ E7 b: W+ |- \
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    8 I* J1 l) ]& @
  20. * kind, whether express or implied; without even the implied warranty- l# h: c  J9 m4 M, E9 S; ^. i
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    ) r5 `9 k+ W1 f' ~  i% k/ C
  22. * GNU General Public License for more details.
    # M: A4 H! @$ U# O/ O  O  v
  23. */
    + ]) v2 A: a6 J8 l

  24. 7 A" b5 K1 H2 M. d+ \; r( e6 u
  25. #include <linux/module.h>$ b. i  m. Z1 B( [: a
  26. #include <linux/init.h>. n7 i0 C. Y& ?! L0 E# p
  27. #include <linux/errno.h>
    * x: r' l0 p# ?. W
  28. #include <linux/types.h>1 f. J) T2 Y3 J: C9 r
  29. #include <linux/interrupt.h>
    - b! |% y' t7 L! S- g
  30. #include <asm/io.h>
    8 {+ N& X1 G4 P1 u
  31. #include <linux/moduleparam.h>( I. ]& L) o0 F; u! b+ t9 R8 A& }/ l
  32. #include <linux/sysctl.h>/ x9 [4 y! E& X5 C0 ]% R
  33. #include <linux/mm.h>- D  W, j  `& ^  J
  34. #include <linux/dma-mapping.h>; g7 P; Z/ \2 n' R
  35. # B  K( I# \! }+ a/ p0 e9 _' C
  36. #include <mach/memory.h>
    # S4 b  o3 s/ {$ P
  37. #include <mach/hardware.h>* P  ~2 i- z/ j# Y
  38. #include <mach/irqs.h>
    ) ?# @: C/ f' ]* X) O
  39. #include <asm/hardware/edma.h>
    7 P6 K5 d8 N7 l6 m' y: V& d4 P
  40. ( N* Y% _) I4 b. u
  41. #undef EDMA3_DEBUG' N3 G; M7 ^8 b1 @8 N2 z/ D' q
  42. /*#define EDMA3_DEBUG*/5 v) Q9 B! l: \- _9 S( _
  43. ' K  \. V8 f7 ~! l  v7 F( |
  44. #ifdef EDMA3_DEBUG. e' i/ c  c: ]  v
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    5 O( _8 }' U1 A5 d- g" [) @  D9 U# u$ z
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)% I* y0 \$ A) {% a$ r1 @# b
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__). n2 Z* H8 U  R' x
  48. #else
    ; A: A" i$ y+ k' A$ C( R
  49. #define DMA_PRINTK( x... )! k! {# ?3 `( ^+ U. @
  50. #define DMA_FN_IN! p4 [1 L1 C# [' w& u/ U9 p4 z' f
  51. #define DMA_FN_OUT
    6 X5 R5 k, g% b2 I( A: G
  52. #endif
    8 g- v2 Q' C0 j" w3 Y% V. e, b) V

  53. ' T% O1 a/ |, e, z$ v7 e( e  c
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    % T( x! ~7 h- T" I
  55. #define STATIC_SHIFT                3" S3 n% k+ N5 @0 i9 N
  56. #define TCINTEN_SHIFT               20( K6 G+ i7 v' o  N$ z4 b
  57. #define ITCINTEN_SHIFT              21
    " A3 X( w- p' }" m. n
  58. #define TCCHEN_SHIFT                226 u$ C  i% q( h; ?% {% s
  59. #define ITCCHEN_SHIFT               23; m; H5 m+ A3 z$ D' e" q# p1 N
  60. ! o, K# x1 c3 d- N
  61. static volatile int irqraised1 = 0;/ u! ]& ~& p. B
  62. static volatile int irqraised2 = 0;
    7 H1 x, w$ y% V- F  T2 K+ u0 |
  63. ! R+ l$ P$ Y* ]+ a- x% L
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    # R. H( H( S, a8 f% L
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    * ~; b  M- e2 Q/ l- c  k' d- {2 e
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);: e$ G" C, E: d; @! T) j1 E1 i8 w3 l" |# N
  67. $ [" T) Y" a( g5 O5 Y3 f" u8 q
  68. dma_addr_t dmaphyssrc1 = 0;
    0 Z; N# m$ i3 D0 D% q. j; m3 d
  69. dma_addr_t dmaphyssrc2 = 0;: [$ \" D) f# g- D! A  L
  70. dma_addr_t dmaphysdest1 = 0;
    9 |3 n, z; ]  g
  71. dma_addr_t dmaphysdest2 = 0;4 [4 r+ ?5 Z+ `+ }( y
  72. / s  _, \. M2 C6 C8 c2 {. G& A3 t3 z
  73. char *dmabufsrc1 = NULL;
    & Z, T; q% X: V8 w
  74. char *dmabufsrc2 = NULL;4 K0 P- P$ n  b. z+ E: v
  75. char *dmabufdest1 = NULL;0 y1 J5 N9 g8 [9 \+ {8 B  ?
  76. char *dmabufdest2 = NULL;- ^1 {$ u, s9 t( V3 K% j
  77. ! F4 m( B7 B2 P! s( B/ f. @
  78. static int acnt = 512;
    9 p- n3 P6 K0 j1 J* i+ _' R% W
  79. static int bcnt = 8;
    ; x& a. E  \2 }3 q0 I' V. j1 W  p
  80. static int ccnt = 8;
    2 Q0 F& D* W1 J) m5 \6 B

  81. 3 x# C; H0 L* @. |" C/ J
  82. module_param(acnt, int, S_IRUGO);
    3 c, l3 c$ B) c0 h  i9 U# T
  83. module_param(bcnt, int, S_IRUGO);
    0 z- g8 A) N5 M' l
  84. module_param(ccnt, int, S_IRUGO);
复制代码

# k1 s6 b9 ?4 J9 l7 A+ Q& u, E; S8 o0 d& T
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
: t9 j1 Z, k+ z( `6 farm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。" B" f% s& a# C) x7 l8 M& B
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。6 ^0 ^/ ^+ o( W+ B: `- h
5 ?; }0 R1 u6 G5 `' e. c& H9 m

' I- S' L4 `2 S, s  T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-27 03:57 , Processed in 0.039094 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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