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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 * Q* W; i; m6 u' K0 `
  1. [code]EDMA sample test application9 T4 X$ m! \5 B& f( x
  2. /*2 p. v; _. R3 D+ g" i  ~
  3. * edma_test.c
    * ]* L2 C  I5 Y7 U0 I0 \# m0 j: J% Z( t
  4. *) S% E; Q$ I, R- F; D
  5. * brief  EDMA3 Test Application  U6 x$ D* w0 P( R4 s
  6. *
    - C+ v7 ?1 A9 J  B) J5 ~0 u
  7. *   This file contains EDMA3 Test code.% Z8 _5 ~9 W2 J# y6 k3 O
  8. *: p  j! x4 o6 A% N% [3 I; ~
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    * p( k( p, X7 @- \8 ?
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    5 `4 S2 F0 s+ t
  11. *         TO CHANGE.
    ! J' G" \! ~( H+ o
  12. *
    * ~( O; I+ E2 R; Q' |# x
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/! o! U2 {7 {1 d' l
  14. *
    9 U, f3 p/ J1 v' H
  15. * This program is free software; you can redistribute it and/or) a, |9 l1 x; O% {) _# C  n  }
  16. * modify it under the terms of the GNU General Public License as
    ; j8 x7 k: I" r, j
  17. * published by the Free Software Foundation version 2.: F( r' F/ ~7 n
  18. *4 r& y- T6 u  a' ]
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    # y. h: b0 O1 O! Q3 d( m
  20. * kind, whether express or implied; without even the implied warranty
    . K. Y, q- n4 G  ?% k7 s1 I
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the$ s: d& t. U8 L9 o
  22. * GNU General Public License for more details.$ e* V/ r9 m# @9 `
  23. */- p, F) c& e  H3 ^
  24. 1 n/ d" V+ m7 n: }8 ^+ y
  25. #include <linux/module.h>
    $ P3 \# x6 G/ D/ |
  26. #include <linux/init.h>4 T- u6 o) @) s7 e# K/ J2 v; C
  27. #include <linux/errno.h>
    1 H1 S5 b7 f3 m2 E5 h
  28. #include <linux/types.h>" H- f& D: Y) s( r* _1 T2 E0 n# }5 R, w
  29. #include <linux/interrupt.h>
    - `( n, }" M; l1 Y4 r. E
  30. #include <asm/io.h>, r- U. X1 S( I6 Z+ K% K5 N1 k
  31. #include <linux/moduleparam.h>( W8 s$ G3 F2 j+ o  z& C
  32. #include <linux/sysctl.h>
    - {7 i  i. A1 q) L
  33. #include <linux/mm.h>8 p& |: m2 _; H- L! D
  34. #include <linux/dma-mapping.h>
    + _, i8 Q- q6 }- y
  35. 8 d; C' Z- U" p8 ~/ ~5 I) [
  36. #include <mach/memory.h>. N1 H7 O5 h  Z& R/ I6 q
  37. #include <mach/hardware.h>8 B" O# H" H0 W; a0 ?
  38. #include <mach/irqs.h>" m1 u+ S" @2 t$ ?4 F6 R
  39. #include <asm/hardware/edma.h>
    ! G: ^: C5 `7 M+ `  q
  40. ! R2 v% e% |/ S1 t# j  Q
  41. #undef EDMA3_DEBUG# ~" q  g3 O7 N$ l( j* D5 N
  42. /*#define EDMA3_DEBUG*/
    - g0 C' p, U& \5 ^6 K- x
  43. 3 S& [5 j8 }$ L7 g% X3 f2 c7 [) e
  44. #ifdef EDMA3_DEBUG3 n- G' \" @0 @
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS); H; e3 C2 T. h& v
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)# J! G7 v2 U& a7 K* W9 O; ^, \
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)% |' b9 d0 |! b/ f) {  `4 ?- M6 t7 M
  48. #else
    , `8 \3 ]( w$ h- Y, u# y
  49. #define DMA_PRINTK( x... )
    - e- o+ F  u5 Q! k0 ~: Y
  50. #define DMA_FN_IN
    " s8 \) ]1 w8 _2 u5 P& O3 E- ?# F8 [
  51. #define DMA_FN_OUT
    : t4 M# F! F; P/ n- z/ o
  52. #endif/ G( l% |& b& }" w

  53. 0 |; v8 u: B* }
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)9 c5 {. G' m. z" O
  55. #define STATIC_SHIFT                3) z+ U% S. \6 R- L0 w* m$ ], @1 D: ^
  56. #define TCINTEN_SHIFT               20
    9 P7 `6 }8 H, h: s5 ^* x3 j6 I
  57. #define ITCINTEN_SHIFT              21
    $ ~* o5 V& }  L, N' d, A* w
  58. #define TCCHEN_SHIFT                22
    1 l2 G: a: \% e( N1 j
  59. #define ITCCHEN_SHIFT               23; r, G6 r: C6 v2 \# M

  60. ! _/ ^; c! a) l$ \
  61. static volatile int irqraised1 = 0;  q- R- a; m- M  k- f& N
  62. static volatile int irqraised2 = 0;) t; U6 `" A1 @7 G
  63. ; [  ~, M8 o, C* x) I
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);  _6 S  @+ K# ^0 ^, \
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    & j" I6 M$ m6 x1 p2 M* k" w  T$ k  s
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    # ^% ~2 E7 ^% o; i
  67. % Y" ?) }; m. x; b% D% ^. I* }6 L
  68. dma_addr_t dmaphyssrc1 = 0;
    1 }  o$ ^$ x: s( K
  69. dma_addr_t dmaphyssrc2 = 0;
    " w$ s) e( x! }8 H, n
  70. dma_addr_t dmaphysdest1 = 0;' p0 e& W  N3 t5 E4 \* ]- A$ M2 @
  71. dma_addr_t dmaphysdest2 = 0;
    : s+ N- z+ T' M2 i" q
  72. 7 U: J( N) p8 q7 c+ m
  73. char *dmabufsrc1 = NULL;
    7 J  C: y" e: j9 [# W9 ?8 [6 C
  74. char *dmabufsrc2 = NULL;
    * H8 W& |( u) A
  75. char *dmabufdest1 = NULL;
    ( k* v7 ]! y. m+ |8 ?3 L
  76. char *dmabufdest2 = NULL;# U5 C6 x$ @% X
  77. ; m/ @$ u8 }  m7 u* h9 [
  78. static int acnt = 512;% {% r) g5 z$ m6 B
  79. static int bcnt = 8;
    9 P2 A6 ~6 d6 j
  80. static int ccnt = 8;( ]0 q( _  R  C& }# K: _# o

  81. % o2 Y4 m( g/ _* P% D
  82. module_param(acnt, int, S_IRUGO);
    + ~8 x, u% ^. |& K) `9 Z. Q
  83. module_param(bcnt, int, S_IRUGO);
    + k! i7 J9 w$ [; d% C
  84. module_param(ccnt, int, S_IRUGO);
复制代码
6 @$ X" ?* b4 @6 x" i

& W& O/ ?0 `! z7 G2 V" `/ ~      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用7 F  z2 Q. ]# b7 \' \
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。5 J& [( d9 o- v9 `# n/ b
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
# I4 ^+ @6 O3 Z0 [  \  k5 J
4 M5 b, F' E! z# c+ s
# n1 z! _. o* A9 `# l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-5 15:21 , Processed in 0.038946 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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