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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
! p4 Q, Y9 i2 Q, F' U' y
  1. [code]EDMA sample test application" p  _2 n# ^  p8 Q0 h# I# u
  2. /*2 I3 b7 \4 u0 ~2 U/ I
  3. * edma_test.c
    9 i$ ^; m8 h+ t) F0 J
  4. *
    : H# U, l+ j* v1 X/ U0 c; |
  5. * brief  EDMA3 Test Application
    $ k- I3 O! }! U" c
  6. *" g% t7 v; H+ H' _
  7. *   This file contains EDMA3 Test code.$ z% d1 }/ j; A) p* p
  8. *" n  L# h8 p  Y9 i% ]5 u5 B( A4 n
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    . i$ \' [4 w9 i, L
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    , k5 X8 [* S: H
  11. *         TO CHANGE.) {& |( ~! O1 k
  12. *+ s. s. I6 _1 O, N) \4 E  `7 I" g
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    7 d: j9 N! e' I
  14. *8 f7 v. f) m0 ?4 s' u" N) n8 c
  15. * This program is free software; you can redistribute it and/or
    % p' D! X8 @- C9 i6 W4 j8 a- M
  16. * modify it under the terms of the GNU General Public License as
    * b, }% h- a* o+ T- f
  17. * published by the Free Software Foundation version 2.
    3 @" U3 k3 m0 G2 D" I+ h# e6 @8 T
  18. *# s; n- q+ t- z5 Q3 D
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any+ @, T) j1 ^& G. O  f8 G
  20. * kind, whether express or implied; without even the implied warranty$ J4 _0 s6 S- {- j- T
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the$ L* w7 W/ q) w8 \3 I& w* e. u& P- f
  22. * GNU General Public License for more details.
    1 p/ w2 S5 r" U* J, g4 I
  23. */+ I* f* A3 O- r
  24. 5 t9 `% g  U9 j5 f
  25. #include <linux/module.h>1 S" t2 \/ T' I
  26. #include <linux/init.h>
    $ @3 s1 f* Q& g* F2 d, l: Z
  27. #include <linux/errno.h>
    % P9 F3 l! q3 t0 \# i
  28. #include <linux/types.h>, e" R6 u4 s0 G2 F& u
  29. #include <linux/interrupt.h>
    6 Q! Z0 [  J2 z  T9 W- }
  30. #include <asm/io.h>/ e# D4 A) I4 i' c5 r: a5 p
  31. #include <linux/moduleparam.h>
    + V' H6 J: `, }
  32. #include <linux/sysctl.h>
    6 P7 B' Y# y4 y4 Q
  33. #include <linux/mm.h>8 E. T  o2 f8 f4 f  i
  34. #include <linux/dma-mapping.h>
    # M6 y/ M! Z+ W) k, T6 j

  35. 5 n% }. _; e! e! C" Z# Z
  36. #include <mach/memory.h>- Q9 J- y$ D- Q4 N- Y; f) x
  37. #include <mach/hardware.h>
    # R& p+ ~  E, S4 v
  38. #include <mach/irqs.h>
    4 F/ c9 i! L# u6 ?7 J, U: h
  39. #include <asm/hardware/edma.h>
    # a6 {0 Z! `& [+ d+ K0 v" i8 Q
  40.   ]( A: K) u) R; t! k- y; y' Z
  41. #undef EDMA3_DEBUG
    + _0 E4 H4 |8 e: ]
  42. /*#define EDMA3_DEBUG*/
    . c9 O: j  ~5 w6 d

  43. 2 _8 R0 |5 x7 s8 ^
  44. #ifdef EDMA3_DEBUG
    # C8 n  x+ ^6 j+ O0 N! H/ ?) j' m7 A8 x
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)* ^9 Y# V4 O2 R$ S% C& J/ A
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    ; T; c/ z& j5 Q2 \9 {
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    ; g4 x0 _$ @& r$ Z4 u" N
  48. #else% X6 n. G4 R  s- o
  49. #define DMA_PRINTK( x... )
    4 S1 D2 B4 G6 j" o/ D
  50. #define DMA_FN_IN
    5 ~2 h3 ~% A0 [$ F
  51. #define DMA_FN_OUT
    8 U2 G9 j2 q3 v. s" F' D/ L
  52. #endif* A! y+ d( r8 a; t& P' r
  53. % A" E$ Y! J4 Q" H6 c* S
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    ) p! {9 a5 |. N' K
  55. #define STATIC_SHIFT                31 L6 h& W  u4 Z, A& Z* @4 Q9 _: @0 C% u% x
  56. #define TCINTEN_SHIFT               20
    " T. _! J- `; }; G
  57. #define ITCINTEN_SHIFT              21
    2 L6 g& X* Y: E4 R; _
  58. #define TCCHEN_SHIFT                220 C6 p) A3 \4 L1 {# p. R- }
  59. #define ITCCHEN_SHIFT               23
    ; D+ G1 B3 d% p5 o* Y% r. |5 F" |

  60. ! H4 N0 M1 U/ U" W% d. Q# z' B2 L+ r9 x
  61. static volatile int irqraised1 = 0;
    7 X9 ?. t* h" s( w  z
  62. static volatile int irqraised2 = 0;' e! x! m. ^0 O% C) U- X

  63. 2 s6 H& o8 r4 L
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    7 ]5 G- ~" [' L; U% G9 _5 A
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);% _- i& R  ?$ @1 M7 {+ F  i# T
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);; C7 ]3 {2 T8 X' v& ?$ _7 h
  67. ! u. X/ _' ^2 k( r+ y
  68. dma_addr_t dmaphyssrc1 = 0;
    4 ~0 [8 |' ?" M: k2 i( H
  69. dma_addr_t dmaphyssrc2 = 0;. B/ o9 _' V! y  Y% _& i* y& H
  70. dma_addr_t dmaphysdest1 = 0;
    4 z  u+ p! t- x' V1 w: b' o5 u
  71. dma_addr_t dmaphysdest2 = 0;6 _' N* ~3 L) J1 ^9 w+ ^$ p

  72. ) d" q5 O# V2 k- |: Z) _
  73. char *dmabufsrc1 = NULL;
    & r3 p& n6 R1 ~+ E) v
  74. char *dmabufsrc2 = NULL;
    ) X, \/ s3 C4 c' z4 d2 i# n, ~9 N3 q
  75. char *dmabufdest1 = NULL;  t& p9 T/ C* H" m
  76. char *dmabufdest2 = NULL;/ G( [1 w3 t0 N# u: q0 q

  77. 5 w' K8 n+ D: }4 @  O# L6 E
  78. static int acnt = 512;4 m" g# C. q; Y0 x% x# x/ e* M
  79. static int bcnt = 8;
    ' i- C2 a- z, u
  80. static int ccnt = 8;$ [; S$ _. J7 e2 C7 G0 j3 a
  81. 7 j5 n+ T0 |* v( E. R
  82. module_param(acnt, int, S_IRUGO);/ e- w* k9 S% i9 E! O' A5 G0 A
  83. module_param(bcnt, int, S_IRUGO);
    + |) t' c" C4 D! G
  84. module_param(ccnt, int, S_IRUGO);
复制代码
+ |3 `( D4 H2 y# g" r
& I; g) W3 _6 p' M4 d
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
( R" A* Z" t0 [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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
$ }$ k8 ?! t5 b( D     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。+ M/ {1 Z$ E1 e& P8 ~0 U( P
4 z8 ^  b0 {  p3 @4 {# r

- T* P' H- f+ M1 [# `% @$ h* Z3 {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-21 20:23 , Processed in 0.036711 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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