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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 # ~, O  j& x" A7 S
  1. [code]EDMA sample test application! b$ U4 J8 g2 y" y
  2. /*
    2 F2 V8 F$ v, n( h0 [' S2 e5 g& p+ c
  3. * edma_test.c
    # ~7 `/ W' o- q: Y+ s) u
  4. *
    / t! y* w' y$ s+ A, l* f
  5. * brief  EDMA3 Test Application
    - P+ S! @  F0 @
  6. *
    5 A4 p- h% h4 P
  7. *   This file contains EDMA3 Test code.
    5 V2 _6 h+ T4 o, V0 e
  8. *3 J6 a4 ]0 i) o" D
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    / J* Y1 n* Y* v+ ]6 q
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    . j$ M8 O' j8 Z# ?( Z
  11. *         TO CHANGE.. V) T5 _& X% R% z* B
  12. *
    2 N6 a# U; }8 p3 w# P
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    + ?- ^) q5 B% [1 y& C" U, N
  14. *$ Y% n% V* j' I) y. G
  15. * This program is free software; you can redistribute it and/or
    0 b& l" \7 G; r* F
  16. * modify it under the terms of the GNU General Public License as  o$ Z3 T2 K9 T
  17. * published by the Free Software Foundation version 2.7 I1 q. H1 |- J
  18. *& S8 ]1 s+ `( y" r5 c1 p; o
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    4 \( E$ }6 K4 O" C
  20. * kind, whether express or implied; without even the implied warranty0 z* v" `4 |5 j6 n" \* ^: r
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the1 {  a6 a* @* _
  22. * GNU General Public License for more details.
    0 S# N6 M% Q1 f" N5 Y6 S
  23. */
    $ M5 [' h" D# y' M" T1 o
  24. ) S5 t# G  O% B; S
  25. #include <linux/module.h>
    ( R; A+ Z: Y% M" \0 r
  26. #include <linux/init.h>
    * z7 i: R* @8 z, a9 n' z+ `
  27. #include <linux/errno.h>* \# {# l/ u) J5 C7 {
  28. #include <linux/types.h>, ~" w' e; j1 y/ R, |) i3 C& J2 |
  29. #include <linux/interrupt.h>
    ! I* i4 [+ d5 T: n* Y4 A
  30. #include <asm/io.h>0 s) U8 c: L5 [! j. B
  31. #include <linux/moduleparam.h>
    4 m8 {3 l' X9 J! O  [) U
  32. #include <linux/sysctl.h>
    ! j& i, a- r& k8 d( y2 {
  33. #include <linux/mm.h>; W9 x+ P7 t& K
  34. #include <linux/dma-mapping.h>
    - _6 z! Q9 }. p1 b
  35. 9 N3 y) {' N# j) Q- I& D" `9 J
  36. #include <mach/memory.h>
    - T: J: e1 a9 ]4 h
  37. #include <mach/hardware.h>; X+ H) N3 S2 R
  38. #include <mach/irqs.h>
    + E+ x  K& P- i
  39. #include <asm/hardware/edma.h>% J- }6 |" E' B1 G# P% J
  40. - J) Z9 Z8 F. L! x/ M
  41. #undef EDMA3_DEBUG
    " _- W+ k9 P+ r; @
  42. /*#define EDMA3_DEBUG*/) D7 y* z5 i1 I6 l) ]3 d. T/ p
  43.   }0 C, O* G: ^  z* o" @2 {  Q
  44. #ifdef EDMA3_DEBUG5 i2 p. c* e) @) [
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)/ X/ J$ P* f3 h. e
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    ) ^; K& }1 [9 \# y$ \
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    & k7 }+ W0 T' D/ \6 z  E
  48. #else2 b. F0 I+ Q4 H* `6 I. @; n
  49. #define DMA_PRINTK( x... )* m- n- P# W" K
  50. #define DMA_FN_IN: ?3 U, S! Y1 `' i
  51. #define DMA_FN_OUT
    ( x' W* `9 I  `4 t; _9 W, s' g
  52. #endif
    / I( ?/ j6 h# L

  53. ' V6 Q5 y, [5 x
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)3 v% C% @6 |9 O3 n9 g- h/ E
  55. #define STATIC_SHIFT                3, c; H7 d+ n4 @# {6 r% p
  56. #define TCINTEN_SHIFT               20
    2 o7 N% m4 a( \' K: Q# N- p2 u% N
  57. #define ITCINTEN_SHIFT              21
    ( Z3 `- Y5 ]& M# R( H! v
  58. #define TCCHEN_SHIFT                223 N! n9 Z' R% e$ s5 ~2 l. @* a
  59. #define ITCCHEN_SHIFT               23
    , ?1 [+ T  I- S/ {# y3 }
  60. . u7 b! v# h3 T
  61. static volatile int irqraised1 = 0;
    ! _; J7 ~& n; d
  62. static volatile int irqraised2 = 0;
    ) Q3 g" w; m- K1 M; {

  63. 4 U. L$ b4 [1 C" I  p' h
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    6 j* ]/ T( [' k1 A: `0 G
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);/ T! p: S8 Z- D) m# b$ J5 M
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    - f0 n$ _+ I+ ~
  67. # R+ N4 K0 h8 a& j5 W( G, q: i
  68. dma_addr_t dmaphyssrc1 = 0;  z' m8 f  O1 J# d
  69. dma_addr_t dmaphyssrc2 = 0;, _! m2 I- c' o8 p
  70. dma_addr_t dmaphysdest1 = 0;
    6 a, Y0 P; M* y% U. ^
  71. dma_addr_t dmaphysdest2 = 0;
    6 o% D" I/ s1 t' d" d$ M

  72. ) t# ~5 j% J/ n/ H1 S
  73. char *dmabufsrc1 = NULL;
    + `! b( d+ U  E+ g! u# p: ?
  74. char *dmabufsrc2 = NULL;1 R3 V* k0 @/ w, C
  75. char *dmabufdest1 = NULL;
    # \( o6 L$ y2 H4 M' m6 N: [) X4 A
  76. char *dmabufdest2 = NULL;. b/ V/ @- B  G8 F

  77. 7 F0 a, A* s1 r* |+ l' }
  78. static int acnt = 512;
    6 |  v! G) o+ I! W0 N: {5 z1 R
  79. static int bcnt = 8;
    : U' B" C0 J" {& f
  80. static int ccnt = 8;2 {7 d1 ?2 _  }' ]9 `, Q

  81. + q6 R- q0 J5 i" W: |! Z* j
  82. module_param(acnt, int, S_IRUGO);6 ?9 x, b4 x% N; V( a( p2 X8 u- w
  83. module_param(bcnt, int, S_IRUGO);
    . h3 q" W- _; d# H
  84. module_param(ccnt, int, S_IRUGO);
复制代码

! H& d& f/ J( L& L
' p) f( ~# K% g( e/ v9 M. W" j; r      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
9 ^6 w; m) @) r: @2 J/ d% aarm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
, ]$ a/ H, c: w% o7 w! c6 f     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。! A; ?. W! k' k1 Q4 {

( m. D2 u& t" @, V9 l1 f( _" n
* W" e0 K, @) ]' s0 H' J; l  _# i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-25 23:21 , Processed in 0.039609 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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