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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
- t+ d  q' y3 V
  1. [code]EDMA sample test application4 |! h4 C; i6 J: w& q% J
  2. /*
    3 u5 ?# s7 y* I2 |: P
  3. * edma_test.c
    3 X: _3 w5 K* V3 j
  4. *
    $ N/ V1 ?$ o) W1 \8 i9 w
  5. * brief  EDMA3 Test Application
    # s7 O, j' w8 I# K/ v7 c% Y7 ~
  6. *
    8 S7 `! v0 p# }) u4 K! K, X
  7. *   This file contains EDMA3 Test code.
    * _4 }% w: I9 i; d: I
  8. *
    " i6 E0 H1 z! B" Z  ?8 z
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE" g- g, T9 M0 H  |* X+ M; I
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    # J; F: X/ T( Y/ j/ ^$ N0 W
  11. *         TO CHANGE.
    + n4 j" }9 x1 B: ?. _
  12. *
    5 f% _% N# j! z9 @
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/! p& @" I2 a; E7 M( l0 z' D0 f
  14. *
    5 n$ S+ n4 a1 p& S* o& m. ]
  15. * This program is free software; you can redistribute it and/or. d( f7 l  m/ A+ m: o! h
  16. * modify it under the terms of the GNU General Public License as
    & M0 }0 [; Y) u$ C4 ]; a7 }
  17. * published by the Free Software Foundation version 2.( Y6 U1 k% }6 b( E& z# p
  18. *
    . ?, J6 r" }2 M* ^$ n' x; ]
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any& N, k6 x+ V0 z; l! I; x/ L
  20. * kind, whether express or implied; without even the implied warranty
    - d! F- A! C3 |4 M0 L% Y* d
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    7 ^; y: W  c( M
  22. * GNU General Public License for more details.
    6 e+ e5 _: M: w; Q; q- K
  23. */  ^% s4 l' {6 z( ?, ^" v0 P5 x, |% d$ ]
  24. 3 V! ~9 F- X2 f) t
  25. #include <linux/module.h>
    & B' }! ]  `$ e. |; q9 L
  26. #include <linux/init.h>8 H/ j: U& V) `; d3 L
  27. #include <linux/errno.h>
    . n: j; ~* |9 u% e5 L, v" u
  28. #include <linux/types.h>2 A2 F# C$ m5 p& u. A$ ~
  29. #include <linux/interrupt.h>
    * ]! J: i8 `1 ?0 t
  30. #include <asm/io.h>1 ?/ g  p5 S( m8 `, _8 v6 c
  31. #include <linux/moduleparam.h>9 c5 E/ X$ d% r* T& h% a' f
  32. #include <linux/sysctl.h># W( [4 o! y% o, T
  33. #include <linux/mm.h>) ^5 \: S9 T) k- P( R0 [! x
  34. #include <linux/dma-mapping.h>6 A5 |7 i8 o/ R! E- |. q

  35. 1 X; f! O3 c( i
  36. #include <mach/memory.h>
    8 G3 p9 r9 u! x& L3 l* U
  37. #include <mach/hardware.h>4 L% p/ Q0 r  z% p7 R( F! [
  38. #include <mach/irqs.h>, z0 M7 D8 W% \& n1 k
  39. #include <asm/hardware/edma.h>
    , j, q0 e& S2 B- S7 X# `
  40. " K3 S8 A4 }. V! R3 q
  41. #undef EDMA3_DEBUG: i; V0 U$ \4 O6 |
  42. /*#define EDMA3_DEBUG*/
    5 {" P" V0 Q& z0 A$ u
  43. $ S. x" U5 p* t
  44. #ifdef EDMA3_DEBUG
    + s7 z) D  s' W& G# d* l+ s
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    ( d7 C: L1 P& X5 T! r4 @
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)4 m* @& F0 S0 `/ }+ R6 K7 `
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__): B- o9 O# V5 S) [
  48. #else1 Y4 d# ^  P7 |8 n- F" E
  49. #define DMA_PRINTK( x... )
    4 p( b' A& V8 y( a' B% F3 |
  50. #define DMA_FN_IN2 Z1 B7 @! U2 _& ?9 G9 a% Y+ j
  51. #define DMA_FN_OUT
    8 M) t; B; z5 {* D. k
  52. #endif
    & \7 T0 j  D$ [8 e/ @1 f6 k

  53. % W, ~0 \6 \5 R. i% s- x+ D
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    " f5 a3 x9 Y; R- ~9 h- c
  55. #define STATIC_SHIFT                3) U1 x7 @* b+ G1 o! X# B9 D
  56. #define TCINTEN_SHIFT               20
    * X2 L% \& I; ?* |+ V
  57. #define ITCINTEN_SHIFT              21
    ( p3 W( n# ^9 O4 Q9 K
  58. #define TCCHEN_SHIFT                228 Z+ y+ g( c" T! i; i" r" z$ j
  59. #define ITCCHEN_SHIFT               23# s" g+ n9 ~6 ?3 k- w( D  i( b3 j- k

  60. 7 M. E3 h4 n7 y* e
  61. static volatile int irqraised1 = 0;
    - X* p/ e% Y/ j9 \( q. e6 q" ^
  62. static volatile int irqraised2 = 0;9 V" e* s' i* L5 ~; d4 {& ]
  63. & |; C1 z. w, @
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    , h7 [& X. H1 f- u
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);" p- R, P  E3 a3 D
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);- _$ q2 a' _  D, w. s" d
  67. 6 ~4 x/ }0 q7 ^! u- I) v' n5 \* T0 S4 s
  68. dma_addr_t dmaphyssrc1 = 0;' Q0 p* \! Y  s. T
  69. dma_addr_t dmaphyssrc2 = 0;
    * W! a9 |- d* i4 k) H' p
  70. dma_addr_t dmaphysdest1 = 0;# d- I. j) M6 J3 a5 Q
  71. dma_addr_t dmaphysdest2 = 0;0 b5 ?+ v: N& W1 Z- w( f% M

  72. 9 V0 p# B3 W7 j4 n3 ?: P
  73. char *dmabufsrc1 = NULL;8 U9 C' W  T; M* K6 H
  74. char *dmabufsrc2 = NULL;
    6 `0 ~8 |. ^5 T8 X8 c$ Z
  75. char *dmabufdest1 = NULL;
    " c: v$ f/ m/ B- N3 d
  76. char *dmabufdest2 = NULL;6 y: Z2 E6 b: g( e+ S
  77. % J4 u) X6 B) o
  78. static int acnt = 512;
    # m- s" W- O& y9 n5 }# N
  79. static int bcnt = 8;
    5 k0 U) ~; ^/ F# _+ |3 F8 G% }  C$ K
  80. static int ccnt = 8;
    . C1 i- q- j1 u" T/ I: v9 I
  81. - S3 z8 M  T( q! {
  82. module_param(acnt, int, S_IRUGO);
    2 n* R. _7 ?, M4 E
  83. module_param(bcnt, int, S_IRUGO);
    ' }. ?1 n* o& v0 J, E( @8 P
  84. module_param(ccnt, int, S_IRUGO);
复制代码
4 \9 A- H. S$ s& m  n. s
/ {& B7 l! x' k! s
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用6 |+ J: I2 O1 T6 x2 [
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。6 N* N# ~4 a4 ^  @" ]' M
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。8 k2 W+ a# D4 _: I/ N% E8 M

! t$ \2 S  ]5 h$ v
$ P+ y; H5 f- {: [0 q- e% W" P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-3 13:42 , Processed in 0.048056 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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