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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
6 C7 y0 k/ d( P5 h
  1. [code]EDMA sample test application: w- v9 ]- q$ i0 D" y
  2. /*
    & `7 ]1 `& Z# j, ?' F% j
  3. * edma_test.c
    9 K* S/ \& w4 e0 G/ s/ u& ^
  4. *2 y- I+ f( r  C8 i& ~0 O
  5. * brief  EDMA3 Test Application2 ^) x, d- D" e6 y
  6. *
    " D; m. V0 }- x/ n
  7. *   This file contains EDMA3 Test code.' d' z8 o! K, V+ K# p0 X1 t/ U
  8. *3 z7 d7 B& E; C# [+ z. n9 U1 n
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE* b& s0 l4 S" J' t+ B
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    5 p4 Q5 c/ w  s' _; T' v9 d
  11. *         TO CHANGE.+ S. X* b8 {( Y" U% `( U  z
  12. *) [6 v# t7 d+ f* C0 i5 g4 K
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    ' K" P4 p# J  Z# Q9 n- a3 z) h1 ]2 ?
  14. *
    & @  P5 V3 m/ b# y! U- L+ \& i, A
  15. * This program is free software; you can redistribute it and/or
    ( d+ @- W( h- M2 H" _
  16. * modify it under the terms of the GNU General Public License as
    % k7 i% }- j6 ?! x  i0 `6 W
  17. * published by the Free Software Foundation version 2.
    , h  m+ l( ^% q
  18. *
    & F8 z* |' a, g! y) a
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    ) Z3 g& o0 k, H: R" T5 n
  20. * kind, whether express or implied; without even the implied warranty
    ) @+ G1 ^, U9 i0 Z
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the% X+ [2 ?; h. _/ g! e; v
  22. * GNU General Public License for more details.
    4 c- S+ T& v' w3 U
  23. */  h% n" f1 x5 h7 }9 `3 V& F

  24. 2 I9 W0 k2 M& B) e! N# d: R* C
  25. #include <linux/module.h>
    3 \) Z' G% N  z, k* v
  26. #include <linux/init.h>
    ! H/ w; J7 Q0 h7 p5 v! g4 A
  27. #include <linux/errno.h>
    8 |. R3 v7 @+ ]5 D& [
  28. #include <linux/types.h>
    1 c, {" X: R; B' g' h
  29. #include <linux/interrupt.h>
    & [4 d- [2 P1 j# }! m  ^8 P
  30. #include <asm/io.h>( W* d: B0 `5 \. _
  31. #include <linux/moduleparam.h>8 I# h8 x: L5 K
  32. #include <linux/sysctl.h>) Q) k7 _$ S" G: h: ?, m
  33. #include <linux/mm.h>
    5 ^$ b# R' U1 {
  34. #include <linux/dma-mapping.h>
    1 Y3 ~  P6 }+ [" s/ _

  35. ; P" `7 {! Q- `
  36. #include <mach/memory.h>
    " A# t$ }4 x- e! i% H
  37. #include <mach/hardware.h>( u8 u$ d& i* a: I  n, H
  38. #include <mach/irqs.h>- n6 b# X7 O% l5 e9 f% p3 c
  39. #include <asm/hardware/edma.h>
    8 N3 b% ^# U+ ]7 B3 I
  40. , G, `' u9 A  g. _! j8 j
  41. #undef EDMA3_DEBUG
    " @, O0 u; J6 L
  42. /*#define EDMA3_DEBUG*/
    6 z, ]8 Z7 N* o( R; H

  43. 9 l* U9 C6 o5 i
  44. #ifdef EDMA3_DEBUG7 S; @) R! k# p" w! ?% Y; x
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)9 U: g% R5 j! C! `
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    & Z1 Q: h: s  j  M. o" t
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    9 G. W2 D& g0 Z* T6 q. v) l8 y7 C
  48. #else
    # {2 h; |) B& j7 N+ `7 J
  49. #define DMA_PRINTK( x... )% s) W  u7 b1 g2 @( D/ ]$ Q
  50. #define DMA_FN_IN7 S/ k5 r7 j; e9 v* I
  51. #define DMA_FN_OUT; u' V$ y; o' c4 x# h$ u/ ^0 T/ `: C
  52. #endif! i& F/ L! s( z) n1 ^
  53. # N. z# R) n# B9 g0 v( X# V
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)2 k: W# o+ o- x9 u# b- j
  55. #define STATIC_SHIFT                3" \0 x/ Q+ c* l. p
  56. #define TCINTEN_SHIFT               209 x6 g- y: L9 [8 O0 [. `. Z. J2 a$ L
  57. #define ITCINTEN_SHIFT              21, @, k. H1 p! H' B& `+ p( d
  58. #define TCCHEN_SHIFT                22
    3 D: t9 @, M2 q: x; f' P
  59. #define ITCCHEN_SHIFT               23
    " c# ~" j) ]$ s# n9 d5 d7 C+ t

  60. 2 \7 r) y& [. ]7 p; C
  61. static volatile int irqraised1 = 0;
    9 j4 O1 q5 [( d3 {( A. Y7 m
  62. static volatile int irqraised2 = 0;
    1 Q- v4 Y! d" G5 |* r' }
  63. & U/ Q0 A1 R6 i7 ^
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    # S; X' s3 S; T0 M
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ! ?$ ]. ?+ w" C" H* R: B7 D# E  U
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);1 a' K! {9 K8 G0 G- H2 J4 ^
  67. ( B8 z3 |  h" r+ ?0 g  Y0 H
  68. dma_addr_t dmaphyssrc1 = 0;, \1 o+ S; H. A( N3 ]/ z
  69. dma_addr_t dmaphyssrc2 = 0;
    " j! E( E& \. X( j
  70. dma_addr_t dmaphysdest1 = 0;* s* w2 P1 n& c/ H% y  S
  71. dma_addr_t dmaphysdest2 = 0;
    0 ]" C$ @8 T: g  |

  72. & d  J* _( P9 |% D" i5 X" S
  73. char *dmabufsrc1 = NULL;( U/ F- E' x8 y$ z
  74. char *dmabufsrc2 = NULL;# d7 T. x6 k5 m( h
  75. char *dmabufdest1 = NULL;
    & B2 \0 |& S) V2 _# u. k6 F' Q9 |
  76. char *dmabufdest2 = NULL;
    $ ]4 Y9 l- e% D- ^6 z

  77. $ G* i* G' z) S( a0 \6 d
  78. static int acnt = 512;! T7 l% a7 W- _5 l# x. [( }
  79. static int bcnt = 8;
    % \  b7 q" z3 E9 e9 Q
  80. static int ccnt = 8;
      }# ^" n: U1 H! L' `  n
  81. + W/ r) h$ L! `) \
  82. module_param(acnt, int, S_IRUGO);
      t( q; T+ h: n7 x- D
  83. module_param(bcnt, int, S_IRUGO);8 [' ]' N: y  i5 g
  84. module_param(ccnt, int, S_IRUGO);
复制代码
, p6 h+ r/ r3 B% T( ]4 d1 `
+ D9 X; D+ S6 J2 y+ C3 K8 ^
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用7 X: C3 F3 f# S9 g
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。- k  J) `0 |" i1 ~1 ]. W- s
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
4 K! y2 h* J$ R2 a- A$ U% w4 u2 A7 c$ Y% U. t+ j  D
$ X0 |& a8 l& c/ V* u+ ?- o+ y: o1 Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-25 23:56 , Processed in 0.049153 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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