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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑   ?& |0 ~# i9 d0 \1 C& ^. w% D
  1. [code]EDMA sample test application
    4 W9 U" y( O; F9 ^
  2. /*
    . Z! d0 _! N0 a' K+ e# e* s
  3. * edma_test.c; E3 f( a  u( Y( v. [
  4. *
    : w& S( a8 d6 \) Q/ W0 D& L
  5. * brief  EDMA3 Test Application, p) T9 M) u9 g- a
  6. *
    " r1 J7 R& u% g1 ]2 I9 y
  7. *   This file contains EDMA3 Test code.
    / q; p7 ~% \0 @
  8. *# G- H, z! \1 g0 r( P" t: |
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE% q( ^5 i# e4 a  Y0 h' p
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT# w' h4 {  q# I' {+ ?4 l* s
  11. *         TO CHANGE.6 H3 [, S2 l# q. q3 o
  12. *7 c: R# }2 c) u* @  Q% I0 s- m( ^9 T" L9 U
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    9 N& g6 M& q  U( K7 F: I. M7 L
  14. *
    2 r2 H8 D7 o4 q: e$ d: R4 w: I
  15. * This program is free software; you can redistribute it and/or0 T5 l1 b8 F& x. K
  16. * modify it under the terms of the GNU General Public License as
    ! y$ p, g7 a! N- H' K+ _
  17. * published by the Free Software Foundation version 2.
    # r5 |  `" @" m- A
  18. *6 e) _+ Q& s, T0 P( T) |
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    9 z) O5 F* C& |1 @/ ]
  20. * kind, whether express or implied; without even the implied warranty
    2 o) B7 B+ y* J$ {
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the* J( B  Y% K; u+ a9 u0 q: C
  22. * GNU General Public License for more details.$ u* B4 f* w# f3 Q% b2 W# u
  23. */
    , F( }& j, e& ]3 w/ X; w9 ]9 ~

  24. % x0 W- \9 {% Q+ r8 ?% s3 s1 g
  25. #include <linux/module.h>
    9 A/ ~  m. N5 _7 k7 Y6 z- b
  26. #include <linux/init.h>2 z( s" n) h$ h4 x" C2 E: V
  27. #include <linux/errno.h>8 g$ v% A$ k) k8 H% n# x7 G
  28. #include <linux/types.h>5 _8 L- T# B) |
  29. #include <linux/interrupt.h>
    0 j2 L% B0 T# s/ k6 q
  30. #include <asm/io.h>
    $ O+ A1 d+ E9 i: w. D
  31. #include <linux/moduleparam.h>) l; e6 u8 k3 g5 q% y/ I3 u
  32. #include <linux/sysctl.h>
    2 u; s# k6 ~3 ]1 j/ I
  33. #include <linux/mm.h>3 i- P7 T0 j! m
  34. #include <linux/dma-mapping.h>: C$ [: e# _. s; k
  35. ; }, B% k& q$ F+ s
  36. #include <mach/memory.h>2 V+ c, v6 J1 o4 V1 \
  37. #include <mach/hardware.h>
    ; p3 [+ d3 R. {( y: ]# z4 U
  38. #include <mach/irqs.h>0 E  A! M; i/ r# t
  39. #include <asm/hardware/edma.h>
    & j4 K" c. e& \% w! a0 l1 [6 v
  40. / }" ]  r4 |9 s( X4 j
  41. #undef EDMA3_DEBUG0 q5 ~% A* F% z. j
  42. /*#define EDMA3_DEBUG*/
    : s% a$ |* F0 l

  43. ) S6 J- H0 J$ d2 K
  44. #ifdef EDMA3_DEBUG
    7 z; q/ t2 X. Q, V
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    * ]. w! C1 y8 t- e6 r
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)4 [2 A+ A9 |4 g
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)) y9 ?9 O7 _( V3 |  ?
  48. #else! I, B0 U0 ?, [, a; a) [, I
  49. #define DMA_PRINTK( x... )
    - V9 s% Z9 ?5 K1 v6 u6 A; u
  50. #define DMA_FN_IN4 D$ ?1 L' s. F) x8 ?: V. W, N2 M
  51. #define DMA_FN_OUT* k4 \, j$ Y% y7 }
  52. #endif
    1 h7 b: N5 K6 ]
  53. ( m3 |2 u" q3 g2 n  h7 V
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)2 \: f- ~3 k8 Q8 j
  55. #define STATIC_SHIFT                3
    : \# _0 Z2 L3 k. y) {" R
  56. #define TCINTEN_SHIFT               20
    ( c% C) z' s% [8 Z6 @$ v) [
  57. #define ITCINTEN_SHIFT              21
    ; k# R; }' F* \4 @+ p7 }- u% E
  58. #define TCCHEN_SHIFT                22& N2 U; W: ]; z  p8 `
  59. #define ITCCHEN_SHIFT               23
    * o' g, l; y( s, ?$ M- O
  60. & j5 o7 v; d% g
  61. static volatile int irqraised1 = 0;
    % m: B0 h: l) O6 U  f
  62. static volatile int irqraised2 = 0;
    1 [' O8 s+ O- c
  63. " ^! l+ Z" G  D1 c
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);- _1 e5 Z2 W8 b  k
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);- m; a1 E$ G3 s' E9 @
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);% ?% _: d/ |. ^6 s" Q( B

  67. * T$ n# I, @. s* c( C( H! F
  68. dma_addr_t dmaphyssrc1 = 0;0 t- ?( T- g5 W/ [9 m
  69. dma_addr_t dmaphyssrc2 = 0;
    * Y+ [0 g6 x! R5 a* O
  70. dma_addr_t dmaphysdest1 = 0;+ J8 E$ o" J; A: h* g. O0 v- [
  71. dma_addr_t dmaphysdest2 = 0;
    3 ?; T4 T+ ^' U  W; U

  72. 6 x1 k+ H) E, S* E$ Z$ C
  73. char *dmabufsrc1 = NULL;+ R! V) p& ?! N- l" ?
  74. char *dmabufsrc2 = NULL;$ p! @- w3 c$ Z
  75. char *dmabufdest1 = NULL;
    ' L9 {9 N/ s7 o7 |3 W
  76. char *dmabufdest2 = NULL;) y0 O0 ^6 i0 P- t- p+ `

  77. ' X# W' s6 y9 S8 z
  78. static int acnt = 512;
    ( v* v  v! ?8 s  C
  79. static int bcnt = 8;3 I9 _5 f, H  k" W
  80. static int ccnt = 8;
    % @: h2 @! W* s$ x
  81. 9 K6 ~2 g! d5 c* @: I9 t
  82. module_param(acnt, int, S_IRUGO);* B) W$ D4 O2 {$ g' Q& V0 n9 H1 z
  83. module_param(bcnt, int, S_IRUGO);
    * L# p& ?; B& v! p+ ?
  84. module_param(ccnt, int, S_IRUGO);
复制代码

6 k* m- Q  B) i; p3 W3 c  M( w  L: @) f
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用4 h" w0 D8 b, G, {$ o2 y( `# O
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
0 T; q- b5 ~9 E/ {     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
+ }3 l8 X1 P# [9 s( o* C7 B, U& v$ n/ V- ]1 N' M4 {- Q

" V: q3 W: A; l# @
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-1 20:54 , Processed in 0.046027 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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