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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 ; R' W$ Z" e" W% Z' P4 O' C* S
  1. [code]EDMA sample test application
    / C+ M9 M$ w# F  u5 \! s
  2. /*% l) @  X0 J" B3 `! U% ]: i! z6 K
  3. * edma_test.c
    6 k1 J( ?. U! ~. Z" w
  4. *# m: O& L$ A- B9 A
  5. * brief  EDMA3 Test Application  b. s4 u$ i8 D1 q& ?" q! S
  6. *& N0 i$ _' A# E9 c) I# ?  D" o% O
  7. *   This file contains EDMA3 Test code.
    / O$ b; Y" F/ h4 g' T. g8 @- ~
  8. *: O# }( K5 S0 I* N: |) \
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE/ ^3 L2 _/ A; X. g  L& f3 M
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT( D: i3 N% |3 [) D/ K. H
  11. *         TO CHANGE.
    " Z/ V7 i- p* b9 w& q1 q
  12. *- h! i& i) Z: [2 b$ l/ t# ~
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    . O$ P: @+ _/ U+ a8 j
  14. */ l; D3 k* X2 t: S5 ~- ?0 f
  15. * This program is free software; you can redistribute it and/or
    ( {& ?& _5 U; i- ?" M8 O! p
  16. * modify it under the terms of the GNU General Public License as
    3 [+ C$ V3 h0 y8 m$ i
  17. * published by the Free Software Foundation version 2.
    9 \5 {- S# ]2 R/ Y* p2 E$ f) r1 a5 f/ T
  18. *7 K* k1 T4 k2 c7 _  s
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any- |7 s: ?) o" T1 U: V0 k
  20. * kind, whether express or implied; without even the implied warranty
    * ~# |1 i" E4 ~2 Z
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the) n. v" s/ N* Q! `0 K
  22. * GNU General Public License for more details.- v) p  |7 T4 g  v% c9 j3 [
  23. */
    ) ~# z% U+ M7 P1 T' I" J5 H2 j: h7 c
  24. ; a$ H9 E" m( z
  25. #include <linux/module.h>
    / L- K  t6 I- U% x% C* G' L
  26. #include <linux/init.h>: K4 C8 o* h, h  Q) d" d
  27. #include <linux/errno.h>" B: u5 y4 l) y3 O; x) c; a7 x  d
  28. #include <linux/types.h>
    % A* Z& ^, t( m. }" D5 E, v
  29. #include <linux/interrupt.h>
    ! y6 n- ?# g2 k$ K% D( _/ }" E
  30. #include <asm/io.h>
    8 w! ~$ b3 }9 u, H* y3 T! Q
  31. #include <linux/moduleparam.h>
    7 p/ L" i9 f9 E8 O8 Y+ [, u: Z
  32. #include <linux/sysctl.h>
    4 z" Q7 u; B2 c4 R
  33. #include <linux/mm.h>
    4 ?: z1 g* k% O( n8 T
  34. #include <linux/dma-mapping.h>9 x# F7 \) s% D$ r' \  T  ^

  35. - A; \8 X% Y4 N. e, c. A
  36. #include <mach/memory.h>+ g8 u3 J2 ~% _5 ~; `
  37. #include <mach/hardware.h>' t0 O4 _! d  H: `( v" H# Q
  38. #include <mach/irqs.h>
    5 m  S1 p, J7 d- W
  39. #include <asm/hardware/edma.h>( a4 T$ S3 P* m$ v& Z8 s

  40. # E4 y! p7 R4 i5 T! ~" W
  41. #undef EDMA3_DEBUG
      g0 k# |$ E0 i9 \6 A/ F4 ]" S* R
  42. /*#define EDMA3_DEBUG*/
      `5 H0 {) }& R1 a
  43. + M1 K: I/ k/ A7 T
  44. #ifdef EDMA3_DEBUG
    . G3 p6 Y7 ?: }& g) {
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    6 b! K6 t$ w- L
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)3 h% a3 \9 Y- C: w# G: ?+ O
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
      K" C. J6 ?. ], p) x% u4 l& y
  48. #else1 ~8 _' }: Y* a' S3 s9 K! V. a
  49. #define DMA_PRINTK( x... )
    ) F1 c* N# W9 N: x* R$ [/ u
  50. #define DMA_FN_IN) U4 b9 i* c& Y. O
  51. #define DMA_FN_OUT- X7 e/ H1 ]6 a2 R$ R
  52. #endif. v7 U8 @  V& X' h# |9 u

  53. , G5 ?; H3 d! W- ^: f: O
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    , _4 j; E5 v* W
  55. #define STATIC_SHIFT                3' v% Z' ?9 i  S
  56. #define TCINTEN_SHIFT               20
    ( ?; _# i1 w! j# }1 ~. ]! C' M/ p
  57. #define ITCINTEN_SHIFT              21% z! M* F3 O. B/ K
  58. #define TCCHEN_SHIFT                229 h3 O) B' |8 z6 \( J8 \- i
  59. #define ITCCHEN_SHIFT               23
    - m0 L* J- g1 I. Z% _5 c# |" W
  60. 9 T" ~0 N# Q5 E6 [* w( e* c
  61. static volatile int irqraised1 = 0;
    ) @' H. k. M* d$ W0 v2 ~
  62. static volatile int irqraised2 = 0;
    , L4 N" n5 P6 X1 W/ {3 ^

  63. ( C4 |) o/ Z5 S. Q! q0 e, M* r' Y
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    . e$ M0 }8 e# e1 T; f3 B
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    + n0 Q6 R& A* {# D5 ]! k
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    * z7 D0 O' `  C
  67. 7 q1 x/ a# T6 L, \1 K. `" ~
  68. dma_addr_t dmaphyssrc1 = 0;, Z0 R0 G% l0 N8 O3 Z, X$ J
  69. dma_addr_t dmaphyssrc2 = 0;
    2 D0 y. o# `4 W% K
  70. dma_addr_t dmaphysdest1 = 0;: L) z0 i# S% U, d
  71. dma_addr_t dmaphysdest2 = 0;2 K# f- e- I; L, @
  72. + F# U8 d8 P' i3 o' f1 J$ m- d- F
  73. char *dmabufsrc1 = NULL;2 [$ A5 f! K  \  z8 V0 C6 ?
  74. char *dmabufsrc2 = NULL;6 R- Z" v4 f9 o8 |
  75. char *dmabufdest1 = NULL;
    + h% x8 e5 ~9 m6 D/ x. c  M1 i
  76. char *dmabufdest2 = NULL;
    ( ]  @6 ?: }$ K. ~# A) k6 \5 r
  77. 7 ^; N' T; v, q5 h) I" |/ U
  78. static int acnt = 512;* R0 _, i7 l* K7 [% W
  79. static int bcnt = 8;
    4 B  j; O: ~9 l! w" @2 i
  80. static int ccnt = 8;
    8 T& S' s( u7 ]( k9 M) F0 U

  81. ! @1 {3 U9 e1 C9 _
  82. module_param(acnt, int, S_IRUGO);- O6 m5 t/ G% s8 c1 c, B
  83. module_param(bcnt, int, S_IRUGO);$ w8 Q- Z+ t- L) R
  84. module_param(ccnt, int, S_IRUGO);
复制代码

# c9 }4 S1 n+ x, S6 s6 f/ s$ w8 i0 p2 ]
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用/ ~! z' @1 [0 l1 H
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。# y! k. O1 m- W/ U! }
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
0 r5 |/ Y1 `8 y! P6 e& ?& E
0 X$ p9 Q& z- q. R5 \* F
( H2 B5 S6 z5 h$ g. m
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-8-2 01:32 , Processed in 0.046813 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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