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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 " b5 p7 B8 a, @2 A. [2 y9 F/ o
  1. [code]EDMA sample test application: a8 O# d) i% V
  2. /*
    : v1 G" j- i) X+ p' `7 K
  3. * edma_test.c* h, N0 [5 k2 r" w) }' W
  4. *
    0 i# M7 I0 Y  i  v
  5. * brief  EDMA3 Test Application
    7 R  \) j! ~2 ]6 B
  6. *
    . G7 x  G* @2 e# O& o
  7. *   This file contains EDMA3 Test code.
    ' Y3 a' j. z: _6 R. Y6 t
  8. *
    $ y; L, g9 V* W
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE  ?2 C6 M# I* |! P9 X, l
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT& Q5 @! H1 ]) B% y6 ^. a
  11. *         TO CHANGE.
    - P8 v$ o- c6 z, y+ A; B: t7 r
  12. *
    1 {3 W; x( P& _* U- e1 O$ E
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    1 U$ x/ O4 p! m: ?: Z
  14. *
    , u. Y  K0 W9 y8 n& k
  15. * This program is free software; you can redistribute it and/or
    ! P+ W) z8 m: ~9 F! l! u
  16. * modify it under the terms of the GNU General Public License as" v2 X- _5 k) ^: a- C9 [- {- B
  17. * published by the Free Software Foundation version 2.
    4 _/ {7 i/ s+ R' [
  18. *4 ]  b9 V3 o4 F$ d& H# y
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    1 ~+ s# E" B+ Q# h
  20. * kind, whether express or implied; without even the implied warranty
    7 W+ T4 ?3 ?& E* v
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the5 ]' O4 W2 C+ ]- o& M
  22. * GNU General Public License for more details.: N* R; c8 A8 `$ F
  23. */. n2 ^" J: s$ s
  24. - O) H  a# K& j, Q9 S* x
  25. #include <linux/module.h>: |* @: R/ I5 x
  26. #include <linux/init.h>
    4 e. r6 A. o2 o" X4 W( N; x
  27. #include <linux/errno.h>2 o- P7 H# ]0 u* {# e9 J
  28. #include <linux/types.h>2 \. K8 v9 q3 G5 c6 L0 E0 f
  29. #include <linux/interrupt.h>
    - U4 v: b$ [. v- `$ T  s: K- w
  30. #include <asm/io.h>
    9 W8 a. S- E! Y3 ^
  31. #include <linux/moduleparam.h>- z4 j$ j' u& M  F: Z
  32. #include <linux/sysctl.h>/ w1 Y7 I( A2 h
  33. #include <linux/mm.h>: J1 z% `: G0 e. t
  34. #include <linux/dma-mapping.h>1 d; Y9 ?2 p! d  D/ W) A$ |

  35. 5 U+ r; {6 _* Z4 j: h3 S
  36. #include <mach/memory.h>
    7 F4 p8 K9 ]. X0 }- t1 t
  37. #include <mach/hardware.h>
    & c. x/ i) D; h' _
  38. #include <mach/irqs.h>. j/ o* j- z- u# R& H' Q/ Y. b
  39. #include <asm/hardware/edma.h>
    % A' {; C- r2 l  E2 \
  40. 6 z, @6 `- F1 i3 o
  41. #undef EDMA3_DEBUG
    / a3 z4 w( O  H
  42. /*#define EDMA3_DEBUG*/
    + h4 B5 }6 q9 x# A7 N; ^- r+ o

  43.   ?, ?1 V* ?( }% T& q7 N- O
  44. #ifdef EDMA3_DEBUG; P- }; L  E9 T' ~1 n+ V4 n6 d
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS): G4 P; [2 ?5 M9 ?
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__): T  p5 x8 Q6 i5 `# b
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    ' e2 U% S8 W, ~; R& f; L
  48. #else
    , A- r+ B9 S% s7 `" ]
  49. #define DMA_PRINTK( x... )3 I& J$ d# J( A# T! i
  50. #define DMA_FN_IN: F5 m) Y8 z! J5 {* I" i
  51. #define DMA_FN_OUT
    7 J$ l  Y5 Z, T& R7 U& m
  52. #endif) w  I7 C* T" w( K# `3 }
  53. 7 s1 {9 C5 l! B+ N7 |2 |' z
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)* F6 f* B9 R3 x
  55. #define STATIC_SHIFT                3
    4 a% K( U2 d! k9 v: G9 ^
  56. #define TCINTEN_SHIFT               20
    3 `7 m; [$ A4 R: f
  57. #define ITCINTEN_SHIFT              21( S! T. a; U; e4 ]' |  J# ?9 w& F4 L
  58. #define TCCHEN_SHIFT                22
    ) ~5 D# p+ z! i( q
  59. #define ITCCHEN_SHIFT               23
    + ~2 j6 m1 V* q
  60. ' h# O! @* x# G0 C* s
  61. static volatile int irqraised1 = 0;( ^# z4 P$ I; r* }8 T, \4 n
  62. static volatile int irqraised2 = 0;
    ! G( y# O  Q1 F$ h

  63. + M. x7 y, G% O- c
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    5 V8 c; ^) F# ^) |* {
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);0 R4 T( `" H! k: A
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    6 g/ z) V# c& r2 q: ^( j
  67. 0 F) O% j0 |( ]6 J; A0 Y2 j
  68. dma_addr_t dmaphyssrc1 = 0;
    9 w' \. j4 G1 ]# R& m+ Z/ S
  69. dma_addr_t dmaphyssrc2 = 0;! z+ `  `+ j" ?8 Z4 j7 S
  70. dma_addr_t dmaphysdest1 = 0;. W* ~7 A; k) _9 c
  71. dma_addr_t dmaphysdest2 = 0;
    1 T) A" \) V. Z1 q$ J# s1 L! c

  72. . Z1 T+ R  k: n, y7 O5 w  k' N
  73. char *dmabufsrc1 = NULL;  e$ c6 E( Y: P4 i6 p
  74. char *dmabufsrc2 = NULL;
    6 j1 k  K1 C7 B8 z
  75. char *dmabufdest1 = NULL;3 K5 Z7 C' o! l' j6 N7 x( z, t
  76. char *dmabufdest2 = NULL;
    : x) ^$ P6 a/ ]! D2 Y* B& w7 ~# d

  77. : G' ~5 ~) ?( E' g1 y
  78. static int acnt = 512;
    6 Z) E! \  R7 h! r; j" D2 w
  79. static int bcnt = 8;
    0 o& P4 W0 j( O4 E
  80. static int ccnt = 8;
    6 q# S; U' S) g8 W% a

  81. ! Z. A. I6 R0 p" M: h. u
  82. module_param(acnt, int, S_IRUGO);
    9 g; G* l6 o2 |& P5 V+ d: [# \
  83. module_param(bcnt, int, S_IRUGO);
    0 S, n1 o7 q( S) K
  84. module_param(ccnt, int, S_IRUGO);
复制代码
0 B# n& C+ U: V

. P1 M+ g! j" x, r* Q4 G* Z+ j      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
* |. H6 ?9 Z8 e7 h0 N' Y& ]  Parm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。$ K1 z& `- D2 M9 G
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
, I9 L+ u/ z( P$ N* v, m
) W; L1 Y7 u5 H6 L1 x& S$ O4 \0 d
# ], R1 p3 }3 N5 g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-25 10:59 , Processed in 0.046097 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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