OMAPL138如何在Linux下使用EDMA3驱动 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 1 g. A3 k0 ^8 t, Z1 H/ O- T" v% H
  1. [code]EDMA sample test application
    ) _0 N% u2 p6 ?2 F8 s# O
  2. /*
    3 b  G" g2 X& [8 s! x
  3. * edma_test.c
    , C' j: n9 q) @1 R% o6 k  C
  4. *4 l0 v4 m9 k/ _8 j4 p4 K! c0 j5 I- b
  5. * brief  EDMA3 Test Application
    : f# i6 Y$ a7 C5 ]1 {4 c9 }: w) y7 {
  6. *
    0 \/ Q) H  K: H1 J. j
  7. *   This file contains EDMA3 Test code.
    ; z9 K; @' E# [# y
  8. *
    ; t- y7 m( A; V1 P0 s
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    & T  d0 \* c% P- r, i# T# m
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    ! p: r1 V/ i2 t; E6 S
  11. *         TO CHANGE.
    6 f, U+ @- ]5 y. v6 ~
  12. *
    & Y# t9 O4 @5 {) B0 O
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    ( G. ^, J3 Y9 ~) H# ]6 _( V
  14. *
    0 b+ k% \( q! _. D2 A, |) c
  15. * This program is free software; you can redistribute it and/or
    ( N& K. B! m8 c6 ?( u8 l/ [
  16. * modify it under the terms of the GNU General Public License as2 |) i& u# G. B- d  U
  17. * published by the Free Software Foundation version 2.3 c8 \) z2 [$ m' Q) T) L8 T
  18. *
    7 F. q6 h5 l. r& m4 G+ H- P
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    2 ?0 r9 Q6 y# B* ?
  20. * kind, whether express or implied; without even the implied warranty( W  w$ b# U6 j  l5 `3 R$ w3 `
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the5 f2 w, Q( a  R( ?$ N  y- F
  22. * GNU General Public License for more details.
    # y( k/ e; K( N$ j
  23. */
    3 h) x3 a' i$ L8 |( E$ Q2 C8 ]) J

  24. 5 O4 ]5 h" d( j/ X  L
  25. #include <linux/module.h>$ @3 I  N# ~3 V! c
  26. #include <linux/init.h>
      U0 m1 h! ~8 b. W3 Z
  27. #include <linux/errno.h>
    ' f- e/ p  P9 O" }+ B6 `0 s
  28. #include <linux/types.h>
    $ ]& b( \" N7 @8 ?7 W2 o4 c
  29. #include <linux/interrupt.h>
    - S# m/ ]' C' U% b1 d2 ]
  30. #include <asm/io.h>
      j0 n9 m9 C! L
  31. #include <linux/moduleparam.h>
    1 \. W5 r/ o* A2 X
  32. #include <linux/sysctl.h>
    # Q1 G, A# n. Z
  33. #include <linux/mm.h>0 C' J- y4 E* S* {( F
  34. #include <linux/dma-mapping.h># u- ]! ]% S5 ]  u3 [

  35. / p. |1 Q0 i, }. A$ G/ L! I
  36. #include <mach/memory.h>
    " ]. h2 V  @* t/ m/ }) m0 ?
  37. #include <mach/hardware.h>/ H# e+ E( n4 e' Z) ~7 A3 `7 ]. [
  38. #include <mach/irqs.h>
    , o2 J+ N. v- \# Z8 o* W
  39. #include <asm/hardware/edma.h>
    6 l0 x' k; c+ A: ?" d& T
  40. $ T9 m+ q+ j# @
  41. #undef EDMA3_DEBUG
    2 }  e+ ?" j3 H% u
  42. /*#define EDMA3_DEBUG*/
    / l+ l# h6 c) X
  43. 8 N; g4 @3 W: }/ h: q
  44. #ifdef EDMA3_DEBUG% l, W' P" v+ n
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    % d3 i% X/ G, _# L$ s
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)# a9 d2 j4 @1 U. [9 b
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    . U6 _/ C8 E" Q! l5 G- c) M
  48. #else
    ' n. K& ?: l& q* @4 g5 a
  49. #define DMA_PRINTK( x... )
    8 b( S1 v. w2 a* O) S; ^+ [7 d* L* ]7 m
  50. #define DMA_FN_IN+ u) d- L% j; X
  51. #define DMA_FN_OUT0 E2 X$ D7 X/ t8 i6 U& C
  52. #endif2 x1 }9 \; p$ @# D$ k, X

  53. . _: x9 U+ u  c2 Z) a) c- |% i
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)3 i& P+ [; ]( o5 c0 l
  55. #define STATIC_SHIFT                3  {0 s3 C$ i; q4 v: h$ g) p; v
  56. #define TCINTEN_SHIFT               20
    ( D% Q% M$ S- P- O0 E( r# ^1 U
  57. #define ITCINTEN_SHIFT              21
    6 ^2 J/ C* D( O, D/ j
  58. #define TCCHEN_SHIFT                22. D: z/ d# E. [! j, T
  59. #define ITCCHEN_SHIFT               23
    0 \. ]0 w' g: M' Q  D' p+ c# X' t

  60. 2 w% n/ X& E9 j& X1 m8 e/ W; b
  61. static volatile int irqraised1 = 0;
    & [; P# v- p( R
  62. static volatile int irqraised2 = 0;1 j) e4 i' P$ g$ O: U6 @# W
  63. * v! H9 W, I' C- b* q, |# \% B
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    : n5 Y9 x$ `: l! e( O% ~
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);0 s4 Z; O/ u! q6 V. l; Y
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ) z' C- R2 r+ j5 B! j5 P* Q

  67. * f& o- W, B) i7 s) p/ s# u
  68. dma_addr_t dmaphyssrc1 = 0;" H5 m# r' d( K; Z: h+ }
  69. dma_addr_t dmaphyssrc2 = 0;' L. e- \, Q6 L
  70. dma_addr_t dmaphysdest1 = 0;
    2 z" w  O' d# ?$ V, q; |& d
  71. dma_addr_t dmaphysdest2 = 0;
    $ @/ T* T+ A+ I( @1 _6 _/ [7 E

  72. # b5 G1 m5 {* p
  73. char *dmabufsrc1 = NULL;
    0 I' O  D: r7 j/ v0 E+ x
  74. char *dmabufsrc2 = NULL;
      n# q/ o9 N# V- j& ?% o3 v: L
  75. char *dmabufdest1 = NULL;# X% j  l5 N. n  {) n; Z- M: v
  76. char *dmabufdest2 = NULL;& v( @8 p9 P6 D7 e
  77. 6 S1 l- n2 d+ C% r
  78. static int acnt = 512;' \# O$ I9 Y$ o* Q+ C8 \- v( c" `
  79. static int bcnt = 8;9 e  d# i: v- M: h
  80. static int ccnt = 8;
    % X. k. K9 B, o8 R) a- C

  81. 9 ?4 {1 ]+ T8 O* _. F( ]4 U
  82. module_param(acnt, int, S_IRUGO);/ a& r& i6 C# m! Z, [: s  E
  83. module_param(bcnt, int, S_IRUGO);4 E4 _( @) u8 ^  ]  H
  84. module_param(ccnt, int, S_IRUGO);
复制代码

. ^8 W/ c9 `) s9 {6 q8 X( E6 {/ J4 O$ W1 |3 t0 i
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用0 Y; N4 _1 ~- S
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
$ \- s+ T! E+ T+ m( s     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
' W+ c+ g( d: B( H5 m: C# `7 R" }3 f; T9 r& d5 E" l. G

. ^/ e+ G/ C5 g( y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-6 15:23 , Processed in 0.042163 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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