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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 ' H! n7 g& d2 `' Y# m* i# R
  1. [code]EDMA sample test application/ A* m1 E3 l2 j2 ?4 P
  2. /*0 @# S" C; ^3 r# d5 n
  3. * edma_test.c
    % P( `- ]/ L9 ]
  4. *# w. f2 M5 h7 C
  5. * brief  EDMA3 Test Application
    8 b* J  m, ^* d/ A
  6. *
    2 p+ j/ M& `: {6 }; C# ^
  7. *   This file contains EDMA3 Test code.
    & F" R6 D. {0 \1 U7 w( G
  8. *5 F' M: i! v% X
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE3 K1 z2 P' c+ V. y( `
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT$ q% h4 ~5 w# b7 x
  11. *         TO CHANGE.0 \8 K/ k- X7 m& }
  12. *
    % S9 R" z) k( m: {7 l0 j
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    , J7 t6 A# M3 X7 i  Q3 Z/ b
  14. *0 V* p$ y( G2 e  Y
  15. * This program is free software; you can redistribute it and/or/ I' P% O/ ~9 b  W+ o3 l* y
  16. * modify it under the terms of the GNU General Public License as
    : h% H+ j7 X' t2 L& T* W
  17. * published by the Free Software Foundation version 2.; `( X$ h5 H" N5 q1 ~! x9 b
  18. *
    7 W* @- Y: f6 d% R/ l+ J2 x* J
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    0 D5 w- B0 m7 m3 I
  20. * kind, whether express or implied; without even the implied warranty
    & e' d4 o: d+ _2 G; d
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the. k: _6 f$ T9 l$ V& {+ N1 c4 t( ]
  22. * GNU General Public License for more details.% U% R- x. P1 c$ }0 _; `
  23. */
    - a  f. B- n" H! b

  24. 7 l+ M) [. g6 _, J4 p# u
  25. #include <linux/module.h>( Y+ ]$ e' h5 e. ~9 h
  26. #include <linux/init.h>
    ; L; M* s# v1 N$ r! s# u
  27. #include <linux/errno.h>
    % K% i7 u$ r) O+ W5 L8 W$ _( N7 n
  28. #include <linux/types.h>) j! ]( J0 X. a1 j  j4 `
  29. #include <linux/interrupt.h>$ H4 y5 e3 A& u, `# ]5 F
  30. #include <asm/io.h>
    1 c: W4 [4 ?9 b( p; k
  31. #include <linux/moduleparam.h>
    : i5 I: d8 U( F$ K2 g+ Q+ z6 k
  32. #include <linux/sysctl.h>
    7 H1 ~3 x) q+ Q7 S6 A
  33. #include <linux/mm.h>
    # E* J) S  J8 s$ e
  34. #include <linux/dma-mapping.h>- z4 W! a6 h' u6 a

  35. 3 V* L' t4 R* I% [/ C: n
  36. #include <mach/memory.h>
    # U. V. x% T0 ^, e. f
  37. #include <mach/hardware.h>
    6 r" E8 `% b2 p: \2 w* G* x6 J: D
  38. #include <mach/irqs.h>
    : }& a+ p* O: C
  39. #include <asm/hardware/edma.h>
    6 D; D0 Q3 Q+ `- N+ h2 a" r

  40. ( ~! e( d+ b- h4 J+ c
  41. #undef EDMA3_DEBUG: R. C8 E4 h: D( L! |! Q& u
  42. /*#define EDMA3_DEBUG*/
    8 C6 T4 M" u1 p
  43. / s- K. `  f1 V3 d* c, m
  44. #ifdef EDMA3_DEBUG% m2 P, `/ a+ I' @0 C- }
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    ' v. B( |# n5 B; [. @6 N% H
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    8 R2 M; |% M+ m4 [
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    , P, N% k6 j' _
  48. #else- h, W) d' @+ g
  49. #define DMA_PRINTK( x... )
    $ a0 `( L# y5 P) q0 B
  50. #define DMA_FN_IN, R5 C1 ^) X' `, ?
  51. #define DMA_FN_OUT7 G7 j, P; o/ u! |) t
  52. #endif
    6 h+ e2 h& W4 m
  53. ( X$ {" O8 |8 @: ]' F- m
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    " Y& a9 @* s9 N, Z4 ^
  55. #define STATIC_SHIFT                3
    # u9 O% ~- M/ T: B1 s+ c9 [6 M
  56. #define TCINTEN_SHIFT               20% I* X( z: Q9 T) H
  57. #define ITCINTEN_SHIFT              21
    ( h" `9 m* y0 a  q
  58. #define TCCHEN_SHIFT                22
    * ^& X. x. Z& H2 q
  59. #define ITCCHEN_SHIFT               23
    8 P- f7 j- r! Y) D  L

  60. + \2 p& q+ \% {0 h& F" {0 Q; B9 w
  61. static volatile int irqraised1 = 0;* n& G% h9 O( @# S
  62. static volatile int irqraised2 = 0;9 p5 A- V5 [+ X3 w
  63. 6 {  E% Z/ a+ x# Z; `8 T. ]: |
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    * f: V. X3 I9 X+ \6 p! L: t
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);; Y4 d( x: E; z
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    * A( g/ q) h8 x( ~3 d) M5 P0 S

  67. & N. Q# V* m" ?0 l3 x2 U
  68. dma_addr_t dmaphyssrc1 = 0;
    " l1 B; b) e' H* J6 @' i, O
  69. dma_addr_t dmaphyssrc2 = 0;9 d6 `+ T4 B# D& y2 E/ J
  70. dma_addr_t dmaphysdest1 = 0;0 Q, i% p* p/ k- y1 }1 c: R6 j
  71. dma_addr_t dmaphysdest2 = 0;
    4 |; Q+ d- `+ a( U+ E' p7 ?0 R
  72. % _7 S: j- q% J5 K& a: R. |: i
  73. char *dmabufsrc1 = NULL;
    # ]( H2 ?0 O$ D+ o: y+ W& l4 g
  74. char *dmabufsrc2 = NULL;* R! v3 N2 r# w' A, c
  75. char *dmabufdest1 = NULL;
    : J8 \/ h, z# N3 `2 j/ w# Y% ~; P
  76. char *dmabufdest2 = NULL;
    " o* e( R3 Y$ ^4 W$ V

  77. 4 l+ F+ K3 D8 r
  78. static int acnt = 512;: L2 M6 Z$ z0 Q& f( g
  79. static int bcnt = 8;
    4 r# F$ Y5 W( R, Y7 T% |( z4 Y
  80. static int ccnt = 8;  v4 d  x# _* z- x* u1 ?

  81. * A4 O9 {+ ]0 @& ~% P8 _
  82. module_param(acnt, int, S_IRUGO);8 k0 A7 z9 e; n0 J+ `5 L' s( Q2 I, }
  83. module_param(bcnt, int, S_IRUGO);3 B+ [' z5 n$ d& ^
  84. module_param(ccnt, int, S_IRUGO);
复制代码
, s0 ~2 R. ?8 l, Z  W& V

: @& `: m" i0 V3 J; L0 ?      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用) O+ ], t0 O2 E; H5 r, q
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。: {9 C& ~6 c6 L$ h3 b0 Q
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
5 k) H  _7 |$ o+ D2 i4 ?: [+ \7 @6 R6 `
% ?6 k8 P+ l% M! ]1 E
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-21 17:13 , Processed in 0.040790 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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