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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 7 }/ d5 ]6 v8 R$ E( q
  1. [code]EDMA sample test application! g& v: \: U8 J5 F! {
  2. /*
    ; t1 ?& R* @: B& n
  3. * edma_test.c
    9 b( C' E! V3 v0 S
  4. *- f/ `# r9 ]" F* `
  5. * brief  EDMA3 Test Application2 x" S" {3 f  w, V+ o' T9 L
  6. *
    . b! F" e3 ]/ }. n
  7. *   This file contains EDMA3 Test code.8 U7 ?+ g1 A% B! T* @* T
  8. *
    2 e1 G- n( C1 P- |0 X3 h; K$ m
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    ( z+ u: C; S/ Q  Q9 l2 j
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    ( j& q0 F; R; Y  j, B
  11. *         TO CHANGE.  Q  ?( F3 y5 R# f5 Y$ r( o3 |
  12. *
    8 |* e3 T: M" @
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    9 o# b0 x4 X. i6 u  h0 g$ i% O
  14. *
    6 d9 \8 R# P. H3 y6 d1 G/ w
  15. * This program is free software; you can redistribute it and/or
    6 S2 D0 ?, ~1 Q8 d! v1 i
  16. * modify it under the terms of the GNU General Public License as
    9 q: c! Z* E3 w0 U1 H3 O: `
  17. * published by the Free Software Foundation version 2.
    $ q0 ?/ P- m9 U# c, ]- p' t
  18. *1 Q, Z+ I. z* a+ r0 z. Q1 J
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any  b1 I1 ~+ z8 {( s
  20. * kind, whether express or implied; without even the implied warranty: v4 N, g+ y% S: v
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the5 c5 \3 E. G" ]1 N$ H. J% ]0 x
  22. * GNU General Public License for more details.' G1 ]2 }9 e) g6 z
  23. */  \  O: r+ m5 N  b! O0 ~

  24. ; h8 M. j3 {' D
  25. #include <linux/module.h>
    1 E  @8 Z. }0 T3 ?! v
  26. #include <linux/init.h>
    2 @' k) g+ b  x% y6 [; l; n
  27. #include <linux/errno.h>2 c5 p1 W4 S  T6 S, h
  28. #include <linux/types.h>
    7 o0 z( M% S8 h7 m1 O. U
  29. #include <linux/interrupt.h>/ C8 w- B" ^9 J9 O$ O
  30. #include <asm/io.h>* K: T3 w( ?9 u% z! ~* D
  31. #include <linux/moduleparam.h>
    ) r! o+ f, c5 H9 v8 T
  32. #include <linux/sysctl.h>
    ' G$ N. i( ^3 M/ a5 m
  33. #include <linux/mm.h>" Q/ z1 q9 B. X& J+ G, M( h
  34. #include <linux/dma-mapping.h>% e; b0 @2 u8 k  O* a

  35. . @) |5 P9 {1 o. U5 ~# H
  36. #include <mach/memory.h>  L# H! ~* ]* D3 E, q, ^) q
  37. #include <mach/hardware.h>5 Y4 `. s* V8 ?: i
  38. #include <mach/irqs.h>' w3 ~) T  d) h6 `0 `) u- M! x
  39. #include <asm/hardware/edma.h>) `4 _0 w( y3 {/ ~$ ^* F3 ]1 L

  40. 6 u/ u% E' N6 k9 _% O6 [
  41. #undef EDMA3_DEBUG$ n; _( v. d& _/ O" u; \5 `1 C6 J
  42. /*#define EDMA3_DEBUG*/. s9 e; U6 v* B4 R- H

  43. % w: Y: J/ G0 o3 p0 x
  44. #ifdef EDMA3_DEBUG3 ]/ Z% n; S* I# Z( l+ M
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    4 c1 k. F9 T! |2 ?
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    ( [: E6 T; f7 z+ @; U  a* x( v% c
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    ! N) ]0 [, n* J$ E
  48. #else$ G% m% e6 x4 j+ I7 F
  49. #define DMA_PRINTK( x... )# p3 C9 O' h5 W6 t) n7 z% K
  50. #define DMA_FN_IN
    7 \. W' j& R/ o, ]7 u: ^' s# T& ?
  51. #define DMA_FN_OUT
    ( h6 v: i7 d4 C3 D4 @( C" J# z
  52. #endif: \& m* h( z- L( r& k; y
  53. / g* L8 Q" [- F3 O- T; H4 Z' Z
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    0 k0 O3 g1 @. g% J& L. Q$ x8 k
  55. #define STATIC_SHIFT                3% T$ u. ^" \+ ^. w9 w
  56. #define TCINTEN_SHIFT               20. @4 }" \) E. G, x& y7 r  z
  57. #define ITCINTEN_SHIFT              21- o! z2 Q- C- j# g% p- i* j! M" ?
  58. #define TCCHEN_SHIFT                22$ ^5 q- s/ l( h9 R
  59. #define ITCCHEN_SHIFT               23) ?5 z9 O; @* P1 g

  60. 1 @6 X& `; E! J7 q: W5 f& F
  61. static volatile int irqraised1 = 0;
    & y' R0 ^1 q: `; W2 Y& R% W- b
  62. static volatile int irqraised2 = 0;! p( v" S  P9 ]# N5 ~$ w

  63. ( C8 M; }) k0 q5 M9 t, F
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);  Z; j3 P# I9 d  r9 r
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ! z2 V  j: q5 Y: K. @
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ; i; O0 J( i7 ]

  67. 3 F) e( M+ |9 N3 Y
  68. dma_addr_t dmaphyssrc1 = 0;
    0 `7 w7 v2 B& D+ w3 K! {
  69. dma_addr_t dmaphyssrc2 = 0;
    + Z  _! S! k, |- X- t( f
  70. dma_addr_t dmaphysdest1 = 0;& ], O  H3 x2 `( u. @5 G  ~% z# b
  71. dma_addr_t dmaphysdest2 = 0;
    % X7 S9 k* J5 ?7 r: j- _

  72. & W, g# z) y5 Z
  73. char *dmabufsrc1 = NULL;
    1 u+ W+ b; V4 F0 M9 L- i7 G
  74. char *dmabufsrc2 = NULL;
    ; h( A+ H: l8 l! Y- }) I1 }3 v2 B
  75. char *dmabufdest1 = NULL;2 e2 Q# d+ f+ g9 y. f
  76. char *dmabufdest2 = NULL;* F1 N# ~7 U% w! i. w
  77. ) K( Q! K1 h& S0 g7 x7 \. Q  n( w' V
  78. static int acnt = 512;
    ' a5 k- D5 I5 |5 q) b3 ~
  79. static int bcnt = 8;# p* `0 M" f% A1 c6 H
  80. static int ccnt = 8;
    1 V2 U& F: A; k7 v, {! m

  81. * _6 _4 u, m3 O
  82. module_param(acnt, int, S_IRUGO);' a6 j: \' X; ?' L2 q* J
  83. module_param(bcnt, int, S_IRUGO);
    + m. [5 X" w3 g3 D8 z. ~1 J1 I
  84. module_param(ccnt, int, S_IRUGO);
复制代码

; e  X! [3 v/ H% |" u/ d3 S6 h  i# p. k
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用2 ^8 o7 `- E! _- J) h8 A# H" r
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。1 z, Z8 S  _% r# j
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。2 B+ W1 ~) L: y1 ?/ ?: g3 @' H
' H) _- I. s, w% S! [% W
. P5 I6 `1 o% v- n0 f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-5 08:26 , Processed in 0.044743 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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