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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
) M  Z6 o4 S# z  v. L
  1. [code]EDMA sample test application5 R& F0 m4 ?* b0 l8 @5 P7 K
  2. /*
    9 c: A0 V  \6 A( y
  3. * edma_test.c
    # K. C( `& n* x
  4. *
    : c' R; X4 d: k2 l8 x$ ^8 Y
  5. * brief  EDMA3 Test Application4 s; I8 f, @# ?
  6. *
    ) \; n; N+ G/ W. S/ E4 o) s
  7. *   This file contains EDMA3 Test code.9 k& o3 X3 O( \
  8. *
      A! G, d; A8 n$ Y+ I2 w& X9 m
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE4 {) `: B1 E( A+ P! @
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    ' n3 C) _2 j  q# A( D2 I
  11. *         TO CHANGE.
    ( N! P+ l: X% ]4 @9 y7 V: t2 J
  12. *7 `' ]6 |8 k1 m! B8 r6 H
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    ) D* b/ W2 d: R1 e3 U! `
  14. *4 c; K7 ]% Y0 o, O4 p  P" q2 D0 W
  15. * This program is free software; you can redistribute it and/or+ r8 H& _; T0 T3 P
  16. * modify it under the terms of the GNU General Public License as) t' Z9 M/ {7 v; `' P: q
  17. * published by the Free Software Foundation version 2.8 J# v/ w' J0 j& u4 i" b
  18. *
    5 f. A7 T7 `) s: K0 _
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    6 c9 `( C& s0 Y) J  Q# d
  20. * kind, whether express or implied; without even the implied warranty
    ' v% F: e7 P9 @; }) J; Q, L! _
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    : R0 r2 R5 u+ b1 o
  22. * GNU General Public License for more details.
    7 R/ Y* B3 U; D) E, A( |
  23. */' R* p# R/ x" M' y

  24. ) D; j* W2 x8 m
  25. #include <linux/module.h>1 z% e. C2 ]+ _6 n
  26. #include <linux/init.h>
    & f+ f! i2 g1 F
  27. #include <linux/errno.h>4 w0 Y* _. L9 @9 c8 J! R) v( e& Y
  28. #include <linux/types.h>; S  _  W4 @2 \
  29. #include <linux/interrupt.h>4 F; A" i! B3 q3 a4 y
  30. #include <asm/io.h>* _- p% o; O; |
  31. #include <linux/moduleparam.h>' e& D4 T4 j8 f# S0 F3 n
  32. #include <linux/sysctl.h>3 b3 `$ U) W# y; d$ f
  33. #include <linux/mm.h>0 I/ [9 S- E" E, S+ w& V
  34. #include <linux/dma-mapping.h>2 i0 F9 O* E  y# }0 D. y
  35. # J# @0 K/ Y* d
  36. #include <mach/memory.h>, y. U! s7 G3 m  _& j' m
  37. #include <mach/hardware.h>
    : D# J- S* V/ }) \# j3 R
  38. #include <mach/irqs.h>5 O5 E2 M# k; Z% u
  39. #include <asm/hardware/edma.h>
    9 e+ v$ G% o- [' u7 O( M

  40. 9 T/ j+ ?* }% l! M. u2 d
  41. #undef EDMA3_DEBUG
    ) c" T5 `  X: K1 r8 U0 z1 u
  42. /*#define EDMA3_DEBUG*/
    ) s% q+ X' B. k. i; y* i. E) y

  43. / i; f  \- M4 l- J/ S1 K  B# H
  44. #ifdef EDMA3_DEBUG4 m2 n, `$ G! e1 X4 i5 V) W
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
      W* Z. C% [2 w( n$ l' U8 Z
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    9 [3 _# y2 ]  P7 @' b
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)  Q' s: C1 T' f8 \7 b8 Y! J
  48. #else
    $ a* ~- J7 n8 q% ~2 ~
  49. #define DMA_PRINTK( x... )
    + _8 Y, h  b1 `2 k
  50. #define DMA_FN_IN1 Z5 [* F4 v8 h/ X% Q1 e& ~
  51. #define DMA_FN_OUT
    * g: H% _/ R8 n# l# c) v
  52. #endif
    ) Y4 V' f' s) y( a5 J

  53. 3 e" x& c5 h- `8 m
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    & k) g/ `9 o  a$ B' N& z* X
  55. #define STATIC_SHIFT                3# X- z/ d) z, v% N; R( N! P0 \& [
  56. #define TCINTEN_SHIFT               20
    + ^/ p$ b+ r/ b, ^: V! b% y
  57. #define ITCINTEN_SHIFT              215 T; }5 D8 U3 M) {
  58. #define TCCHEN_SHIFT                22
    ) f6 B7 K8 o" \6 A4 \& `
  59. #define ITCCHEN_SHIFT               23
    . Z3 o4 I8 }7 v3 N2 S- A

  60. 4 h4 P5 u) M9 q( Z- Y% k5 c
  61. static volatile int irqraised1 = 0;$ a5 w2 ?# w! G( h. }: M. B2 m  a* n
  62. static volatile int irqraised2 = 0;
    / v: s) }: ]: ^: Q- Y+ w: C3 o

  63. " k3 e* k$ _+ K* e
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    4 G1 G+ d7 Y$ h6 o
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);: |+ t1 T/ R3 p, x) I: |
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);! O+ B0 w1 `# W* w* j; y

  67. : H9 ]4 p" o7 P9 A
  68. dma_addr_t dmaphyssrc1 = 0;/ ]+ ?) N  l+ y; W) ~
  69. dma_addr_t dmaphyssrc2 = 0;
    $ X1 `" _# L# _' U+ N7 K
  70. dma_addr_t dmaphysdest1 = 0;9 c4 A- h7 |) c, X9 _6 P
  71. dma_addr_t dmaphysdest2 = 0;9 z- G, V; D0 t

  72. . k/ M$ s  z7 c' z
  73. char *dmabufsrc1 = NULL;& ~; A- f$ m/ |
  74. char *dmabufsrc2 = NULL;  l0 x* D; |/ l& w, L: K6 v* d
  75. char *dmabufdest1 = NULL;
    " x5 G5 i# Q7 X! V: B
  76. char *dmabufdest2 = NULL;, D# y! Q) l& t/ K  n

  77. 1 c5 V$ k; c6 e% P2 d# z5 J
  78. static int acnt = 512;
    & J: V* r6 T) g( `$ b0 ?$ ~7 b! {
  79. static int bcnt = 8;
    3 A0 y, W+ L( C& t7 ~" h' ~
  80. static int ccnt = 8;
    , o* w. b1 p. Z$ y( B
  81. * p5 x& b1 x2 s! N1 k0 e
  82. module_param(acnt, int, S_IRUGO);
    - \( s: `+ `; h  C5 g. p' [
  83. module_param(bcnt, int, S_IRUGO);
    0 m: i$ ~* s4 s! ^- v3 Q) D" p
  84. module_param(ccnt, int, S_IRUGO);
复制代码

8 [% n+ u! E" m; K4 l4 Q; T) q, J6 q6 x1 H
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
/ W- b, `0 c4 A7 G/ [1 R- Earm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
& d+ u& e; z/ W  A! L" v% u     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
9 ~. a8 S: Y* N2 L0 S3 v3 J+ B/ _
" ^  h/ W2 ^$ w6 y" I* x
* U4 n+ K. I6 I% R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-23 21:36 , Processed in 0.038334 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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