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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 - {9 S* s( ?0 l3 R, b& B% q
  1. [code]EDMA sample test application# S4 f/ E0 n6 W8 ^
  2. /*( A6 I. F/ h1 j6 d
  3. * edma_test.c
    8 ?, N# J3 c: f8 b- H1 P
  4. */ [9 m) z! c& v
  5. * brief  EDMA3 Test Application
    5 R; t/ |% ~5 ]* N; T: k
  6. *7 z6 d6 M! S2 `; q" Q7 \' o
  7. *   This file contains EDMA3 Test code.
    * W6 S" N' H1 w. D. M
  8. *, d( u9 z, D6 s* }4 t
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE5 y, [  ^% G# S( {% m
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    & ^7 |: y& H3 _1 C' s  }* q
  11. *         TO CHANGE.. `+ C. s0 s$ d, X. o  M& A- c
  12. *: Q3 d6 m% b+ r1 ^
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    ; y% U9 ]* ?2 G  m7 O- G
  14. *
    0 c3 \6 K5 G+ N- P8 H3 q
  15. * This program is free software; you can redistribute it and/or, `0 _( S& b# I: `' M; F  W
  16. * modify it under the terms of the GNU General Public License as
    / C, K2 q  }4 d2 i' O
  17. * published by the Free Software Foundation version 2.2 J4 s% c+ b1 ]- D* ]' a
  18. *
    6 {5 c$ q0 n8 e+ P  _' ~+ d
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any8 ?7 e  B: R2 z' K
  20. * kind, whether express or implied; without even the implied warranty( c9 X( p0 O7 m% Q1 i, Q4 V5 l
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    . l$ Y( y" h0 O; J8 E
  22. * GNU General Public License for more details.5 [. P) f: V3 P7 i. F( O) K
  23. */; C4 Z/ t. H/ O; F5 U  p/ x) A' t
  24. ! R$ v. ]" t7 [
  25. #include <linux/module.h>! J& p* A/ E" G* t, ]
  26. #include <linux/init.h>
    5 s) C, }4 J$ B$ [9 _# D
  27. #include <linux/errno.h>
    8 {4 W) g9 q8 {' C# N1 d6 _7 q
  28. #include <linux/types.h>
    ( E  p& M  C( R, P* ~4 e
  29. #include <linux/interrupt.h>1 R. z( _" ?# Q1 U  e% _. m
  30. #include <asm/io.h>& {6 C( [* F3 g8 D' n8 J
  31. #include <linux/moduleparam.h>5 k! t. y7 k& q( _
  32. #include <linux/sysctl.h>" ~! n! u5 J5 t4 u. k5 S
  33. #include <linux/mm.h>  Y; M  C; Z  D4 ~9 m
  34. #include <linux/dma-mapping.h>5 k2 [' v3 _8 [3 e
  35. & y$ e& v* A+ x& }& D9 H  w
  36. #include <mach/memory.h>! C  B/ W7 f$ R" a
  37. #include <mach/hardware.h>
    " A5 Q* z* G) D( t6 j+ ^
  38. #include <mach/irqs.h>
    2 N/ e2 ^  G1 R
  39. #include <asm/hardware/edma.h>
    9 W  V0 B  k- l* v5 q4 i  ?

  40. " t+ o) {8 @; A
  41. #undef EDMA3_DEBUG. K. r5 z: E3 b
  42. /*#define EDMA3_DEBUG*/' Z/ e; f: f: n, h
  43. # i' G' D$ o$ \1 T9 C8 B
  44. #ifdef EDMA3_DEBUG
    4 F/ |0 N1 l" ~' L1 K+ o' _
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    # U" H$ n6 t' t, a( V
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    ( `+ A% [+ {: j7 W
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    % ?0 U: N7 j: n; R% b! a
  48. #else# m5 L. ~$ k0 X/ M( t4 Y
  49. #define DMA_PRINTK( x... )# P  r* x+ J! |5 c- o
  50. #define DMA_FN_IN
    8 x/ E; v, D, r4 {3 o; E
  51. #define DMA_FN_OUT
    8 J) y2 _5 U1 S! U" ~# X' C2 Z
  52. #endif
      y* E& T, [1 b

  53. & _. Z, X3 u! q+ p+ z/ A+ |# k
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)+ u& z2 i8 K" E
  55. #define STATIC_SHIFT                3: e/ D% A8 J6 U" I7 q
  56. #define TCINTEN_SHIFT               20
    / v7 m( V9 O2 A/ z$ p
  57. #define ITCINTEN_SHIFT              212 \: z9 ^1 Z( A- w; M
  58. #define TCCHEN_SHIFT                22, O/ E4 s3 _! Q/ u
  59. #define ITCCHEN_SHIFT               23& J- e. T; z0 D7 ~8 }3 V/ I

  60. 5 z+ {) J& O0 z1 }, ]
  61. static volatile int irqraised1 = 0;( I. M. K* O) o6 Y1 J/ {3 ?! q: B
  62. static volatile int irqraised2 = 0;8 q2 d; W8 F9 U+ w& S$ l( s

  63. $ [; c6 O7 l  ]# X8 p8 s
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);3 s: B+ J9 ^& L% T5 y; [' p( W6 m! N
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);) v! Z4 v4 I$ V6 i' I6 P
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    2 I" V; J$ ~5 L# c$ b. O, d

  67. $ U8 |9 G7 \% g% X. D7 h( k
  68. dma_addr_t dmaphyssrc1 = 0;
      T. r( F- G! q5 Z0 c& z/ c
  69. dma_addr_t dmaphyssrc2 = 0;# t( J8 ?+ a, M* V; g
  70. dma_addr_t dmaphysdest1 = 0;$ ?$ M2 p  d7 d/ U) u6 u
  71. dma_addr_t dmaphysdest2 = 0;" f0 F& G+ m; Z1 Y; t
  72. : _, O3 U( `" z% b% a5 B
  73. char *dmabufsrc1 = NULL;
      @% a  l) z6 f1 y
  74. char *dmabufsrc2 = NULL;- A; @$ o) I% T2 D, E8 t( Q
  75. char *dmabufdest1 = NULL;2 i; P7 l% q; f0 O: ?& k
  76. char *dmabufdest2 = NULL;  u0 ~* p8 V0 Y  S! S
  77. # ]/ r" |, d' V7 ?# V6 U
  78. static int acnt = 512;
    1 J( [! M1 |5 q5 j) \/ {" t: h
  79. static int bcnt = 8;
    4 ~; a0 x3 J* j( A. v# A
  80. static int ccnt = 8;+ B, a) Z* l6 o0 ~
  81. - a5 G: T; u5 h1 T
  82. module_param(acnt, int, S_IRUGO);
    6 n! |. z5 a3 T4 m) D
  83. module_param(bcnt, int, S_IRUGO);* p, y1 q- ?' [! Q3 k) Q1 P
  84. module_param(ccnt, int, S_IRUGO);
复制代码
2 }) `8 h; |7 D: ]4 W% V9 g

: L3 @2 L/ n: n: Y      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用! f/ a  k5 v- G4 [2 n: l
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
! r  f# s+ H: |! s' Z; x& a     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。* A" @' H5 O. n3 m+ c

5 ?$ I5 u' g; T3 Q. e4 A" z, ^$ k+ o, T: Z% h
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-29 05:07 , Processed in 0.043592 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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