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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
% M, j- Q' @; l# L( j: S: _& x  r4 [
  1. [code]EDMA sample test application
    1 v9 W8 k. u+ U
  2. /*2 ~/ O$ f$ f% x. C& n
  3. * edma_test.c# O7 o& P- O* s$ S+ s: n/ M
  4. *
    ; G/ M7 P) k' q$ [8 e% ~; E" k) i7 ?- G( F
  5. * brief  EDMA3 Test Application, ]$ n% }( `! L* z9 a
  6. *
    3 F; U& N- F) |$ N5 R+ r, j
  7. *   This file contains EDMA3 Test code.% ^4 F! c7 B/ I! y: S/ s
  8. *( y& ^6 C( l( R$ J
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    " G" i; M& v/ ~3 Q0 _
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT1 @* }& }3 {- @/ c1 j
  11. *         TO CHANGE.
    ; J! c, [$ e: C; G0 F6 A+ s) M
  12. *
    # ^/ G# J4 y" v, k- k
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    6 B, M: N, [/ W( S
  14. *
    + P3 t2 q* p9 t: b2 C
  15. * This program is free software; you can redistribute it and/or
    7 m8 U* ?- D5 W5 d7 e7 u( _
  16. * modify it under the terms of the GNU General Public License as
      N) i% B$ N& w; _6 {0 x3 y
  17. * published by the Free Software Foundation version 2.
    6 q# Q8 P- u# ~; _; N7 P. c
  18. *. ~/ Z) x" B' l2 C" F
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any/ `% b# h8 `+ h8 \
  20. * kind, whether express or implied; without even the implied warranty
    % y3 Q6 d2 \+ O$ M* j
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the( m( {4 _0 p# G) U4 ^, Z: U
  22. * GNU General Public License for more details.
    $ s  _1 |# `1 A( Z8 V1 w: v
  23. */
      D  l7 E2 V6 F  t

  24. 6 |+ a. w* D, S2 t1 E7 N; c9 b
  25. #include <linux/module.h>
    & g6 D5 m  z2 B6 g, J# H
  26. #include <linux/init.h>
    . ]0 I! L2 y+ U; R9 m% _
  27. #include <linux/errno.h>
    + N7 J+ h4 [5 x3 U# d
  28. #include <linux/types.h>
    ; x4 e3 a2 s5 g% {! n
  29. #include <linux/interrupt.h>
    . C& A# W: ~; z
  30. #include <asm/io.h>0 \2 f5 q1 G. W) Y' W& v2 \: h
  31. #include <linux/moduleparam.h>
    + J6 H! b8 W, ?
  32. #include <linux/sysctl.h>7 \3 z+ R7 B. }  u9 p" p
  33. #include <linux/mm.h># C7 E2 {1 N5 L4 w; O1 ?5 ^+ f
  34. #include <linux/dma-mapping.h>
    . k3 d8 G; D# O

  35. ' I) v5 j( Z5 i* F2 a8 D- F4 T
  36. #include <mach/memory.h>
    $ K$ a" \0 W6 W, e
  37. #include <mach/hardware.h>
    & |3 n. _" A# F6 L' C- z' i3 j; y7 ~
  38. #include <mach/irqs.h>
    / ~. M1 ~4 l& P, S4 l( L( A, D6 I
  39. #include <asm/hardware/edma.h>
    . T8 k7 @, ]- J7 h

  40. 8 `: Y, K. _0 j: ^" I5 ]
  41. #undef EDMA3_DEBUG( Q- }! y& |, J9 P2 d
  42. /*#define EDMA3_DEBUG*/
    % U% `: k: b1 p. H/ z/ G" A

  43. 6 Q& p" F9 C! c# h( A9 M
  44. #ifdef EDMA3_DEBUG% Y% N1 R) m6 g( w( p8 {
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)/ c& j) k5 I3 @2 v1 R
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    7 |: U$ x, V! t* j3 ?7 {% H
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)$ o1 d5 c  a8 p0 w5 P3 K7 Y0 I% a
  48. #else
      p0 S  W& @3 K. i/ l( I' z6 {
  49. #define DMA_PRINTK( x... )4 m+ @! o9 V* s
  50. #define DMA_FN_IN/ h5 P7 E/ @6 ?6 P
  51. #define DMA_FN_OUT
      W# b" i/ ~/ j$ F( j, T, o
  52. #endif
    8 j0 P+ V% f$ N  S

  53. & ]$ P8 Z5 p; `& Y1 Y
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)' ^$ i( P! O- X( b+ g1 k% N
  55. #define STATIC_SHIFT                3( j! I' P) D. ~
  56. #define TCINTEN_SHIFT               20
    % y6 Q1 l# e9 F4 S! b( s" s/ s
  57. #define ITCINTEN_SHIFT              21
    $ S: k! u8 y" G$ G5 Y. q. ~
  58. #define TCCHEN_SHIFT                22. a. y4 ~8 l3 E) X
  59. #define ITCCHEN_SHIFT               23
    - z7 Q8 z" }3 G* Z3 |& S! K* t

  60. 1 C, W! i, ]% Y7 \; T1 K8 s+ X
  61. static volatile int irqraised1 = 0;/ \0 ^& z9 A! \2 Q0 F3 p
  62. static volatile int irqraised2 = 0;
    ( B  g5 ?! m- _3 @6 l3 f1 ^' t
  63. 8 X' \) x3 n! U3 h
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);% _# m; U: d; T4 d5 J
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);4 l2 r" Z+ l1 P( w/ Y
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);4 U. K. F( Y/ J5 u8 m; o
  67. : c6 r4 F# B4 {0 ~8 ^7 t& v
  68. dma_addr_t dmaphyssrc1 = 0;& E8 W+ p; u! r
  69. dma_addr_t dmaphyssrc2 = 0;& _2 E, G4 g6 T2 K8 P: N# i9 o/ b
  70. dma_addr_t dmaphysdest1 = 0;5 _5 a3 @# G0 n$ }. `3 l& u$ f# I
  71. dma_addr_t dmaphysdest2 = 0;8 c$ @) _* r! N3 A1 ~5 U
  72. ! g' h2 U( L+ V! L8 h4 G3 s
  73. char *dmabufsrc1 = NULL;9 f- ], x4 \( @/ d
  74. char *dmabufsrc2 = NULL;
    ! j' T; J7 R% Z& X; Y% ^
  75. char *dmabufdest1 = NULL;( H- _9 ?0 g: j) S% S' z* [( T- B/ i
  76. char *dmabufdest2 = NULL;
    6 i' C% E+ X$ d3 M- a5 v

  77. 2 [5 {+ g% m9 O% W/ S: x
  78. static int acnt = 512;
    : O3 w4 L+ [$ ^
  79. static int bcnt = 8;6 s( C; S- p+ Q; i) F( z
  80. static int ccnt = 8;
    / k" ^  |' E8 M) y) D6 Q
  81. " c1 G9 i9 s1 }% `( {  }
  82. module_param(acnt, int, S_IRUGO);; u8 |! F, d2 _+ V
  83. module_param(bcnt, int, S_IRUGO);
    : ~2 t/ D9 C+ f* V2 ?1 y
  84. module_param(ccnt, int, S_IRUGO);
复制代码
' C9 R) e9 v$ X1 X

# I( ?" q; f+ C5 |      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用! }7 N# |/ ^8 `* s: I: F# ~
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
0 F+ d7 _5 P) r. ^     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
5 i: o) [7 x( e
/ A# T0 k9 `  X- f, D1 `4 s  D" D  T$ k. r8 z" J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-4 21:52 , Processed in 0.038411 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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