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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
. }, S% \3 i8 n" |" L: U; C
  1. [code]EDMA sample test application/ [7 D2 \- ~1 [9 G0 {- Y, o; q
  2. /*- H! v. H! G2 H4 |
  3. * edma_test.c# S; t' w& B  z" J+ `2 ^: @! h+ T
  4. *
    ) h/ o4 n* i8 X/ m5 C5 H  u) }
  5. * brief  EDMA3 Test Application& y8 u7 ]3 u7 D4 c
  6. *1 H8 ^  N: N) E: T$ G
  7. *   This file contains EDMA3 Test code.
    ( C5 L- X: [- i) w& u2 M$ }2 v
  8. *
    4 H5 \2 o% P7 M: A. s) H: E4 N
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
      b( J$ K% n7 E! O/ d0 E0 C' {
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    - T( w% E& z2 n/ y1 ?9 z
  11. *         TO CHANGE.; D5 Y5 O2 \6 F  h3 {
  12. ** n8 s' l0 M9 X. ?% ?" J
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/2 F3 Z6 z0 s8 V, L, R9 k% i$ q0 b
  14. *
    $ C' Q2 c- T9 D7 M6 |
  15. * This program is free software; you can redistribute it and/or, l) b) A  q4 E; y* Y
  16. * modify it under the terms of the GNU General Public License as! U& Z! r1 y% S3 w$ v; v
  17. * published by the Free Software Foundation version 2./ F0 n, Z9 f* b3 O: t/ D1 O2 F  N! M: N
  18. *
    9 u. J$ X0 b1 V4 H$ C' N
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any4 L) ^! K" S' [! w) j( r" o- L/ d' y
  20. * kind, whether express or implied; without even the implied warranty3 R! X: M% I) |: y( ^9 @' ?* X
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    4 |, o) O) N( [% {" v4 D) ~. H
  22. * GNU General Public License for more details.
    : N- g. e' Y2 ?0 K7 ^
  23. */, M( E& |9 J/ I3 A# X! l8 z' D
  24. 2 G! s; W& }8 _0 B1 n6 n
  25. #include <linux/module.h>4 B9 O) m$ G  V; ^4 D+ U
  26. #include <linux/init.h>4 s: p# q" |( r7 p) L! ?+ i
  27. #include <linux/errno.h>' o! V: ]5 Z* D
  28. #include <linux/types.h>
    4 W' Q: `- a  C$ x4 |0 Z$ P
  29. #include <linux/interrupt.h>
    # Q0 L( u9 g8 ~, O/ `
  30. #include <asm/io.h>
    " q% E2 c& Y3 j8 }" d8 e* [
  31. #include <linux/moduleparam.h>
    " r: J7 U) G! S" c! c: y
  32. #include <linux/sysctl.h>5 {: }) |! [: c+ B( n
  33. #include <linux/mm.h>0 _1 g: r5 U! G9 @0 L" M
  34. #include <linux/dma-mapping.h>. P5 u8 U0 W" K6 q( N* ^

  35. 5 \4 k/ f* }6 c8 _* N
  36. #include <mach/memory.h>
    ' @0 z( u" ]% e  V3 f
  37. #include <mach/hardware.h>& J% q7 \2 f/ }" `$ [
  38. #include <mach/irqs.h>
    % Q. U. b* [  ?% N: t
  39. #include <asm/hardware/edma.h>8 `$ w0 Z4 b/ n' p' u* U7 v

  40. # q: ]& K3 L" }$ |, \
  41. #undef EDMA3_DEBUG
    7 n, M# P- X  j( C
  42. /*#define EDMA3_DEBUG*/
    3 \& k" @  r! ~4 g8 @! [3 L7 V

  43.   R/ r' u; V2 b3 @
  44. #ifdef EDMA3_DEBUG" U0 q: S2 J; f% i/ i0 \1 B
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    8 N( i3 w. a$ d# ?, h1 ]* R) b
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    : p) g1 O, A$ a4 B
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)4 ?! n" B3 j- @
  48. #else
    3 p1 g7 J4 f3 }% [* F
  49. #define DMA_PRINTK( x... )
    5 g/ U3 b/ j6 }- e% W1 S8 C/ t+ K8 S
  50. #define DMA_FN_IN
    : Q  m7 l! K5 D* J# k
  51. #define DMA_FN_OUT8 \4 t7 @  R. b( g& }
  52. #endif
    5 I$ ^0 D, m) F" n
  53. $ F4 j( u( R  r( h$ @! @
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
      m4 c/ ~3 u  n. C5 |" j6 M* K
  55. #define STATIC_SHIFT                33 D! K3 p: e/ O, w( b1 U, m
  56. #define TCINTEN_SHIFT               205 e$ a! i% k/ v/ @0 w1 `
  57. #define ITCINTEN_SHIFT              21* \; A. K; D3 U1 @0 ]
  58. #define TCCHEN_SHIFT                22
    ! t3 T( T/ z  \
  59. #define ITCCHEN_SHIFT               23: K- `* q( u9 X

  60. ) ~, k" @8 y! C& O. M
  61. static volatile int irqraised1 = 0;. N! f1 \" D" P2 p5 g) m, w
  62. static volatile int irqraised2 = 0;) W- K# k2 e8 v
  63. 6 b# N$ J; e4 `' m( t
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ( N1 L: _; a9 b; u8 D# v' h1 ?
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);; f6 \2 u) m' \! W8 {+ Y
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);0 M8 q  M  j0 n: B
  67.   g( u+ c) o3 e" H
  68. dma_addr_t dmaphyssrc1 = 0;
    / F- u1 ~5 v4 G; B0 S) K. n
  69. dma_addr_t dmaphyssrc2 = 0;/ c. T7 [7 G7 L2 ], @
  70. dma_addr_t dmaphysdest1 = 0;
    % g5 x; n+ ^" w5 }: q: F0 Y3 x. B
  71. dma_addr_t dmaphysdest2 = 0;( k- n0 V, {/ a
  72. % e# ~! }$ f# K/ t  `) \( D: T
  73. char *dmabufsrc1 = NULL;
    . [1 o1 h: P1 [/ W8 w
  74. char *dmabufsrc2 = NULL;/ B$ E0 z: w! Y. L# s( E" o1 s
  75. char *dmabufdest1 = NULL;2 Y  Z: t& P: |
  76. char *dmabufdest2 = NULL;. i& u" t  B' d1 t3 h  i

  77. " |' L* Q7 B( P" N$ G- I/ X
  78. static int acnt = 512;
    # I' b1 N: q" m6 x7 L
  79. static int bcnt = 8;
    1 B) I( ~0 E# ~" h2 T9 v
  80. static int ccnt = 8;
    " d: f2 ?4 b9 {

  81. 7 Q' l: Q% Y  k) w* w8 q, J
  82. module_param(acnt, int, S_IRUGO);
    + J( z* |* O1 j' b
  83. module_param(bcnt, int, S_IRUGO);
    6 U4 f( F9 d( S6 L
  84. module_param(ccnt, int, S_IRUGO);
复制代码
0 c! e$ [2 i! ^: q; W  K

: @% j# R  l* m! V) P      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
. J. r7 N8 V1 J6 Darm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
4 U/ \! ?1 a* r7 o0 s     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
( s& j  m. o8 m6 u5 _) r2 ]7 V# X! m) Z% Q& p( y9 O$ F+ U
/ `3 K* a8 H* c# G% |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-10-31 06:36 , Processed in 0.040438 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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