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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
' `' B) v3 z+ {/ w! A8 W
  1. [code]EDMA sample test application/ u, |) U0 G7 a/ y- ^
  2. /*
    0 C: I3 S  @: }1 k9 q/ n7 y% Q* I9 K2 R
  3. * edma_test.c, t+ Y7 i3 Q3 x" K  A8 S, N8 I3 V# U
  4. *
    ; Z7 I" C! c; v- }" B0 @
  5. * brief  EDMA3 Test Application0 W& j4 h1 ~9 m/ ?  o- B
  6. *, M: c" K+ u' L/ t6 j
  7. *   This file contains EDMA3 Test code.
    ' O' ~& b& ]+ R- U4 m
  8. *
    4 P5 ?# ~* K  G4 k( O3 d7 c
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    - X3 }# S* E, y$ J
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    1 E4 P* D1 ~. N7 [( o1 n$ B
  11. *         TO CHANGE.# J# V' R4 I4 B9 i0 ]; f
  12. *9 x! w1 }% o5 O& M
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    + V+ Z1 _9 @2 Q( L- U  h
  14. *6 _. M+ t+ R3 {- K  B  x
  15. * This program is free software; you can redistribute it and/or# s: C/ T7 v* j5 a6 l. l
  16. * modify it under the terms of the GNU General Public License as  A( D; V2 e( S1 w2 x" L, w6 g
  17. * published by the Free Software Foundation version 2.
    0 ^. K" @1 W) \
  18. *
    4 f9 ?) l7 Z; D& L/ f
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any5 `( v. E/ r' Q4 ]! U5 }+ b
  20. * kind, whether express or implied; without even the implied warranty- F& ]- O' @$ P  E- Q8 [, v& u' F) C
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    7 }! T# V. l3 w& J0 X
  22. * GNU General Public License for more details.
    $ u% q2 U9 K7 G2 H
  23. */
    3 T, F( z  N9 e% b7 X( O

  24. & B) l7 Q1 l+ g. y+ o& _; g; |
  25. #include <linux/module.h>, m* r+ D; e, q6 k8 _& I
  26. #include <linux/init.h>
    8 ?! h5 M$ S  U: |
  27. #include <linux/errno.h>
    % f% C# i; Q' y0 _  t
  28. #include <linux/types.h>
    : ^$ ]4 W9 l) M2 F5 y
  29. #include <linux/interrupt.h>
    6 Y6 C# n& `5 d* u" o* l
  30. #include <asm/io.h>
    / P& s0 x" E; F. T$ S# @9 n  |
  31. #include <linux/moduleparam.h>
    ) p: r. H: M8 Q( @2 u2 E- I: ?
  32. #include <linux/sysctl.h>7 a! M8 A4 v$ _" R$ [
  33. #include <linux/mm.h>
    6 l7 m. {3 d- v
  34. #include <linux/dma-mapping.h>! e0 E4 X, Y6 L/ l
  35. - |) W9 r9 N0 {
  36. #include <mach/memory.h>% X+ a: [+ h8 K# S
  37. #include <mach/hardware.h>4 \9 D" K" [, M
  38. #include <mach/irqs.h>) H. K/ N$ M0 ~( q# ^2 a4 e( u/ m! q
  39. #include <asm/hardware/edma.h>
    # Z. n, c' g; N$ v/ e& E7 _0 p
  40. 9 ~. @" Y$ J5 H" @
  41. #undef EDMA3_DEBUG! t+ q; G5 y& C/ l3 H
  42. /*#define EDMA3_DEBUG*/( B* O/ S0 A6 v9 F/ s3 `& r0 z/ W* g

  43. ! x: ^+ k$ o5 |6 U
  44. #ifdef EDMA3_DEBUG- f# x' v9 l$ l( r: _5 |
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    & W0 O2 Y/ w/ L% _( \2 d
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    8 V' @1 E- w$ k/ G: r' o* i8 V  q4 ]
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)( r8 N1 g( s) @$ O. L
  48. #else
    ' S: @( j" U6 Y. V8 ]
  49. #define DMA_PRINTK( x... )
    8 F9 r) \, B: r8 G% @& @2 K
  50. #define DMA_FN_IN+ I( Y/ v. R. f, |0 V
  51. #define DMA_FN_OUT
    ) s, r/ [8 o* n. B
  52. #endif
    3 O8 S  s' N6 K# c8 f

  53. 2 A( G  \  e9 p) N
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)6 U6 l9 }) n/ N' k0 {
  55. #define STATIC_SHIFT                3
    + e" c- L. b7 }# s4 v
  56. #define TCINTEN_SHIFT               20
    2 J, z6 p3 r. y6 _4 `! I* P
  57. #define ITCINTEN_SHIFT              21& o4 F; y" m/ t; a, J, G3 q
  58. #define TCCHEN_SHIFT                22: Y3 i" y4 l( O; B
  59. #define ITCCHEN_SHIFT               23' p, Y& H% z& K7 E; K# O5 @' F6 m
  60. 8 m" n) @7 b: Q. h! M" e
  61. static volatile int irqraised1 = 0;
    4 V9 T2 G7 V" h" J9 p+ s1 x
  62. static volatile int irqraised2 = 0;3 H+ \8 @( r. x- g7 g) w& f
  63.   U; j! `: Q7 A, V. h+ p
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ; O- \0 g3 k4 \8 }) O
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);0 J' y  u; \% K: U5 k1 I* q
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    0 a" R) B0 ^) W: o+ y# y

  67. : l& T0 B# O2 l5 T: y
  68. dma_addr_t dmaphyssrc1 = 0;
    ' I4 L3 t9 n7 `( t* r0 \6 v9 Y
  69. dma_addr_t dmaphyssrc2 = 0;" S& \" e9 i0 c7 K0 p
  70. dma_addr_t dmaphysdest1 = 0;# b. Z. n' p: x0 W" n8 S. s& \
  71. dma_addr_t dmaphysdest2 = 0;( t- w2 U! m% j* `

  72. 0 d1 }  ]4 D# q3 Z6 \, N5 k) V
  73. char *dmabufsrc1 = NULL;
    9 e' F7 p3 l7 d+ w, Y* r1 l* `) h: Y
  74. char *dmabufsrc2 = NULL;# m/ h9 X( z  T8 Q3 J
  75. char *dmabufdest1 = NULL;
    & ~. H- ]# t& F" n- Q4 \. ^! K
  76. char *dmabufdest2 = NULL;
    - A2 K' [$ A: ?1 F

  77. + b6 V# A2 O3 F3 k. Q& q* @9 a
  78. static int acnt = 512;; K+ c9 {3 R! H# O' [
  79. static int bcnt = 8;3 F0 Y2 ?' B/ T( P
  80. static int ccnt = 8;3 l' ]* ?/ o+ K0 S& y
  81. 7 A7 d0 _  C" R. T/ a% \% x3 R: Y/ m
  82. module_param(acnt, int, S_IRUGO);
    9 Z' R9 W- {6 F, K4 c
  83. module_param(bcnt, int, S_IRUGO);+ I9 a3 `% ^- n" A6 H" l" r
  84. module_param(ccnt, int, S_IRUGO);
复制代码
. h5 V% E' _3 q) D

9 ?+ w7 X  ?% d+ F% g      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
  }5 L  q0 l+ j# larm-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 F3 T- U6 H% u3 i* Z, b     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。- G. p( c$ z  j- n& F( w7 V

9 b, @# H- o. R' p7 R. x
6 O2 ~5 x; a2 e0 Y- J8 @' X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-29 23:57 , Processed in 0.038555 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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