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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
$ n  [* u5 B. y  q# W
  1. [code]EDMA sample test application' N% \% y/ v4 F' S) H% k
  2. /*
    # u/ C  V! I/ z) `5 O" ~& q
  3. * edma_test.c( V1 Q0 \. `( l) ~' a
  4. *' b; h/ k% |: g) B
  5. * brief  EDMA3 Test Application0 z0 [+ P% B# ~/ g" \5 z4 |
  6. *
    " M# d9 @4 A# R( [. G- Q" M6 ?7 [
  7. *   This file contains EDMA3 Test code., o& _2 D! Q# p4 o9 T8 K
  8. *( d) e" ?) V7 O( e1 k* S* p3 A4 s
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE! |" }, c& ]" c# C3 q  k
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    7 p4 t' _5 x  z) C4 i
  11. *         TO CHANGE.
    3 i! d2 n. y# G( N3 b
  12. *
    * @/ u' H% [+ B3 w, W+ V. [5 s2 @- y
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    1 W, z( p- K/ q5 V- a2 x+ n- D
  14. *
      j5 I2 e/ \( f1 w1 x
  15. * This program is free software; you can redistribute it and/or) j, V2 s8 A, |3 f7 d6 t0 N
  16. * modify it under the terms of the GNU General Public License as
    8 K, s% P6 i( s2 {; M! h
  17. * published by the Free Software Foundation version 2./ Q$ J, M# D% w6 V$ L
  18. */ k3 p) T# g/ F! Z" R; v( N( o
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
      z6 X9 f. F, o' o5 v
  20. * kind, whether express or implied; without even the implied warranty, H1 L" p2 i8 v: j& j
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the- L% Q! l* Z7 ]4 q% E) U
  22. * GNU General Public License for more details.
    : [$ _1 F6 n1 u+ D1 W
  23. */  J2 m. I2 }0 Q  E9 f' R

  24. ) g6 G9 Y- q8 y' `- V  w# Q
  25. #include <linux/module.h>
    ; w1 g, `( C8 j) ]! G$ i
  26. #include <linux/init.h>7 e) I9 V+ _) P; g' w. T7 ?
  27. #include <linux/errno.h>( ?# S: Z3 ?1 H: `* _  a$ Y
  28. #include <linux/types.h>* l7 |5 {9 I6 w: J3 K4 F4 o. ]( w  T
  29. #include <linux/interrupt.h>
    / \% O1 l, g3 E( X0 F) Q; Q) L$ e
  30. #include <asm/io.h>- Z3 i- k( h& a" t' V# o& `7 q7 z* W0 _
  31. #include <linux/moduleparam.h>( t* K  n9 U& s- p$ K/ j
  32. #include <linux/sysctl.h>
    ' L' {7 a+ X4 R5 _5 _& N
  33. #include <linux/mm.h>8 w% G1 G# K) D8 {
  34. #include <linux/dma-mapping.h>5 ]$ E9 Z% `& a( g- {

  35. 7 b' S  R% r% z' r
  36. #include <mach/memory.h>
    3 B- R' @# |1 u* U  G) j
  37. #include <mach/hardware.h>6 p& z- J% k0 H  k7 J" f9 h
  38. #include <mach/irqs.h>' w0 [1 t' F# M/ v5 t4 N
  39. #include <asm/hardware/edma.h>2 `* }# o! \( T, `+ ?

  40. 1 R) u: }" n* j7 z* B5 e9 p
  41. #undef EDMA3_DEBUG) Q. P- j9 [- ]$ c6 f0 R0 u) x# T
  42. /*#define EDMA3_DEBUG*/: I  B" P6 o9 N- U
  43. $ N0 ^0 p) t: u9 R- U2 Y  E
  44. #ifdef EDMA3_DEBUG* t2 V# }& z: S6 c2 ]5 ~3 W
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
      [' G; _0 ~; I! ?8 i% M
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)3 B* B! K7 x/ x4 q. g
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    1 b9 ~7 B" k7 `5 E- t9 y: E4 a
  48. #else
    ; Y4 U. H7 f. ~
  49. #define DMA_PRINTK( x... )
    / ]6 t' n2 D+ i9 _) f2 _
  50. #define DMA_FN_IN
    . Y2 X9 d4 j! F
  51. #define DMA_FN_OUT
    . E) a+ y7 v5 g
  52. #endif  Q  r# t: {# T1 L
  53. ) D' a4 M; D8 b5 c$ P1 e
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768). H2 N; L+ G5 y1 i
  55. #define STATIC_SHIFT                3: V. x- @/ U. k7 ?0 [5 `9 M
  56. #define TCINTEN_SHIFT               205 @1 ^3 L) q; A9 h3 _
  57. #define ITCINTEN_SHIFT              21% x, F# k+ W# F3 F7 q% e3 u$ W
  58. #define TCCHEN_SHIFT                22
    ( E2 U* t9 v5 Z8 q. r
  59. #define ITCCHEN_SHIFT               23
    + c7 Q- Y" [, F1 e/ [  \

  60. $ J+ ~- u/ n8 ?5 v
  61. static volatile int irqraised1 = 0;
    # A  [" R1 [  ^/ {# a
  62. static volatile int irqraised2 = 0;: k, a3 s! b  B  a+ E9 ?! |
  63. " v# ^- e/ {) E3 |1 o
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    1 _" y! Q2 c: r; a
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);$ S  h9 {. r% j6 ]3 o
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    + ?- i7 t# k- n/ W5 V- x; O3 f

  67. 9 O$ K9 V' T" I& u
  68. dma_addr_t dmaphyssrc1 = 0;
    ! i5 J* S; R3 @
  69. dma_addr_t dmaphyssrc2 = 0;4 j/ \/ Q( V- k& [7 O! h6 l
  70. dma_addr_t dmaphysdest1 = 0;
    & U9 S& n0 M2 i& S$ \1 m
  71. dma_addr_t dmaphysdest2 = 0;, v' }; A& A7 u2 e
  72. ' P) E+ p5 `5 H+ o
  73. char *dmabufsrc1 = NULL;
    7 W3 B2 C) L& G" v, U" Z1 p/ z' p0 h
  74. char *dmabufsrc2 = NULL;1 W7 u# T9 o2 i! r
  75. char *dmabufdest1 = NULL;
    / ^  N+ {( d# l; Y. q; |
  76. char *dmabufdest2 = NULL;
    / Q! V3 ^2 n# y; J/ m
  77. . w8 U1 U9 }# l9 r7 g
  78. static int acnt = 512;8 m; d5 A5 z8 p8 ~$ X, ^% E% G% A; H
  79. static int bcnt = 8;1 Z. L' X3 I: p# `( }( n
  80. static int ccnt = 8;) D8 B. C! [+ Y+ V( \4 U7 x

  81. 2 q" s$ i& D# c8 e; o
  82. module_param(acnt, int, S_IRUGO);& b+ D  v2 o/ ]$ _' x& t; k, Y
  83. module_param(bcnt, int, S_IRUGO);* N3 S( s$ y  L" ~+ a4 t
  84. module_param(ccnt, int, S_IRUGO);
复制代码

) b: a; a# w# Y3 o8 i! ~2 J9 r. l# A2 U5 d3 ~
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用5 e" Q- R# m+ M" L" B7 n
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
3 a! n& U3 ?  a% U+ ]     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
1 ]4 d/ W9 h" l3 n5 U% o  A( Q) B! ~( O% H/ O" O! o
4 q* `9 b" Y1 V9 T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-18 18:02 , Processed in 0.040197 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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