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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 % G' a8 j/ T7 Z% q" T5 Q& g
  1. [code]EDMA sample test application( Y( x+ h6 \% `' W4 l
  2. /*
    " \1 P; Z6 o5 E$ C
  3. * edma_test.c. f- t% F; }9 [5 R
  4. *# ~1 F/ X* Y8 t( {: Y
  5. * brief  EDMA3 Test Application  T9 v$ |" X2 i4 j4 v
  6. *
    ) o& K  V( Q, h
  7. *   This file contains EDMA3 Test code.$ b4 q/ q. O3 a7 Q& E0 c, @1 p* }
  8. */ o! I! d% k& g8 m
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    ) [  G3 n+ O1 {: ^. I  [4 L5 L; [
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT" Y7 W- g% @1 x( ^  I
  11. *         TO CHANGE.
    9 s' M  q8 P$ i
  12. *1 M' b0 c: {( R  A
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    $ M7 N: [' U1 T
  14. *. }4 H2 w8 \4 b3 |% q
  15. * This program is free software; you can redistribute it and/or
    ) v% j4 O+ |' f0 V% [- R, m# n5 m
  16. * modify it under the terms of the GNU General Public License as
    * C3 W4 \( ^3 J1 Q$ s2 t
  17. * published by the Free Software Foundation version 2.; B: X& v! ]2 ~7 y
  18. *8 m2 h: |5 q9 {* V9 F5 K
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    + \7 A6 ~/ Y/ a, _0 M
  20. * kind, whether express or implied; without even the implied warranty+ G1 q' j( q3 C6 }! G+ B( C
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the- D% _; B6 ?& ^$ ?& z8 ~+ o
  22. * GNU General Public License for more details.
    6 k% ?. r$ p. a- A" F, s) O
  23. */1 A6 _9 Q) v; R& z

  24. 7 l, C# x. F* o# a; n
  25. #include <linux/module.h>4 @  {0 \3 J; L! K
  26. #include <linux/init.h>6 T/ @; @% [, j4 _( G
  27. #include <linux/errno.h>. l8 N& m! Z& b7 t1 ~& _% j" ]
  28. #include <linux/types.h>3 |  P" G7 l* J
  29. #include <linux/interrupt.h>
    / c* V& q% t; v5 y: L7 F
  30. #include <asm/io.h>
    1 E7 S* N+ N% @3 g5 ?/ l3 b4 X1 A" }
  31. #include <linux/moduleparam.h>
    # _* ^+ C$ \& ?: [
  32. #include <linux/sysctl.h>
    0 n5 T) {! {  l: H3 w/ M7 n" g
  33. #include <linux/mm.h>5 l) Z3 p0 J4 L1 g$ F* g; m  D
  34. #include <linux/dma-mapping.h>
      E. p* Z" Y# e( c2 H0 R
  35. 7 c% \% x* _; d! j/ ^/ [
  36. #include <mach/memory.h>
    ) Q$ {- x1 q# e" [+ B: @+ G
  37. #include <mach/hardware.h>$ H2 p0 n' s; N' Y* W
  38. #include <mach/irqs.h>
    2 Y" e. Z* \* ]6 ]
  39. #include <asm/hardware/edma.h>
    4 Y  j( d. E3 z7 A  a1 j7 z0 X1 R* o
  40. 2 J5 G% O1 j/ n$ @
  41. #undef EDMA3_DEBUG
    0 h/ u4 J9 C, }1 J* |/ B
  42. /*#define EDMA3_DEBUG*/9 O7 J! ]; T. c! E# u4 f7 v5 Z
  43. + z- }# g9 J1 o$ J+ U( g: T7 R
  44. #ifdef EDMA3_DEBUG
    / W( i+ `7 X1 W) T) S' r+ y& z, I0 q) a
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)) M+ k/ }" ^8 G3 m1 H
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    , a9 ^; I7 O- Z3 e/ a% m4 x
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)' [$ [1 G, s% J8 o, T
  48. #else
    1 h: Q/ J! J0 |! L% R
  49. #define DMA_PRINTK( x... )
    " L5 {! O6 b  `7 A8 T
  50. #define DMA_FN_IN
    5 T9 s) V2 d6 N) C) F
  51. #define DMA_FN_OUT
    : G! N2 V- J, [0 z
  52. #endif. `+ g- o6 }  A* Q0 }

  53. 9 k9 B$ y" u- X+ ?3 T
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)" j9 E: z+ r" p1 w% o
  55. #define STATIC_SHIFT                3
    # y' \# z* m2 V2 Z8 a" n
  56. #define TCINTEN_SHIFT               20
    " `8 d! p; S+ x% o
  57. #define ITCINTEN_SHIFT              218 L: \9 Z0 F7 ]: Y. q/ Y3 G( ^
  58. #define TCCHEN_SHIFT                22$ o& f5 P% N; f! Z; D
  59. #define ITCCHEN_SHIFT               231 ~! J4 }8 A+ ]# J, C  L
  60. % U. b; J, f7 d9 M- X# i3 b
  61. static volatile int irqraised1 = 0;
    6 F+ _1 Q9 R5 Q: u/ p' y9 ?
  62. static volatile int irqraised2 = 0;
    # m% h: |5 }) I' S8 c

  63. + ?3 D; ?. K& M8 a- ^6 j
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    3 S% O6 K1 Q$ x" ]( w" z
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    3 ?6 o7 q4 j/ v
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ( B7 w: H" q& O$ F3 W
  67. % m+ T& R8 e, r! T' Z7 o6 |
  68. dma_addr_t dmaphyssrc1 = 0;
    / u( `) |% C. {9 O( a
  69. dma_addr_t dmaphyssrc2 = 0;  g- n0 `1 j) X+ U
  70. dma_addr_t dmaphysdest1 = 0;  }* U" e8 }, d$ ?2 R1 Y
  71. dma_addr_t dmaphysdest2 = 0;7 f7 q) i# h  r3 ?7 u/ r2 k  ^% j
  72. 9 G" t+ p. P% G0 b
  73. char *dmabufsrc1 = NULL;% t  X7 \/ n2 s- J( {! r+ G/ A
  74. char *dmabufsrc2 = NULL;
    ; i' w. m6 g) }6 ?9 d
  75. char *dmabufdest1 = NULL;: C- F# j' U8 d6 i
  76. char *dmabufdest2 = NULL;: J( u' D( x8 r+ z, y' F- z
  77. 4 s0 T6 f0 Z3 {  ]1 W
  78. static int acnt = 512;4 j! ^& F" t- v8 ?4 V
  79. static int bcnt = 8;7 F( D, D& j2 V; `9 o
  80. static int ccnt = 8;) m1 y6 }9 q4 N+ G0 @
  81. - Y$ i: ]- D6 x4 V5 Q0 \9 w, A
  82. module_param(acnt, int, S_IRUGO);' V* d: L1 h) ?+ l% _
  83. module_param(bcnt, int, S_IRUGO);
    - d. P7 N4 d9 w1 V
  84. module_param(ccnt, int, S_IRUGO);
复制代码

) y, v) \$ \7 g
( w1 a5 @9 P7 D4 _# n      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
' e+ l; R$ ^  l; o8 ]3 u) {9 x" ^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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
, S3 s- g0 v# ^! T/ ^5 {. N. P     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。# s" O( h6 ?2 H0 M# K6 q: ~/ S
: ?9 i2 M" d$ P. l$ R9 F8 W
8 p- Z6 ?7 |& o6 o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-8-18 08:26 , Processed in 0.047463 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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