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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
" h4 F; \+ z  j, m- q$ a
  1. [code]EDMA sample test application$ O4 w% g, x: B: U' m0 A
  2. /*4 u$ P: o+ }1 q6 i5 o* X
  3. * edma_test.c( h9 x* {% ?- k- ^3 u9 r
  4. *
    / R- H! @% J9 V! v6 U. A
  5. * brief  EDMA3 Test Application
    4 q0 @5 _( d# I
  6. *% M) |) Q! ]# k# {% q8 N$ ~' j
  7. *   This file contains EDMA3 Test code.1 c# C, a! ?5 N% }+ B* n
  8. *7 j% a2 A9 o: Q8 z$ s# D+ [
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    ! Q2 @  ^, ]: [. i" w- u8 w. m
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT1 K5 k0 N4 U# \- D9 P
  11. *         TO CHANGE.- a# L, d  }2 S1 ?, ?
  12. *
    : l9 z9 |2 d: n* S1 o* w
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/; @+ |3 F- d! B% u/ n  l
  14. *
    6 |3 t/ S6 f& c6 u" x* Q
  15. * This program is free software; you can redistribute it and/or2 X: m% I6 k2 G: F
  16. * modify it under the terms of the GNU General Public License as
    ' s0 ^' P/ E. V/ P
  17. * published by the Free Software Foundation version 2.
      J/ @9 ]( r  w8 t( y4 N* G3 \% p- Q
  18. *
    : J# ~! [* h# i5 y! Q
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any3 n, C8 c2 f7 a7 a; c0 M
  20. * kind, whether express or implied; without even the implied warranty
    ) e) c* x0 F& ]1 H5 k& u! @  Y
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    - b# ]% o8 T/ N' |3 ^8 Y4 r
  22. * GNU General Public License for more details.. U9 J9 W& x! j0 ?6 }/ M
  23. */
    0 P$ L2 r  f& t* n+ j
  24. + U  x! ]( I5 `/ x
  25. #include <linux/module.h>
    " h) n6 [2 X6 @  c; z& e
  26. #include <linux/init.h>
    ! j& Y- _; {2 E4 g- K5 y
  27. #include <linux/errno.h>; m% o  I" L7 q& ], l' y
  28. #include <linux/types.h>9 ^- z/ L) s. X  y
  29. #include <linux/interrupt.h>9 D# |, `% L9 U' `- f
  30. #include <asm/io.h>
    3 g5 _6 q' v% a$ G' W6 E
  31. #include <linux/moduleparam.h>/ h9 v* G  r1 A" B
  32. #include <linux/sysctl.h>& G) A" ]5 d, x4 ^$ q" }3 @
  33. #include <linux/mm.h>
    $ p! S8 J! z- i+ J1 L) c5 |. \) m, m- T
  34. #include <linux/dma-mapping.h>
    : l9 |# ]8 U  n- X0 G9 b- ?
  35. 1 J$ P  ^) Q/ _$ a7 G: u; i
  36. #include <mach/memory.h>
    8 R* ?: x4 D# \& C! l6 O
  37. #include <mach/hardware.h>
    3 |; X( O+ v! F3 i
  38. #include <mach/irqs.h>
    " h' Y) R5 K6 O  }& m! A
  39. #include <asm/hardware/edma.h>
    + B7 R4 a& i% l  J2 |$ K6 q+ `
  40. 0 E- G; q& I. g9 V0 ?) [5 x
  41. #undef EDMA3_DEBUG( Y- m4 F& K" u
  42. /*#define EDMA3_DEBUG*/
    3 e# z( {, h' c5 }9 o& O0 Z" [
  43. 5 d! G' x# a3 {
  44. #ifdef EDMA3_DEBUG% I7 c9 N2 M! D) S% H
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)8 e# S- Q' S: e2 a6 i: r  E$ z. ^3 H
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    4 X' _' y4 B2 [$ V# ?# k
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    ( |3 o6 P# P$ t. g! H: k
  48. #else
    1 n; u  r0 @  e' ?! \
  49. #define DMA_PRINTK( x... )
    0 z3 x% X) L' K7 H0 |, u/ B3 P! F
  50. #define DMA_FN_IN
    ; r( C8 f5 \1 Q  c! ~  h
  51. #define DMA_FN_OUT
    / j! Z% w( @& J0 m
  52. #endif
    % x" E$ Z$ b: F5 P+ k3 u
  53. " H3 N! X( \% B! a5 d
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)3 O7 p6 _9 h6 r8 |8 y2 Z
  55. #define STATIC_SHIFT                3
    1 c9 H' A# p' J9 }7 `
  56. #define TCINTEN_SHIFT               20
    3 U7 I* N7 v, u7 u4 S5 u: J0 K
  57. #define ITCINTEN_SHIFT              21- P* V/ C/ v( Z* N3 g* h8 D
  58. #define TCCHEN_SHIFT                22
    % X$ i0 W1 S# v& o* W" c# H7 d
  59. #define ITCCHEN_SHIFT               23
    8 x  j0 r1 Y3 z2 X) x5 L9 Y

  60. % r" s1 r5 H/ l
  61. static volatile int irqraised1 = 0;8 Z+ G. e, ~  s0 h8 ], ~9 q5 X- T
  62. static volatile int irqraised2 = 0;, X$ h* M* L# B8 s) b/ e

  63. ) O4 L. v1 A0 l, m3 ^( m4 g9 ~( O; w
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);+ J; X* T3 M" K/ r- c
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    . Z- A: A: i/ q2 o
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    7 {9 _6 f8 a/ l' Z+ V& v
  67. - Q/ e$ G# b) N
  68. dma_addr_t dmaphyssrc1 = 0;$ N. P' V% z% K5 X1 w0 m
  69. dma_addr_t dmaphyssrc2 = 0;4 k  o0 V, P; i* y& s1 Q6 j
  70. dma_addr_t dmaphysdest1 = 0;% r" G9 \) ^2 E" l9 z1 ?* ]1 X  H* W+ f
  71. dma_addr_t dmaphysdest2 = 0;) Q% k. G6 ?' i0 ~+ _. j2 n
  72. 9 u! t2 A4 v9 q! U% r; ~3 d4 j: g
  73. char *dmabufsrc1 = NULL;+ E$ x0 D2 B! x4 d1 S+ T
  74. char *dmabufsrc2 = NULL;* h6 p5 F2 {  E7 o, B& z+ M
  75. char *dmabufdest1 = NULL;
    , L% }% N  \" h9 h
  76. char *dmabufdest2 = NULL;
    6 J3 u" ^4 t. A

  77. / g/ j0 o* q+ m( v0 b
  78. static int acnt = 512;
    1 s  J( n* w5 p! F
  79. static int bcnt = 8;
    5 r1 m9 {3 Q; u7 r+ o1 h
  80. static int ccnt = 8;  n/ s) ]$ E) |

  81. " j' b9 j' X9 D: Q9 w
  82. module_param(acnt, int, S_IRUGO);* m& s/ R7 b1 f: D# Z
  83. module_param(bcnt, int, S_IRUGO);" R' z4 U) m1 x& K# H* O# g. H
  84. module_param(ccnt, int, S_IRUGO);
复制代码
; |7 y; v. y6 Q- Q
4 Y  U- ^) v- d; S; G
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用$ s0 {5 _' u- v6 j( t
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。  i- H) V8 C. |/ {2 I0 l( M  K1 N
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。7 l4 A4 S& {) ^) M: p/ r

3 ]9 Z, e) a  M7 \! p& w; l  p! Z2 J/ {* J8 e- p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-21 23:27 , Processed in 0.037947 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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