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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 + R; p; I' D: q( M+ W* T: w& o
  1. [code]EDMA sample test application' d3 v8 J3 K3 g1 V2 N  k8 L
  2. /*$ H" e) O7 ^* _2 f
  3. * edma_test.c" S+ k4 r. N- ?2 b) k7 R
  4. *
    & L, I% @2 B+ X+ ^3 }- R
  5. * brief  EDMA3 Test Application- N+ z# z3 }) N; w( E" e' \
  6. *& c2 ]# U5 k7 W+ X* x$ E7 g
  7. *   This file contains EDMA3 Test code.. u  W2 o" @* d1 N* b
  8. ** A. B6 V% ~0 X
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    / [0 |! M0 d( o" t7 P
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    $ b4 v; m+ D# H9 O
  11. *         TO CHANGE.
    - _) V# o" M# `/ `  C/ l
  12. *% f. G4 A# Z( l% h( A* r7 @! t. V
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    " k$ D. i" o) C; M
  14. *
    % r' C6 `0 e  O9 H5 n/ J8 [0 F& j" l
  15. * This program is free software; you can redistribute it and/or
    % v/ R4 x" N! k0 z/ z+ u2 k; o! _
  16. * modify it under the terms of the GNU General Public License as9 D4 [: D" x5 C* h  S1 p. [5 c- }
  17. * published by the Free Software Foundation version 2.% j8 Q8 p5 h4 G2 N( H: C& [
  18. *, E2 I% D/ o; l$ D" h
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any' y9 K3 p' M, H& r2 Q2 t
  20. * kind, whether express or implied; without even the implied warranty4 z/ Q0 d8 W8 v6 F( b# k* A
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the7 ]* ?: E# K0 W; t' [4 m
  22. * GNU General Public License for more details.
    3 y$ X5 W  S- |* M- n/ \' B; J
  23. */% ?! S( N# A$ W
  24. $ s* f) ^( d+ S5 ]' l; n' p2 H' `
  25. #include <linux/module.h>: I  P: _% D! A2 H9 |* G
  26. #include <linux/init.h>
    2 u4 L1 l9 }) H& d1 v
  27. #include <linux/errno.h>
    5 Q( r7 v9 p5 M% ]; u: v# ]9 L
  28. #include <linux/types.h>$ @+ G. c+ t/ d  }( y" b
  29. #include <linux/interrupt.h>0 P/ K. o9 z  L) D; V
  30. #include <asm/io.h>+ B: d9 {, T& o# q2 s
  31. #include <linux/moduleparam.h># a* b% U9 \- L0 D
  32. #include <linux/sysctl.h>
    + g& s# }( ~# B0 W
  33. #include <linux/mm.h>
    " {6 T& A$ Q' s" R, L
  34. #include <linux/dma-mapping.h>) w. g9 x! A% d& a

  35. + Y4 C9 d# T+ ]" ?3 V0 a
  36. #include <mach/memory.h>& p$ `0 q0 Z+ m/ R! H& F
  37. #include <mach/hardware.h>
    2 a: |! J) R7 H; C6 @
  38. #include <mach/irqs.h>
    3 w5 w& n2 m# U& z5 O1 \9 L( X
  39. #include <asm/hardware/edma.h>
    ) v& h4 D' Z: n8 W- g% z

  40.   Y0 W& N7 O4 _7 o# z
  41. #undef EDMA3_DEBUG
    ; u- ?8 ?; U) c" ?5 u& J, H1 O" T3 t
  42. /*#define EDMA3_DEBUG*/+ B, n4 n! K* H4 \1 r0 L2 [

  43. & G% y1 f  [" I" u  f
  44. #ifdef EDMA3_DEBUG2 _2 v2 M; F- t: L7 M; D
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    % m, h2 p( f% f" ?9 u
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__); R4 j6 e- ^1 T+ T) V
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    ! F) [$ T2 n$ l1 m+ r" Y0 y( N
  48. #else
    / o. G! c: d/ ?; ?- x
  49. #define DMA_PRINTK( x... )8 G. e" l" Q: Z. C5 u; s' q
  50. #define DMA_FN_IN  [0 c6 c9 m3 G( t* M5 R/ T
  51. #define DMA_FN_OUT6 e" s& y+ k% l/ U7 d
  52. #endif: s7 s7 O( p$ [8 L
  53. 7 [7 F/ l6 ~( f6 I$ g& j
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)& N, M7 m0 O% r) D& ~& W
  55. #define STATIC_SHIFT                3
    ; o: e* N. O' V- G9 o9 Z" L
  56. #define TCINTEN_SHIFT               200 b& Z$ s, D5 G
  57. #define ITCINTEN_SHIFT              21
    ( \6 U( ?6 a7 n' ^4 B2 t
  58. #define TCCHEN_SHIFT                22
    2 V6 l! c% p% T& W$ S
  59. #define ITCCHEN_SHIFT               23+ Z: U( R- o9 ]! ^+ r; ~' I% [

  60. 7 ]9 c/ q$ R  k: a
  61. static volatile int irqraised1 = 0;
    " G1 Q: D7 z+ ~% Y
  62. static volatile int irqraised2 = 0;7 p& }1 z  }( P6 I+ d. }9 o

  63. 1 f6 A  ~3 R& j( v5 a
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    : y! m; D4 @! F) Q4 D% D2 L
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);$ |. U0 B+ C  s2 k4 k9 G# ~
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    / \4 r- D' T% t; l" J) O3 j

  67. 1 Y* a0 f  U) o) E8 [6 o
  68. dma_addr_t dmaphyssrc1 = 0;, p2 j- f( F4 W+ B
  69. dma_addr_t dmaphyssrc2 = 0;$ M2 L+ G- I( w% ]. z
  70. dma_addr_t dmaphysdest1 = 0;  J' z: V; j8 n/ x, _* c1 f
  71. dma_addr_t dmaphysdest2 = 0;
    , I# L+ b( O  \6 J' o) v

  72. 4 J4 B+ D! J. |& ^
  73. char *dmabufsrc1 = NULL;; y: B6 A" P" d; e$ i
  74. char *dmabufsrc2 = NULL;
    7 ?/ V6 _% G$ A! w# z0 {
  75. char *dmabufdest1 = NULL;
    ) s" N; o5 C% E9 _* P2 y' k
  76. char *dmabufdest2 = NULL;
    9 H: Q  m' @: u& }6 q! P
  77. 1 l  W3 p7 N2 q
  78. static int acnt = 512;
    ' }# t# {, i# j# n$ [) [7 R
  79. static int bcnt = 8;# K7 j2 O3 h; d$ t& h5 s: D
  80. static int ccnt = 8;  j/ ~9 ^8 j0 A% ^" y" P  q
  81. / `; x; ^5 E  K$ G( t
  82. module_param(acnt, int, S_IRUGO);
    . F! b& ?3 B% J& w5 ^" e( v
  83. module_param(bcnt, int, S_IRUGO);5 D+ u8 _9 \! r/ [2 I" N! F
  84. module_param(ccnt, int, S_IRUGO);
复制代码

2 J5 o; M0 a/ u4 _& i" N" R2 J
" c. u. H( @- n- k( t      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
3 M2 I# q, _- A2 y: yarm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。/ A) G# M' G* n* l; v% _2 ^/ q( X
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
( k' W  {0 K7 A
2 V) r' }% S$ ?; b6 l$ R5 r; u6 {9 t/ o" o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-7-5 17:47 , Processed in 0.039933 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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