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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 ' z4 H7 w/ K+ Y1 `
  1. [code]EDMA sample test application
    # }: A) b. S4 p! K5 H" P0 a& j- m
  2. /*
    2 o; `  S8 R9 C6 ^, L
  3. * edma_test.c+ d5 q8 h) u* {8 a# J
  4. *6 R/ P$ A" G7 m- p/ q7 {) I% c
  5. * brief  EDMA3 Test Application( k+ w3 Y' r5 L& W
  6. *
    & `" K0 |  h+ E
  7. *   This file contains EDMA3 Test code.
    $ g$ t  ]. ^2 V# a
  8. *7 E; g2 \. m. @% A. f/ s
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    , M0 b) Z8 `3 M- @/ R  W1 F+ C+ [' U9 g
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT8 h' C: ~; J! j9 r$ S
  11. *         TO CHANGE.
    4 b1 @( J7 A# l- W& Q+ c
  12. ** Y3 c, p/ u+ f# `( d* f- g* A
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    - y8 R8 K# O3 F9 Y6 x
  14. *6 W: U/ n: c$ c( u$ |
  15. * This program is free software; you can redistribute it and/or
    3 A9 j& v  m9 h4 i: i  v
  16. * modify it under the terms of the GNU General Public License as+ {$ q  b" g+ ]+ V
  17. * published by the Free Software Foundation version 2.
    5 N  ?+ i1 ~$ n) B
  18. *
    6 `/ S2 a- W* J8 Y
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any' D& b3 I$ q5 a& [" l4 {) @
  20. * kind, whether express or implied; without even the implied warranty
    3 j8 d  M" c  B# @7 J6 E* b: D: L
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    ; j9 g7 |. D) q; f& m' [9 j
  22. * GNU General Public License for more details.
    ; L) h! |4 ]( B; o9 h
  23. */% y9 A# ?5 u$ h: Y
  24. 4 O' j7 o  `; \9 T
  25. #include <linux/module.h>
    0 p( `+ D! i$ y8 t; ]6 d
  26. #include <linux/init.h>
    # z; Z; p" G* y7 g
  27. #include <linux/errno.h>
    / P& h; u% V/ C3 T; v7 X2 y
  28. #include <linux/types.h>
    " V4 u1 L! X8 C" x$ a( o1 Y0 b4 L5 U# ]+ F
  29. #include <linux/interrupt.h>6 d. u( I$ b/ l' I% \
  30. #include <asm/io.h>7 q1 u2 J' ], A' n4 d& O
  31. #include <linux/moduleparam.h>
    5 x, f5 N/ m  `( h8 A) k! }+ Q% E0 m
  32. #include <linux/sysctl.h>
    2 }& w' l) h2 C: j. M, ]. s8 z
  33. #include <linux/mm.h>/ F' y+ a% J2 f* C! `
  34. #include <linux/dma-mapping.h>
    8 g$ }+ A) k% b7 t% ^

  35. , f$ \' ^7 x; w: O
  36. #include <mach/memory.h>
    . J+ a$ W+ D- S6 `: q2 x
  37. #include <mach/hardware.h>
    6 W0 z# h4 y8 r6 n
  38. #include <mach/irqs.h>
    6 G2 s4 g/ Y: ?2 i6 e1 y
  39. #include <asm/hardware/edma.h>
    5 ?' o/ c: Z) e7 B6 }5 L4 B
  40. " _& r" p) S: r4 o
  41. #undef EDMA3_DEBUG
    5 Y9 Q$ ]% m1 {3 Q
  42. /*#define EDMA3_DEBUG*/
    . c2 |) s& x/ ?6 z" A9 }
  43. : @" [# }7 V. f, G: s1 c/ m  Y
  44. #ifdef EDMA3_DEBUG5 ^9 v% G+ u5 @6 ]' u1 V
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    3 b, L& e& {* d' s
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    9 t( V5 G' D6 y
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    ; |7 N2 L9 ?; Y9 ?9 w4 w0 L
  48. #else/ X& j& l3 N% G) Y
  49. #define DMA_PRINTK( x... )5 Y# j& Z  \! b5 r: ]) ]/ s2 y
  50. #define DMA_FN_IN  P& m# k) h+ B; v  T# G: I- B
  51. #define DMA_FN_OUT2 ?8 i5 P( e) h4 P' y, V
  52. #endif
    $ k9 s6 m8 P- _7 k8 d3 v  W) T
  53. ( o; x5 k. E, x% h9 U- Z
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    ) G$ Z3 `: a0 e7 A+ e; v# W9 t1 d
  55. #define STATIC_SHIFT                3' O# z- z. z! }: Y1 e
  56. #define TCINTEN_SHIFT               20& q- u) a! ?- K# b2 i3 w. w0 B4 X
  57. #define ITCINTEN_SHIFT              21/ W% h; Q) y/ ^
  58. #define TCCHEN_SHIFT                22
    " C) @7 @" C: }+ J0 u4 c* B
  59. #define ITCCHEN_SHIFT               23
    9 f. \8 T: v( f, Y$ d. G8 O6 R

  60. 2 {; ~/ r% H6 U0 y3 P& a
  61. static volatile int irqraised1 = 0;$ p+ y1 c$ t' g5 y6 b
  62. static volatile int irqraised2 = 0;0 W, u( E! @7 V: X/ }6 J* A! S

  63. ; f5 K0 O: C. @
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);! Y" k; s+ Q- v  E/ s$ f- S
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    7 ~, i% e, `3 }! s
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ' L; i' V. F! q  q

  67. * K" ]! b- e7 H3 f0 @5 h" |& k; G9 E
  68. dma_addr_t dmaphyssrc1 = 0;; I/ L4 P) V9 O! G# r
  69. dma_addr_t dmaphyssrc2 = 0;
    1 J3 d, r* B* ^7 V  |
  70. dma_addr_t dmaphysdest1 = 0;  a  V9 H1 o) h. X+ r
  71. dma_addr_t dmaphysdest2 = 0;6 }. G- W; `; w% t" _1 b

  72. , a5 U$ {* k; M5 B/ A0 r
  73. char *dmabufsrc1 = NULL;
    - T) p# B  D' A" m, N
  74. char *dmabufsrc2 = NULL;
    " Z. X! \6 g/ k7 D" W& g) d  g2 E
  75. char *dmabufdest1 = NULL;6 O% r5 d  A8 B; o* J" o$ d
  76. char *dmabufdest2 = NULL;! e4 [' Z9 O% M" O( R
  77.   t7 }3 `4 B# L4 ~6 g% Z7 n
  78. static int acnt = 512;
    ( m) A, ~% r# ^( F/ X, q. T4 d# \. z* r
  79. static int bcnt = 8;
    / k  t9 `0 `6 \1 F0 V. J$ H5 T' z
  80. static int ccnt = 8;3 {9 _+ X: U' p1 m/ E
  81. & d9 }( u: B" R1 b  [; O
  82. module_param(acnt, int, S_IRUGO);
    8 E/ j, U! ?; r- b6 \
  83. module_param(bcnt, int, S_IRUGO);- m- y0 {, y6 f  H. J, e' u
  84. module_param(ccnt, int, S_IRUGO);
复制代码

- X( j# f' P4 Q5 L; n/ d5 r5 ~0 z2 v7 R0 F2 Q0 R8 ~6 X' P
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
0 L9 u( V  s4 o* ^! W* g2 Yarm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
( u* ]' ?5 Z9 z3 ~5 @, l( `     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。& g# i2 f( G8 z2 K2 G% L$ y& j

7 C  D) `7 b: s4 [: h; t( u
# F# W6 z7 h9 Q0 h6 K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-3 22:36 , Processed in 0.038931 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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