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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
+ q' Z8 m1 o( Q% s
  1. [code]EDMA sample test application
    1 h6 s; i1 F" Z/ y! C
  2. /*
    * p7 |% f% f! z8 T
  3. * edma_test.c
    ) W2 Q5 b, o" G2 c* K! i7 k
  4. *& {5 i2 P1 W+ K5 ^5 S( y
  5. * brief  EDMA3 Test Application
    4 |9 U% L& N' g$ |, {3 T' d
  6. *
    9 N: t$ N% v/ \. Q; E# X
  7. *   This file contains EDMA3 Test code.
    3 T/ b& @9 f7 f: D& F1 ~: Q
  8. *
    : n9 R$ ?9 M2 Q' v, v% k4 O
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    # v% N: T3 z* c) N4 W
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    * p+ e' \6 D. Z9 c, e
  11. *         TO CHANGE.
    $ e7 I% e  \& `% N
  12. *0 Y9 E# Z8 `! V! j& v3 d5 a, E
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    : v+ x2 T4 w. l# S) E
  14. *
    . a" I" E  y) l) L+ [# G9 f7 `
  15. * This program is free software; you can redistribute it and/or
    , w4 b9 o+ V5 G" y+ J% O. Z
  16. * modify it under the terms of the GNU General Public License as
    ! u7 |6 c" ^$ y; E( r2 I( m$ ]+ h
  17. * published by the Free Software Foundation version 2.$ w0 {. C+ V+ o2 X- c
  18. *' x; ]/ U' I; |
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    & ?+ X' _. V- |. b0 m* D; W
  20. * kind, whether express or implied; without even the implied warranty
    8 H  ~% {) Y9 Y5 {
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    9 W1 v+ [3 Q: v. p
  22. * GNU General Public License for more details.
    3 x5 w1 j. y1 w2 D; r+ k
  23. */5 a! k# M, I3 C- t+ k* d$ ?2 f

  24. * o  D" Q7 B6 L9 W6 ^* J( ^) e
  25. #include <linux/module.h>: c6 u1 d1 _5 Q! g; i6 {
  26. #include <linux/init.h>
    + o/ `- S9 `6 P" {7 r
  27. #include <linux/errno.h>
    9 O; S/ O! a5 [# ]. U. P5 z9 m  z
  28. #include <linux/types.h>
    ; V) U' e% n' J( o% S# f6 A
  29. #include <linux/interrupt.h>
    % U/ X1 M0 ^; z2 I4 m
  30. #include <asm/io.h>
    ' E3 t: c3 e1 O( @
  31. #include <linux/moduleparam.h>, z+ M+ j& r+ d. ]% ^+ D0 B
  32. #include <linux/sysctl.h>% E; q  \( b; M: f& _" T8 H/ d
  33. #include <linux/mm.h>
    0 O2 }1 o5 r' L
  34. #include <linux/dma-mapping.h>
    " S+ m" N/ j- {. I) ~, J, A
  35. 6 T$ U5 Z" z( F
  36. #include <mach/memory.h>( C! X% p' H0 u! m. F8 O/ C) H
  37. #include <mach/hardware.h>
    1 D* x2 k$ i. Z1 Q2 p
  38. #include <mach/irqs.h>  |8 t7 q( H3 @
  39. #include <asm/hardware/edma.h>
    ' u# Q$ J+ n7 F/ P; e7 I+ q0 z
  40. - u8 y* O. Q/ ?$ {8 J1 x
  41. #undef EDMA3_DEBUG
    0 F2 A$ d- g2 i6 k+ ~
  42. /*#define EDMA3_DEBUG*/* J# y9 M( K; ^8 h9 `4 `9 E0 k
  43. , c* n# ?( x$ c1 Z$ s  K
  44. #ifdef EDMA3_DEBUG/ d/ f+ q; j4 Q9 X0 z0 N
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)/ n  @9 {6 B( t: t8 M2 L
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    # J; z( ^. y5 {! O3 y  x7 T
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    . Y  @1 D$ Z! e! G7 V
  48. #else
    # _7 @* q1 D4 W: n
  49. #define DMA_PRINTK( x... )6 A9 G) V7 K  w6 I4 U3 J. l1 U, o* F
  50. #define DMA_FN_IN  w$ O8 P* ]! c6 S3 E! \$ X: G
  51. #define DMA_FN_OUT
    4 A; O  D( o( F& h( n$ O$ z6 o
  52. #endif
    ; c3 e. w" D% t1 O

  53. 8 t# D  m' m# }; O* O# b! x) ^
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    ) J" y" _3 L; P8 ~% M8 p
  55. #define STATIC_SHIFT                37 y: S2 V# s- i% ?
  56. #define TCINTEN_SHIFT               20% |8 T. B& x8 J
  57. #define ITCINTEN_SHIFT              21
    # y8 i4 Y) k+ s8 }
  58. #define TCCHEN_SHIFT                228 W1 D. L# G3 L& M5 c3 P& [
  59. #define ITCCHEN_SHIFT               23+ E3 y. x( K/ [$ q8 j" R7 Q* u# r
  60. ; F! ^+ [) |# p
  61. static volatile int irqraised1 = 0;9 L7 F& D$ H: g$ [1 N$ A. [
  62. static volatile int irqraised2 = 0;7 x7 `) o! O* ]+ L5 d1 O
  63. # `* B0 Z7 C' Q6 S$ O
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);; Q& t7 A7 k* v# Z2 f% m$ S% c
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);$ H* X5 Y$ [% g. j9 q
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);# s# ^7 ?) F2 b8 H, J

  67. 3 {, d- {- [5 o; W
  68. dma_addr_t dmaphyssrc1 = 0;  e! L3 \( ?; U) r  _% }
  69. dma_addr_t dmaphyssrc2 = 0;
    ) Y9 M, g4 E9 F6 ]) A1 w" w; e
  70. dma_addr_t dmaphysdest1 = 0;1 D6 U& q* O" W9 m( R/ v
  71. dma_addr_t dmaphysdest2 = 0;
    # ?, W% _; L/ D* l; o

  72. & y; q0 i2 _& f7 R* Z+ o
  73. char *dmabufsrc1 = NULL;
    ; Y" B  H6 P; \, e; V' M
  74. char *dmabufsrc2 = NULL;
    ; |4 M; ]( T. [3 j& p
  75. char *dmabufdest1 = NULL;
    5 ?7 o2 c2 w) C" [. w
  76. char *dmabufdest2 = NULL;$ \5 L* ?! P5 p5 a' C( Y1 {! m
  77. % X# ~- Y; k2 i
  78. static int acnt = 512;
    $ O' |1 ?( d# m: l$ I
  79. static int bcnt = 8;( L; N$ a! W& F. j2 [2 H2 l% G1 t
  80. static int ccnt = 8;' J; m2 w5 O. @# i  u8 r5 f
  81. 1 `' h; @& D  `" G) h% D8 c2 I
  82. module_param(acnt, int, S_IRUGO);  }. d% B; z' C' Q& X1 \
  83. module_param(bcnt, int, S_IRUGO);1 y7 a1 i* c) k; d. O! G% R! d
  84. module_param(ccnt, int, S_IRUGO);
复制代码

( i( u) D, j. Q2 q* X& u% j, Z3 W+ Y7 u7 e% ^' s7 W
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
" ]) q/ a3 G0 k: w7 barm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。4 `3 S. J7 G4 f6 W, S, ]
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
; n" F. f+ y0 N$ f
1 v( P/ Q$ n' G$ u, e; V3 G
1 U0 O$ o: c; C$ F: F4 U7 A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-11-2 17:50 , Processed in 0.045015 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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