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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 : S. A# k8 f) z. l/ v3 J- n
  1. [code]EDMA sample test application$ F' F% _! W' x! j/ _
  2. /*' A4 v1 m7 S7 p1 V0 L4 l& l
  3. * edma_test.c
    9 L* }* q# t; [
  4. *- V4 M. ~; |5 r8 o' D
  5. * brief  EDMA3 Test Application
    & R( D- k) L0 G+ V$ ^2 c+ h
  6. *
    , U9 Z1 ^0 I+ k# l2 N: l1 \
  7. *   This file contains EDMA3 Test code.0 u7 M7 D" x' n4 S  N! ^$ O
  8. *
    ( J/ c7 S% h. H% z5 t' U
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE! C8 V) z" n  b+ R
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    & Q( b6 X2 l, Z! }/ Z, w
  11. *         TO CHANGE.
    6 A" ~5 A% @; t9 m
  12. */ e" T7 a+ Y! G- U3 V  x0 |
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/5 z5 X; B/ |/ T0 `
  14. *3 D' I2 Z* G9 R" p$ i2 [$ ^; ?9 ]
  15. * This program is free software; you can redistribute it and/or2 j: S, v5 n" }& k5 P8 F# D
  16. * modify it under the terms of the GNU General Public License as+ U, C) p4 m! ]* k5 _7 q/ n
  17. * published by the Free Software Foundation version 2.$ i* _8 [) `& c
  18. *
    0 y6 d3 R, ]3 m( `: ]
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any8 P3 E+ i8 m. Q' q1 z  U! d( w! o
  20. * kind, whether express or implied; without even the implied warranty
    1 S6 k. m& Y7 d- K) Y! k+ _4 x
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the+ L% ~2 j* q1 g. g* d
  22. * GNU General Public License for more details.5 m. s: ]+ M5 |& t
  23. */
    ( C6 [8 _9 C% g
  24. ) L, I, _5 c3 K' p
  25. #include <linux/module.h>
    2 w0 P" ]" K. S+ ~
  26. #include <linux/init.h>6 A- M1 u; c6 i$ L. \9 @7 E4 ?
  27. #include <linux/errno.h>) x3 t; w( Y  g- y; n. E% e7 |
  28. #include <linux/types.h>0 S; I: n$ k, @$ K
  29. #include <linux/interrupt.h>
    3 Y- e7 m; H: D" e  N, o
  30. #include <asm/io.h>3 W1 }. P8 h9 d, b
  31. #include <linux/moduleparam.h>
    4 v8 }- G& B1 `  ~; C
  32. #include <linux/sysctl.h>  n" q6 U% N- u( B$ |
  33. #include <linux/mm.h>/ B1 E& ^) T" p# [/ ]; s( T' w7 b; \
  34. #include <linux/dma-mapping.h>
    ( q* t; m% n. v" m) `) B. `8 r
  35. ( y3 f: q4 k5 m5 w
  36. #include <mach/memory.h>6 q6 w& Z7 d% u# w0 n
  37. #include <mach/hardware.h>, H7 m  O* a& h+ u, H& d
  38. #include <mach/irqs.h>
    8 f+ e& {! O7 t8 z* s" V
  39. #include <asm/hardware/edma.h>
    $ b8 O. A$ \% H- r% i9 \

  40. . k  x3 S3 Q8 F0 l
  41. #undef EDMA3_DEBUG
    * t0 ~. i' M2 p
  42. /*#define EDMA3_DEBUG*/- @7 W" C9 i3 C& r# ~8 u
  43. 6 u4 c" ?2 A  R3 x
  44. #ifdef EDMA3_DEBUG
    " D1 ?' f4 l/ P2 W5 }
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    7 ^( h# z3 _; H* c, O3 [8 O+ J
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__): A+ H9 R6 f+ ]
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    5 M9 S3 J! l. W8 |, \+ l% Y3 {
  48. #else
    " z2 z- \7 i4 I% X  J2 W
  49. #define DMA_PRINTK( x... )0 v- k9 H: P1 K7 c
  50. #define DMA_FN_IN
    # q9 B/ n$ {' Q: R5 l
  51. #define DMA_FN_OUT$ A) G% z5 t# F& K/ k  p
  52. #endif
    5 z! V4 X9 m+ R  m! K5 C: n4 Z- c

  53. ( y& F: V4 ^7 s2 ?% Q
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)+ M* U. j% d% F; ^6 i
  55. #define STATIC_SHIFT                3* f4 t3 l  r+ h3 T8 ~4 @9 ]7 g+ R( {! }
  56. #define TCINTEN_SHIFT               20+ z3 E# E( U: b. R% K( B
  57. #define ITCINTEN_SHIFT              21+ }5 P$ D1 R  Z  |' m# Z
  58. #define TCCHEN_SHIFT                22( c" X1 n" O! \* x0 e
  59. #define ITCCHEN_SHIFT               23
    * X0 F  \6 q( t) V! U$ q

  60. / ], {! i, r8 R+ Y5 }7 b$ r
  61. static volatile int irqraised1 = 0;, U0 D3 ]7 w4 }$ u2 I5 i0 g
  62. static volatile int irqraised2 = 0;
    7 p  Y2 V  l0 y/ }: Z( ~& A" E0 l

  63. : p) ?) Q# `% c) v8 y9 H2 T
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    : t* F' |: O/ h+ F. \: m, I
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ' C2 [) ?5 ^+ c# B
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ; e' l" G* K( S5 s$ U6 A* ^
  67. : Z3 k, r# m! _1 Z8 J
  68. dma_addr_t dmaphyssrc1 = 0;
    . S$ e5 s+ N5 X# r$ [
  69. dma_addr_t dmaphyssrc2 = 0;
    : X: i/ j! K4 H2 P5 u
  70. dma_addr_t dmaphysdest1 = 0;
    9 r0 [7 S" H6 @6 {
  71. dma_addr_t dmaphysdest2 = 0;
    ( R+ l0 j$ j  J) ?( K
  72. ) H9 p8 i0 N4 V! _: N  r- ]
  73. char *dmabufsrc1 = NULL;
    ) p- b/ s7 o/ @
  74. char *dmabufsrc2 = NULL;; `  X4 e- Q. e$ I/ i% A
  75. char *dmabufdest1 = NULL;7 R2 _' a; v5 T* d) P# u$ w3 F. N- O
  76. char *dmabufdest2 = NULL;9 a3 w/ H+ W5 M: r- K5 w, ?' h

  77. 7 |2 S" }( Z9 t* r
  78. static int acnt = 512;
    ; S0 ]) P( J- K4 [; R! B9 O
  79. static int bcnt = 8;
    + S# ]0 ?, ]2 m/ j4 M' ~9 a2 J
  80. static int ccnt = 8;+ A2 |9 q7 h1 u5 X
  81. : _* r; S3 m2 O: l  ~0 {
  82. module_param(acnt, int, S_IRUGO);7 J4 C* ?, O' q
  83. module_param(bcnt, int, S_IRUGO);+ s+ |5 T3 K8 y- |* i
  84. module_param(ccnt, int, S_IRUGO);
复制代码

# r" M& y" l9 \  H9 ]0 E5 J! x! V2 {$ ]5 i0 X+ e: O( j8 @3 u, t) s
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用! D1 ~) p# V1 K7 C& y
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& ]7 v- p6 T0 X
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
! p$ X2 ?3 m- ]. s& P
/ I# E3 S7 q5 I) F- I( |4 u
6 J# q5 j" n% ^( G  a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-11-3 11:18 , Processed in 0.041874 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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