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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
# S& q* y( z5 v9 ?- M
  1. [code]EDMA sample test application
    7 d6 M6 d9 ?3 P, E# E4 C9 ~
  2. /*
    8 a6 r4 ~7 N0 v  g
  3. * edma_test.c8 F9 J; s' s! z2 G5 v! p
  4. *
    . g# j& c  r' X2 Q0 }
  5. * brief  EDMA3 Test Application, R% m2 ?2 |( C) u' K
  6. *
    : Y  x2 e+ T+ U% c# A
  7. *   This file contains EDMA3 Test code.
    , Y* c4 [. w% g0 }+ ^8 K. ^! h0 P
  8. *2 {; c/ y* A# c- x% F: i: B
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    ) [  A8 h, x2 i, V0 X
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    2 m4 n7 @' S1 ]' n+ T: x
  11. *         TO CHANGE.
      H" s% A( i' B
  12. *1 c& E* p3 Q8 r6 N: @
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    ! z/ H1 L0 w' A# E' ?
  14. *8 C# y+ K9 J4 Q( G9 p
  15. * This program is free software; you can redistribute it and/or; A0 Z6 _$ I, K0 ~
  16. * modify it under the terms of the GNU General Public License as
    ( f0 k7 E( n% i2 T  X
  17. * published by the Free Software Foundation version 2." `2 w# P. j- c( G9 u  l4 y7 H& u
  18. *
    * A" H! x. t6 _4 ]
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any& X2 w0 \% s9 g1 I# t
  20. * kind, whether express or implied; without even the implied warranty* T2 q" F6 v' i
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the( w" p1 F# n1 u# w
  22. * GNU General Public License for more details.# i1 v4 ^' T3 B/ A' H! c3 c
  23. */
    ; o. y0 J5 R8 p0 T6 ^# C7 G
  24. 6 F# m5 I, y# z
  25. #include <linux/module.h>; s9 I- b' o7 s5 U
  26. #include <linux/init.h>- x7 F. H& l, w; `$ o8 f+ `
  27. #include <linux/errno.h>
    . Y2 }7 \8 k1 a' P+ S9 r0 z
  28. #include <linux/types.h>
    % ?/ k/ O0 ]* c7 H/ ~1 `
  29. #include <linux/interrupt.h>
    # p6 \/ l9 o  u! I8 }$ X& J
  30. #include <asm/io.h>
    8 V# W: X1 ^2 X7 x2 T! x
  31. #include <linux/moduleparam.h>
    ; Y0 A" K  x0 I5 J. G( C/ o
  32. #include <linux/sysctl.h>, ^% C3 ?5 M& D: N# V; @7 L' _# X; u
  33. #include <linux/mm.h>
    0 |1 B: H7 ?* U3 h( f3 f
  34. #include <linux/dma-mapping.h>8 \, ]) D* Z% v# R
  35. 4 Y" O. s3 G( B( K! D
  36. #include <mach/memory.h>
    ' ^/ p% F4 U" p; y5 u3 E" u
  37. #include <mach/hardware.h>3 @! w6 Q' E) t2 m0 H  b
  38. #include <mach/irqs.h>; L4 s8 a7 ]) k+ R& [
  39. #include <asm/hardware/edma.h>
    0 o; @8 b7 A( O* b
  40. 4 a  V7 F/ b  m
  41. #undef EDMA3_DEBUG: ~( N0 j4 E) w$ P& G9 p: J
  42. /*#define EDMA3_DEBUG*/6 c: \2 o9 T4 q: d  r
  43. . `9 N; m9 Y! |; i: |
  44. #ifdef EDMA3_DEBUG
    ( N/ b- W) \. |. V8 k4 C8 U
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    + h1 ~& Y5 f. I5 A
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    ) ]6 p  Y' t1 [. y5 K
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    ! z! E" r' O+ h' X# i
  48. #else
      h- w  t6 Q6 A- b* G7 T4 t& e
  49. #define DMA_PRINTK( x... )
    * p7 ^! _- _: C
  50. #define DMA_FN_IN
    5 ]' k; B3 w8 Z9 y: _
  51. #define DMA_FN_OUT# C7 k# [5 F& X2 v# m
  52. #endif
    # L" W' B  f' c, k7 q1 f) @* ?9 q
  53. : I4 P9 F) I9 r# k* S/ Q
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    - R1 w* s: ^, y* ]5 A
  55. #define STATIC_SHIFT                3  _* a( A) [5 J- }9 y+ p: `
  56. #define TCINTEN_SHIFT               20- I1 b5 t, C  k% X$ r
  57. #define ITCINTEN_SHIFT              21. J* Z" M" A3 |, t
  58. #define TCCHEN_SHIFT                22
    7 S8 t, P# m6 [+ c" y$ b
  59. #define ITCCHEN_SHIFT               23
    * A7 D" g3 q  b$ Z2 ?
  60. $ }0 N7 f! t6 n
  61. static volatile int irqraised1 = 0;) o  b( j1 }7 [9 M5 f! i
  62. static volatile int irqraised2 = 0;/ Q8 o$ b/ Y/ {: @: l
  63. 5 e) A; |  q* Z) g3 A$ _
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    * e) k# w0 w8 ?, x$ s: k9 Q7 V4 N
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);) {2 e' j$ c5 f
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);/ q% W+ c- b0 ^& ]) j

  67. 6 H$ k: {% |! h6 }+ _8 R
  68. dma_addr_t dmaphyssrc1 = 0;0 `7 {9 t5 k& W- c; S+ X
  69. dma_addr_t dmaphyssrc2 = 0;1 C0 j8 z# ~& L6 i3 A
  70. dma_addr_t dmaphysdest1 = 0;5 d& W) h- X& O* m. _
  71. dma_addr_t dmaphysdest2 = 0;1 u  q$ o  h" ]8 U9 {: Y: `2 p

  72. 6 }1 o8 U* e" D. `6 g& @
  73. char *dmabufsrc1 = NULL;
    ! F+ J4 n. A) b( U* W
  74. char *dmabufsrc2 = NULL;( K* A# ~1 P7 D5 q
  75. char *dmabufdest1 = NULL;
    2 z5 c5 [9 p9 k! X! i- {* j
  76. char *dmabufdest2 = NULL;
    ( y* h. K% Q" K4 t! Q

  77. ! {/ w9 F  o  o" U* q  T
  78. static int acnt = 512;+ a8 E+ @7 n0 Z8 ?# K$ _% I
  79. static int bcnt = 8;
    8 I0 u# \6 [" @  X! |/ O
  80. static int ccnt = 8;
    3 V; X5 V6 s5 J$ C- g% x

  81. ; j4 }# T8 W( D9 _* k! R
  82. module_param(acnt, int, S_IRUGO);
    ! s/ b: h! X- N1 S3 r) w4 q- w
  83. module_param(bcnt, int, S_IRUGO);
      P0 b2 V3 y# f) h; [+ s
  84. module_param(ccnt, int, S_IRUGO);
复制代码
8 I# W  {  n9 k' ~; H9 A
: G4 ]3 j! u& n' H7 C. E
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用+ ?1 P6 [4 T. e4 W3 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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
- K# g1 q. y9 w- t. n3 J     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。8 i0 v& s7 j$ Z: x8 ]+ ]
8 w1 _" M/ B5 v- I( K' j$ p

2 z2 f% [3 Q8 _3 m
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-21 03:48 , Processed in 0.038101 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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