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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
% Y( l6 W6 c1 W* {
  1. [code]EDMA sample test application+ N# x. {  T8 E* z2 Q. J, t
  2. /*
    0 G' B, r8 ?' l7 y) z3 i/ z
  3. * edma_test.c
    ; P! o; P+ u6 H9 K. ]
  4. *
    # j" O) J* q$ N; u7 a1 k1 v( j3 P
  5. * brief  EDMA3 Test Application
    3 s% u! W% e" r
  6. *% n3 q, G  F% T9 p) L: I  r
  7. *   This file contains EDMA3 Test code.3 B0 h( ?9 |/ l! s; ^$ Q2 K
  8. *$ T3 |: U) ~8 R7 I! g
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    9 t( x! F. O5 n" D6 Z6 M
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    * W4 r- S% H) ?# n; X
  11. *         TO CHANGE.( u# t5 I) ^+ z) G% g( A
  12. *+ i  Z$ H7 O* y# l
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/0 L# d$ \- d+ S) C4 b0 z
  14. *
    - s* v1 @! r3 |- }' S3 B
  15. * This program is free software; you can redistribute it and/or; a* d& V8 J" P& _
  16. * modify it under the terms of the GNU General Public License as8 S; Q- @* i% b0 S0 R" q1 y# `
  17. * published by the Free Software Foundation version 2.9 M) ~9 J+ H7 e/ {  Y  L! B, N
  18. *8 V% u- A# m( D; P# ~3 O
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    8 f( N: Q2 V% x/ b) ^( k
  20. * kind, whether express or implied; without even the implied warranty. t$ h0 j8 `6 S+ H8 y0 _! N9 d
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    % w1 n  i$ n. e: c- n7 z9 u
  22. * GNU General Public License for more details.
    ! }" I, y% Q1 Z8 M3 ]
  23. */% h2 _9 s' g+ f! O; _. o4 @
  24. 0 Q3 [, K( l4 q# G! e( t" W
  25. #include <linux/module.h>
    0 R" c% ?; u, J& L' r8 h
  26. #include <linux/init.h>% U) d. \6 a8 S3 O7 b/ |# E
  27. #include <linux/errno.h>  @0 m$ Q. d0 [/ y6 Z
  28. #include <linux/types.h>
    ( e- X7 s( N* G' c+ I4 B
  29. #include <linux/interrupt.h>
    ( F/ C( h2 x* i' Q- c; }. Y: Q! p
  30. #include <asm/io.h>
    : b( E2 T& x5 y- i! H
  31. #include <linux/moduleparam.h>
    + h! O' [" }: i, t6 B
  32. #include <linux/sysctl.h>
    + l  {: W  }' S) v- x5 O
  33. #include <linux/mm.h>' O# `  L5 o5 m/ o/ ~" a, W# \
  34. #include <linux/dma-mapping.h>1 f9 \. L. P8 f1 b
  35. : S, h0 |4 R. `. E; s# A! {
  36. #include <mach/memory.h>' q0 l5 a' n& J" C
  37. #include <mach/hardware.h>
    , a0 h! u8 F/ G# T' }
  38. #include <mach/irqs.h>
    ; X: o+ y6 q- [4 G- V: J7 w, ]4 S
  39. #include <asm/hardware/edma.h>. k" z( S) M. l( g* p& I

  40. + P8 J' P/ z. Z0 \
  41. #undef EDMA3_DEBUG
    ' Q& p# J) [6 m! m
  42. /*#define EDMA3_DEBUG*/
    8 Q% U& U. a* p, [

  43. . f- b( m: [7 T( ?; _: }
  44. #ifdef EDMA3_DEBUG
    $ B2 d9 J- t$ a3 V, b" o
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)2 `* k9 {6 x3 W+ I; L+ @5 p
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    ( A+ z' ~% J5 V& N; j# _' }
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)& \2 ?! ~" ~8 v6 i6 [2 F) M
  48. #else
    7 A7 I0 g# ~; E9 Y  W' m9 T% u8 ^; `
  49. #define DMA_PRINTK( x... )
    8 c0 Y7 o6 d) t  _5 l, I: P. i) F
  50. #define DMA_FN_IN
    8 X  s. V. `" P
  51. #define DMA_FN_OUT
    4 n6 Z$ v3 F  p5 V) ]$ J& l
  52. #endif& l& G, P. h4 d" G; ]& ?# d9 \

  53. 5 {, ^" V+ E2 {/ y( V4 v
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    6 w  o2 r. s' ^" e: c+ \4 s" d; K
  55. #define STATIC_SHIFT                34 f. l; q5 U( H! n: K1 v1 D* D1 B3 w
  56. #define TCINTEN_SHIFT               20- `7 p2 X, l( H$ E6 d
  57. #define ITCINTEN_SHIFT              21: D' E- V$ g2 r6 d; c% A, x
  58. #define TCCHEN_SHIFT                22
    / x& s/ s: x  r; ]
  59. #define ITCCHEN_SHIFT               23
    : M' b% r  j( ^

  60. + h2 b/ A/ I# }, ^
  61. static volatile int irqraised1 = 0;
    4 j. F  ~! j  H4 J9 f
  62. static volatile int irqraised2 = 0;9 n( q6 R5 J# u' e

  63. $ l' h$ Z& E4 k. c1 w7 G
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    & p' G) M* d& \- l# I
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);- \5 }: x. @3 L6 Y% Z4 D
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);1 j' d! I/ `$ P/ O% `2 U# T& U2 K4 C
  67. & r1 }$ V8 a/ p: l
  68. dma_addr_t dmaphyssrc1 = 0;
    7 c% g# w) Z) O, l/ C7 f9 `. P- D
  69. dma_addr_t dmaphyssrc2 = 0;' q! ^/ G1 @9 L
  70. dma_addr_t dmaphysdest1 = 0;
    7 d3 p1 ^6 \% H* \; T$ z( T
  71. dma_addr_t dmaphysdest2 = 0;4 F% G+ ~0 |& U/ W* T
  72. 4 p# i* k. s" ^1 f: G! o- Z) g
  73. char *dmabufsrc1 = NULL;
    3 y) u: _0 d4 y# |4 q/ D
  74. char *dmabufsrc2 = NULL;
    $ o& F% v# Y- V% q) O3 M8 P) S" n
  75. char *dmabufdest1 = NULL;
    , |  S  I- h- W" B' _2 L" Y1 I
  76. char *dmabufdest2 = NULL;3 |8 m  J% S7 b
  77. 2 h/ R7 B0 F9 b2 o
  78. static int acnt = 512;
    / F( ~% |, d! |& x. {8 w8 c
  79. static int bcnt = 8;( e. d7 v& ^  W3 B( ]' V) ^
  80. static int ccnt = 8;
    0 G; t0 J9 |  \2 Z# p4 n7 E6 D

  81. / X* m! t( B7 C5 w: q
  82. module_param(acnt, int, S_IRUGO);
    ) @& b* D/ V4 Q" m& x" G
  83. module_param(bcnt, int, S_IRUGO);
    , q0 S! e* y! [( q
  84. module_param(ccnt, int, S_IRUGO);
复制代码

# k- i! g  D3 g0 e6 {  s+ \: V3 N9 M2 j5 n
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
( u& v: K5 x+ @8 Narm-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" \5 v  i  k+ z+ |: X! s- e
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
2 f/ h: ^" ^9 K4 O3 F. C/ w) W& }3 t3 X& U/ f
# z8 C: ^3 s( @. H0 i( f* b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-11-14 05:07 , Processed in 0.047656 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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