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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 % m0 _9 z  ^4 O
  1. [code]EDMA sample test application: N: X: X; U: [1 ?% o; |
  2. /*
    & |1 y& \4 k1 j4 l. I! `5 O
  3. * edma_test.c& e! {- [8 ?" O7 K+ d
  4. *
    $ L: b9 N) g  K: ]) ]
  5. * brief  EDMA3 Test Application$ ^% o& c( |" N( {* K4 I6 Q
  6. *
    + h: c* e5 I4 L0 i* Q
  7. *   This file contains EDMA3 Test code.
    . B4 X$ ]: o& d0 b" V
  8. *6 p) h: [4 U- H/ |6 P
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE3 x+ X' L" z  {, l
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    7 [* Q/ D6 V! M5 m
  11. *         TO CHANGE.
    ' i) m9 [7 `  S& [7 n0 f
  12. *
    9 C' }2 I7 d% V
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/) Q8 c% U) a8 ^
  14. *
    9 V) j* ~8 u+ u( Q. T5 w
  15. * This program is free software; you can redistribute it and/or
    7 Q" Z- u  y; k1 H8 L$ c
  16. * modify it under the terms of the GNU General Public License as
    ' I: i$ ~( O2 T! |
  17. * published by the Free Software Foundation version 2.
    + B: b- k* }+ {# ?) a$ N, E' n
  18. *
    0 ~, A+ Z! O; J  s% U1 l6 I- i1 G
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    ( @! C2 j$ K( l+ z& o+ B
  20. * kind, whether express or implied; without even the implied warranty- A: g0 N/ x0 Y1 j) |5 W
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the# e# c% e. o( C! u  v: e0 L
  22. * GNU General Public License for more details.* ]( k2 K- g" l7 u
  23. */7 K, y( K' y" Z+ f! b6 t5 f

  24. % p: N- E/ b, [' c
  25. #include <linux/module.h>. i8 s0 h; Z( `' ^
  26. #include <linux/init.h>
    3 F, M4 j, r! c5 C7 m7 J; I
  27. #include <linux/errno.h>
    6 a! Y7 E0 T, v& L& b# V! u, y! ]  ~  t
  28. #include <linux/types.h>' V2 \& g# ]8 U3 X! C9 f
  29. #include <linux/interrupt.h>
    7 ?' A9 v" \' l0 V2 g
  30. #include <asm/io.h>
    5 o) P, F: {$ u& P7 D. ?0 }
  31. #include <linux/moduleparam.h>
    , D1 D. S$ T# h5 U1 h
  32. #include <linux/sysctl.h>
    , r/ n6 q; }5 e$ A0 {
  33. #include <linux/mm.h>5 i3 s$ f) x( O, p6 \  `* P( m
  34. #include <linux/dma-mapping.h>
    . Y3 k& J, s# O! n& J& O3 j" X0 Z
  35.   j; V# J& E; [7 L0 [( g1 E5 V0 j
  36. #include <mach/memory.h>. }9 l! i9 E+ ?6 D. x! u
  37. #include <mach/hardware.h>7 H# w! n3 K0 C5 x
  38. #include <mach/irqs.h>$ i& R% W6 j# p: }  ~3 s( D
  39. #include <asm/hardware/edma.h>
    . {; D* ^: K! N3 R0 d/ b9 }, h
  40. - g' V! o: k1 E( K; t. B6 W' h. Z
  41. #undef EDMA3_DEBUG
    1 ?# J- n8 w9 x# G
  42. /*#define EDMA3_DEBUG*/" H9 |7 z) {; {9 \; l4 W
  43. 8 R' u8 r9 T7 H
  44. #ifdef EDMA3_DEBUG9 l& i" y4 d2 `- ~( O
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    9 g- p$ Q7 ~" ?0 y7 K) @9 I
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    6 x2 M1 C  N( C. B7 [& g' h
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    . v9 H  K; V# J3 a1 K( u
  48. #else
    0 H" j+ K; `) A7 I  R4 E
  49. #define DMA_PRINTK( x... )
    ! I3 |9 e2 v+ C# k
  50. #define DMA_FN_IN/ ?7 W, r+ ?* q/ z' g
  51. #define DMA_FN_OUT! x/ c# [" S, p) e5 ^
  52. #endif
    5 A8 _% i9 |' M% T/ m, W" S
  53. * D, f. k5 v- g0 j& U3 f( w
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    6 I; L: ~, P  B6 _
  55. #define STATIC_SHIFT                3; W0 y- u: H' z) t
  56. #define TCINTEN_SHIFT               20& t- q) U. f5 s9 g' O
  57. #define ITCINTEN_SHIFT              21
    1 L4 [& ^1 q/ U9 t5 A4 b6 r
  58. #define TCCHEN_SHIFT                22
    5 o4 [# w& G7 W. }, @- R% {0 O
  59. #define ITCCHEN_SHIFT               23
    & u1 b6 ~9 Q/ m+ {$ |

  60. 1 j9 Q  J1 [; H2 h! h
  61. static volatile int irqraised1 = 0;
    7 z# ?0 p$ g1 X1 _
  62. static volatile int irqraised2 = 0;
    # r; e: J5 `; W7 |

  63. 7 n" l* b, |% S; m' [
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    & F% c7 C9 g! t$ e  n9 T+ G
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);% h( ]) S) @, D3 e. Q
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);3 C5 l- y9 [3 Y$ L8 f

  67. + c, X7 _7 L" r$ d+ B5 C
  68. dma_addr_t dmaphyssrc1 = 0;
    9 a2 v0 i2 u$ `, F- h4 v" U
  69. dma_addr_t dmaphyssrc2 = 0;: ^) x  \3 H/ |! K1 P
  70. dma_addr_t dmaphysdest1 = 0;
    $ [' z4 k+ H7 ]% b
  71. dma_addr_t dmaphysdest2 = 0;
    ( J& y/ X( {# B% I' b

  72. $ _2 t) k4 l( F$ p# [
  73. char *dmabufsrc1 = NULL;
    6 }" A5 `) X* J2 \
  74. char *dmabufsrc2 = NULL;
    ; `+ P9 N# I0 R' d. m$ l
  75. char *dmabufdest1 = NULL;  M0 i& z/ ?) d* P& l1 Z  q
  76. char *dmabufdest2 = NULL;
    " _. S- z6 _5 e7 ~4 W( u

  77. 6 r- Y* B2 ~& }9 F* n1 M
  78. static int acnt = 512;; ], i7 Q# @0 K$ a0 R2 a
  79. static int bcnt = 8;0 G5 y( F5 _) L" t( t3 `
  80. static int ccnt = 8;& `9 q: H  w  ?. I% U5 h
  81. 6 r9 @$ C) }* |
  82. module_param(acnt, int, S_IRUGO);
    ' Y, ^+ e# G; |6 x& E) p5 I
  83. module_param(bcnt, int, S_IRUGO);
    2 E0 e* n/ x3 o  [8 W
  84. module_param(ccnt, int, S_IRUGO);
复制代码
* Y$ F0 Q4 [0 n

% C; \8 K; N) F  U+ `      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用1 V& `: K) P- U. Y" T. T, y2 u. z( a- z
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。0 ?$ v% c( @6 G) b# a
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。+ N7 q, V5 y, E. a6 d

, Q. y- G; I3 t5 w; [) V5 Q
$ ]- m' D" b; j* Z  z# r2 N4 ]5 O0 W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-3 09:22 , Processed in 0.038322 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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