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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 9 Y+ M$ i5 O0 E2 f0 T
  1. [code]EDMA sample test application
    ' A$ T0 k; R# f) y% I6 r7 s; ]% ?/ i
  2. /*
    # f: m  A( {1 {$ y4 ^8 J) Q# k' _# I0 Q
  3. * edma_test.c
    ! b# h* M3 z; ]+ x9 X/ v$ V
  4. *
    5 i' `3 O& K5 ]
  5. * brief  EDMA3 Test Application
    . r7 y, P* M5 ]9 j' Z$ x$ N; @, T
  6. ** S1 d) p! c$ C5 C* A) i
  7. *   This file contains EDMA3 Test code.
    0 ]: o' C) _( k- u% h
  8. *
    $ [4 E2 |" m9 Q* o1 W
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE, z4 P8 E4 p; y8 o7 d  y' P
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT$ q! G' m( L) W: l. o' |4 u
  11. *         TO CHANGE.. e9 Z) V1 s& t$ v& L
  12. *
    5 _4 z. O7 m% R& k1 [
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    $ Y, P- {, |+ Z$ P
  14. *
    1 v, l) T6 ]6 e
  15. * This program is free software; you can redistribute it and/or4 J2 H$ Y* q0 B3 u) v& v. f+ a
  16. * modify it under the terms of the GNU General Public License as
    / Z5 U( n8 c/ n" O/ O' f9 T
  17. * published by the Free Software Foundation version 2.5 j+ o: |( y+ y& v& s! \
  18. *. ~1 k5 X5 b" A3 A% J/ }
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any5 g* b& y+ J/ n
  20. * kind, whether express or implied; without even the implied warranty  u3 [8 X! w3 D1 q: |% g" V  S
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    8 r/ N, z; A' e8 C: ~% ^* h
  22. * GNU General Public License for more details.2 K/ h+ i* l9 ~9 h5 z
  23. */7 c4 A( p$ P% W- S7 o2 H

  24. " C4 Q  W9 s# I8 d
  25. #include <linux/module.h>
    7 l2 c: K; }. a2 x% g% K, i) }
  26. #include <linux/init.h>2 n0 F1 w3 ]2 g/ h/ h* V
  27. #include <linux/errno.h>; W3 u, F$ B2 p* q2 ]
  28. #include <linux/types.h>
    8 a8 ]4 S( F; V. y0 I: L/ H
  29. #include <linux/interrupt.h>  a3 c, D! P% b' u& B1 ]
  30. #include <asm/io.h>8 R! Q  a- l# Z3 e- g' Q
  31. #include <linux/moduleparam.h>
      t7 R. |4 l2 C& i$ U
  32. #include <linux/sysctl.h>2 x& n+ m0 ]3 ^
  33. #include <linux/mm.h>" J6 r/ }2 y, W/ `" X. `
  34. #include <linux/dma-mapping.h>4 }9 z7 F9 s7 v4 N' x! M' ]! {

  35. 6 [, k0 k: B9 N+ [0 I+ u
  36. #include <mach/memory.h>7 e# \! W! h% p1 A/ [
  37. #include <mach/hardware.h>
    / @6 x! j- X. n
  38. #include <mach/irqs.h>: i$ F# E. S) P& \) Q
  39. #include <asm/hardware/edma.h>
    - \" C4 P" s/ G" C
  40. ) Y( u; o% R5 w; _9 e
  41. #undef EDMA3_DEBUG
    3 c; b7 s8 b! x7 M, w+ R: O
  42. /*#define EDMA3_DEBUG*/
    , |9 r! L  }" s- Z

  43. ) h7 |8 u4 e% u9 s
  44. #ifdef EDMA3_DEBUG) ?8 J" |; l) e- T) C% K0 Z
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)' D# S6 y# F/ R2 v6 I# P+ B
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    8 G+ b7 Q! o0 o
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)$ b" G7 B& ^( M, J( d% K/ B5 u. D
  48. #else
    2 U4 B6 ]5 t/ R
  49. #define DMA_PRINTK( x... )7 `( r  ]# Q8 r7 A! U
  50. #define DMA_FN_IN
    ) e: S0 C6 ~( m9 ]
  51. #define DMA_FN_OUT
    & V9 w* D( j. d( S
  52. #endif
    # Q# o4 l' E# g- [1 U5 o  c

  53. 2 G1 M: b( j9 x! M/ O6 ], {
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
      u  ^( B+ M/ ^& N; J; ]
  55. #define STATIC_SHIFT                3- L- S: L- P4 m4 G. q0 u9 F0 p
  56. #define TCINTEN_SHIFT               20- {, [' n: @( d( r. n
  57. #define ITCINTEN_SHIFT              21% R7 _' N. d: ~5 v& j0 e
  58. #define TCCHEN_SHIFT                220 F! ?9 a, S$ E; z  M5 e. K1 p
  59. #define ITCCHEN_SHIFT               23
    % d* X* X0 c! m* J5 Q

  60. " l' t* e( w' c6 Q3 V  X+ o
  61. static volatile int irqraised1 = 0;0 z* j& J( t9 ^0 S) v9 F% q
  62. static volatile int irqraised2 = 0;
    ) W9 h/ l8 d7 y- e
  63. ; ?$ u5 M$ @# i+ h% E$ i" i2 R
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);, C" L& _4 L" A  V2 C
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);' w2 p6 U  \' R" G# h; F3 p; j8 F
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);4 y0 K/ }$ }7 M& {' z7 ~( u

  67. ! F0 w5 M- u8 ~7 ^5 ~* z
  68. dma_addr_t dmaphyssrc1 = 0;
    9 P2 Q! f" o/ X+ [
  69. dma_addr_t dmaphyssrc2 = 0;& Q$ W" F4 T, ^' ?
  70. dma_addr_t dmaphysdest1 = 0;
    6 A& e8 \5 s' r
  71. dma_addr_t dmaphysdest2 = 0;
    5 g, V5 {$ M( @9 v8 R

  72. * {9 D1 O4 O+ v9 m; [& `$ A
  73. char *dmabufsrc1 = NULL;
    % D* H- v: R$ S  Y9 S/ ]7 n# {. t, y
  74. char *dmabufsrc2 = NULL;
    8 w6 c0 n1 S4 x2 \. n* Z2 n; s
  75. char *dmabufdest1 = NULL;$ \/ w  r; z: s0 }4 N; K) D, b' o8 K& H
  76. char *dmabufdest2 = NULL;
    3 P; K) s/ |( a9 v

  77. ' c2 {0 u- E, U3 r; `  p0 d) _4 x% y/ p
  78. static int acnt = 512;
    ( R5 J; f! `3 V3 ?# O
  79. static int bcnt = 8;' ~9 r! m/ V, l/ W7 Z9 T
  80. static int ccnt = 8;
    3 M5 @9 P% l5 p2 B( P% t
  81. + [4 D. b3 ]2 q- q' i7 ]
  82. module_param(acnt, int, S_IRUGO);: j$ i" R" y! K) w
  83. module_param(bcnt, int, S_IRUGO);7 ~$ ^+ X5 A. F/ m2 u8 m$ q
  84. module_param(ccnt, int, S_IRUGO);
复制代码

$ F* M+ S, u) E; e1 v
) a* n( h0 D7 n( j$ B      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用3 `! E2 l  W* T" X% t# _# _
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。7 ]% I* L1 e3 b0 p7 `; P
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
# Y" {8 N* ?# H! Z/ u  B0 ^; a
9 L: E& G/ j# h! O/ N+ R9 t" A; t! D8 E( l; \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-26 15:47 , Processed in 0.040212 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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