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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
1 L) y' e' z9 x. ^, V' Q
  1. [code]EDMA sample test application6 v" P& }: {& j
  2. /*' |8 F% V8 I2 `! h' z0 |  L
  3. * edma_test.c+ v/ M7 p+ R  Q% c/ R
  4. *0 a# a1 ^, L  Z' k
  5. * brief  EDMA3 Test Application( `  |7 M1 c% b# i) }- Q% `
  6. *5 _$ z+ x8 C3 |7 u& q
  7. *   This file contains EDMA3 Test code." F% _3 p$ u" p/ s: Z
  8. *
      E* i+ W. a: X) u$ {
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE4 f0 W$ G. i' J6 r9 @
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    + l  h' ]( s1 m2 o$ m
  11. *         TO CHANGE.' Z% P7 _9 ^! E( X" k
  12. *
    : P; N- o$ t0 Q9 L
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    ' {+ F# g" \6 A
  14. *% }5 S/ z3 Z2 O& D& Q/ B
  15. * This program is free software; you can redistribute it and/or, \& j3 V0 C* V' g0 D" ?' h
  16. * modify it under the terms of the GNU General Public License as2 g. X1 ?9 {$ W" A0 \; N  \
  17. * published by the Free Software Foundation version 2.
    * G6 E0 H0 X, U. H: F, v5 a
  18. *9 j! v9 u! M5 z
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any$ n( p  _$ V# R9 ]% ^
  20. * kind, whether express or implied; without even the implied warranty6 T& n5 Q% J% h8 l
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the6 h4 N1 u* c4 H6 F4 e, o) t
  22. * GNU General Public License for more details.& E/ b' V' r  Z+ n
  23. */7 [+ {5 w% {9 ]: g
  24. 2 w  g/ u/ q" z/ x; |
  25. #include <linux/module.h>
    6 N& m* x. R. `0 p' {* D
  26. #include <linux/init.h>
    + }, e$ G1 G; `" [9 k8 o7 U9 R6 N* D
  27. #include <linux/errno.h>
    7 W9 j' M( }1 {  \3 w5 }7 ^. `
  28. #include <linux/types.h>- `% L- j9 a& j3 E7 ?( |% X
  29. #include <linux/interrupt.h>/ ]" L% Z8 |7 _- W0 Q- |# n
  30. #include <asm/io.h>8 N' u) I  W# L: Z" h5 c
  31. #include <linux/moduleparam.h>
    1 z( q4 I/ Q( c) l0 ?! a. I
  32. #include <linux/sysctl.h>
    ) z4 P5 l9 k5 U4 Q3 {5 q
  33. #include <linux/mm.h>
    9 b& S  S3 |$ A0 o2 N4 w$ c
  34. #include <linux/dma-mapping.h>$ o# X4 J( \5 B& a
  35. . r' L' u, o- [' b
  36. #include <mach/memory.h>% }! ^7 D4 H/ W7 ~; \/ b  Z1 O& [
  37. #include <mach/hardware.h>0 K  d: j. n3 ^& S& z: ]
  38. #include <mach/irqs.h>, v- T, |- t, R3 R. d# D
  39. #include <asm/hardware/edma.h>- I6 ]6 w; b. G4 e( v
  40. + Y# M' `4 P% J* R* {" h3 [4 \
  41. #undef EDMA3_DEBUG
    % _- s3 b8 E) [4 e" w6 O3 b
  42. /*#define EDMA3_DEBUG*/
    : R6 `) V: Z+ p& V& w

  43. 6 E0 K( |) p, H
  44. #ifdef EDMA3_DEBUG
    * T4 Z3 f) w% I: \/ S
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    " \5 D  q& |! @: e6 B; N
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    1 i0 t2 p0 Z) O# a4 N, o
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)& g2 e" H7 P( O6 ^3 }
  48. #else
    ! F8 r" M4 h- X! S* T- o1 Z' L
  49. #define DMA_PRINTK( x... )# A% C) V3 \+ J# x0 {! A
  50. #define DMA_FN_IN  [4 G; S9 I$ V
  51. #define DMA_FN_OUT9 L5 A+ h2 t( {
  52. #endif$ C/ C3 p2 C  }. e5 u1 h

  53. ( X! `5 p3 V9 R8 y5 F8 \9 H* q
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)4 m; t9 D& a/ X6 L* k
  55. #define STATIC_SHIFT                3* _; c5 d5 A/ S& i  K
  56. #define TCINTEN_SHIFT               20
    / T0 j  y7 O8 n3 [+ j# x
  57. #define ITCINTEN_SHIFT              21
    ( D5 i+ [1 L7 _0 m
  58. #define TCCHEN_SHIFT                22$ N1 e3 `2 ^6 H; q
  59. #define ITCCHEN_SHIFT               23
      U. L% Q$ t/ t6 e+ L9 r
  60. - V9 P5 B% r+ R. \3 {; ]- m
  61. static volatile int irqraised1 = 0;+ ~% d' B. P/ W- T
  62. static volatile int irqraised2 = 0;9 s5 @- q" `3 i- I" x7 F* n

  63. ) |2 _: v+ x0 U; k0 |) I# \* _
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ( ~- d& s1 V3 d7 {: N+ ?& G2 F# u; N
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);3 Z' j, Q% W+ q. V. S
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    0 d, O) x3 k0 W! M7 ~
  67. " {/ T8 E3 x7 F! {% i
  68. dma_addr_t dmaphyssrc1 = 0;( x3 u+ a' u: j$ N2 B7 e
  69. dma_addr_t dmaphyssrc2 = 0;; Z) J' [/ G% M/ C5 n
  70. dma_addr_t dmaphysdest1 = 0;
    / T" Z, d1 E# J. `- p
  71. dma_addr_t dmaphysdest2 = 0;/ S1 @4 u; f9 S
  72. 3 a( a1 C: ]' k. x, @
  73. char *dmabufsrc1 = NULL;
    ! W2 j( Y5 }( q2 x1 C7 O
  74. char *dmabufsrc2 = NULL;) q/ P/ Z# a# m1 s
  75. char *dmabufdest1 = NULL;5 L1 z9 X5 A3 }+ ^1 \
  76. char *dmabufdest2 = NULL;% n. T% j3 _% q) K5 W. H0 {1 R

  77. 2 R  ~: e( _' K+ _7 R. f' {
  78. static int acnt = 512;
    : s- V9 K1 M2 e+ J% z! F7 J9 g/ u- p
  79. static int bcnt = 8;
    : w+ l5 h4 m# L, {0 U) I  p
  80. static int ccnt = 8;
    : K0 D* b- E' w! H0 s: |2 T! ~
  81. ( R; s4 N2 y7 ?- N! ?
  82. module_param(acnt, int, S_IRUGO);
    6 Q' g( p+ z: P% C
  83. module_param(bcnt, int, S_IRUGO);6 X! X! B/ [& Y. P! b
  84. module_param(ccnt, int, S_IRUGO);
复制代码

/ ]: m, [% }' \9 h8 `% N1 {$ F0 H! s$ u7 r* D) F* S
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用4 S3 D% ?4 ~3 i  M) }% G( j6 _
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
& c+ @' F3 l4 x; }     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
8 I% i5 @/ p0 D) O" g: V# |( |, g; _! u4 c% V

6 t6 ]* j1 K2 N: i* j7 H
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-23 04:59 , Processed in 0.039135 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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