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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 ( a5 n, `8 Y- w
  1. [code]EDMA sample test application* x( X9 F$ [* }; q" G, M9 E' R/ J" _
  2. /*1 I) ]! P: x0 P7 e* i9 r7 [3 C2 {4 X
  3. * edma_test.c
    . k' y. \6 X$ f+ I$ n- J5 J
  4. *; b- Q# J, R4 a) R2 n! Y; M
  5. * brief  EDMA3 Test Application
    8 W3 m) {; w. X$ {+ X; H
  6. *4 I3 P! r+ @0 R' T$ R
  7. *   This file contains EDMA3 Test code.
    1 S; s; W5 T( B. a3 e
  8. *
    & C9 c" h  }9 m9 z  _
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE& W5 _! V4 p5 r9 O# F) |* y
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    * [4 ]. |% M' s5 D, J: X5 `6 Z
  11. *         TO CHANGE.+ m0 u: L) y$ j+ v& I$ ^
  12. *: l* ]: s: W. E" _$ M
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/: y0 P+ e, L% B$ M9 \- {5 N
  14. *- ^9 U" W# K$ U" C& d
  15. * This program is free software; you can redistribute it and/or
    + [  \* ?. ], W- }! y
  16. * modify it under the terms of the GNU General Public License as3 }8 }% r8 M. b
  17. * published by the Free Software Foundation version 2.( P: K. @; A+ n/ a* A% Y
  18. *7 @* Z1 R& S3 |( G  j- [
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any% s, `9 K- d( u+ T/ j2 k- x
  20. * kind, whether express or implied; without even the implied warranty
    7 c: F, u+ B& ?" D
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    ( A6 R/ c/ K1 u; A
  22. * GNU General Public License for more details.3 N/ W& c9 s8 L9 @' ^& j
  23. */3 o. M5 D1 z+ ^9 g

  24. % a# B; P6 q$ S- ]
  25. #include <linux/module.h>
    ) J) @" v1 }+ z
  26. #include <linux/init.h>! m7 M( N5 b) Y$ A
  27. #include <linux/errno.h>3 ?: w6 F) u  ^6 z; J
  28. #include <linux/types.h>5 s. z& h3 h0 X/ {9 \( Z  M& S
  29. #include <linux/interrupt.h>5 G. A" P+ x0 v  G/ t7 v: c
  30. #include <asm/io.h>4 B1 }% m: s$ D" G* s, T
  31. #include <linux/moduleparam.h>1 Q# [/ s4 K; ]; w4 r/ U
  32. #include <linux/sysctl.h>7 Y- G9 |3 F3 ^) Z' U
  33. #include <linux/mm.h>
    9 b, X/ M: U) T3 V! }' d
  34. #include <linux/dma-mapping.h>" z1 g* }1 {2 Q/ T* A) l8 |

  35. ( ^4 e+ O0 f- F+ }+ @! [. y
  36. #include <mach/memory.h>9 e; i" j0 @+ n; a& u5 t$ }5 k
  37. #include <mach/hardware.h>5 `" u9 p8 E! z  v/ F
  38. #include <mach/irqs.h>) b+ r2 M% b+ e# A  ]' O& A
  39. #include <asm/hardware/edma.h>% M% A7 A6 F! Q5 O7 I6 F
  40. 7 a/ g3 A8 {( g( \
  41. #undef EDMA3_DEBUG
      g% E& `) v8 }3 T
  42. /*#define EDMA3_DEBUG*/, [1 s1 z8 t% S% X! y
  43. % Z1 R" u- g/ ~- b+ M
  44. #ifdef EDMA3_DEBUG+ V! Y% q/ ~7 n4 _- |1 p
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    8 s1 ^* n7 I) h$ L0 Z, G
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)3 Q; I5 G" Z# [$ g
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)& V( o4 e6 |: h' ~4 H; F+ F0 F
  48. #else
    * e! O' V& c! `2 T5 N( r0 ^
  49. #define DMA_PRINTK( x... )2 T2 {2 ]% j! t+ i
  50. #define DMA_FN_IN) V5 \/ j: [7 ~3 @, D* w
  51. #define DMA_FN_OUT5 V! R% m* M1 f
  52. #endif
    - P5 e  f* ]% ]# e$ K5 e& `
  53. 4 P7 z' o- [! f) ~$ B
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    7 E: m8 W# N/ K
  55. #define STATIC_SHIFT                36 `) {$ M6 t6 x; \% u0 c
  56. #define TCINTEN_SHIFT               20
    ! z; N3 w, R9 E% K5 k# k
  57. #define ITCINTEN_SHIFT              21  m6 k& k3 o3 E7 X+ N( p2 J* e
  58. #define TCCHEN_SHIFT                22$ p2 y! O! P0 e8 n# x9 \6 V
  59. #define ITCCHEN_SHIFT               23
    # Q6 i- ?' M4 s7 k- X( J
  60. 4 r. u; y* f9 D: T2 R! r) Y5 ]' g( y2 A; J
  61. static volatile int irqraised1 = 0;
    1 T( p0 w4 x7 R# E
  62. static volatile int irqraised2 = 0;6 \% b& N3 t+ V, H" E
  63. 8 x) }% {% r! g* @
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);8 R" T9 b8 |. M) q- \
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ! \! b' E9 R/ L  P* g* E6 Q# y
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);! F% N6 }' k0 d3 D7 Q( S! A

  67. # h3 m. }. k. Q# c' `+ t
  68. dma_addr_t dmaphyssrc1 = 0;7 H8 C9 f$ ~( K7 y  V/ k0 d
  69. dma_addr_t dmaphyssrc2 = 0;7 c5 A/ G! G8 r* U5 u* S
  70. dma_addr_t dmaphysdest1 = 0;
    ; U; c; p& Q8 }# z
  71. dma_addr_t dmaphysdest2 = 0;
    ! m$ o- ]& h$ f% B
  72. ( m4 h9 N8 i& \* j  u- z
  73. char *dmabufsrc1 = NULL;8 X+ |  O# ^; [* n4 ^
  74. char *dmabufsrc2 = NULL;# P! \. D$ p5 m
  75. char *dmabufdest1 = NULL;; g* O6 s, g! H+ z! R
  76. char *dmabufdest2 = NULL;3 D7 w/ T, r7 `7 r
  77. ( S# l3 r: L& ?4 X0 F/ r
  78. static int acnt = 512;
    & o& t) e* J2 @4 ~+ r
  79. static int bcnt = 8;
    4 Q, ]/ c3 P; b* N/ s$ [
  80. static int ccnt = 8;
    + [6 `7 n6 [3 l/ V; A- @

  81. & j% J/ D" N) D' w& {' E/ m
  82. module_param(acnt, int, S_IRUGO);
    4 A! L5 C1 d( u8 ^. z$ ?
  83. module_param(bcnt, int, S_IRUGO);
    ! I3 w/ B  T; ]( U: S3 I
  84. module_param(ccnt, int, S_IRUGO);
复制代码

9 v3 X2 `. J, e, R1 T3 I& V' O* m4 {9 o0 i2 }
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
) M( d  R' n$ V. \4 A7 Garm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
/ g* R1 i) s/ F+ D     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。* H8 N5 F, s5 n- q4 V& W+ A9 z
5 d9 k2 v- K& D

! p6 ?7 O# K) f; d" A" ~. ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-10-19 15:16 , Processed in 0.038745 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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