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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 4 J8 v0 G* @; ]
  1. [code]EDMA sample test application4 q0 g# o; X, Q$ A
  2. /*
    0 g5 G6 I2 e- N0 k5 a
  3. * edma_test.c
    5 t6 ?, C- r( y6 _/ r: C' x
  4. *
    0 }! j, E9 Y8 x! {. m& P2 e
  5. * brief  EDMA3 Test Application
    ; b' A; ?' A( F+ y! i( T4 v) I
  6. *
    ) [. r" |) Y$ ^9 f, [2 u
  7. *   This file contains EDMA3 Test code./ V# L7 I& Y9 D1 H( c# R! h: n
  8. *+ R- ]) n2 t) v: N& C! q
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    0 Q. ~6 p" O6 E! H$ ]  S4 G8 c3 P
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    " u) Y$ }. X& i0 {, l
  11. *         TO CHANGE.8 D+ ?% r& [( ?$ o5 s/ m5 l% D
  12. *
    ( k* ]# P# ^* j# J/ }2 x. |, W# _* L
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    % f& O9 [, i+ p" z* A! @9 q
  14. *. |: v+ n0 H: J' Z9 ~4 `/ ]
  15. * This program is free software; you can redistribute it and/or+ s  \* H; D' z& z
  16. * modify it under the terms of the GNU General Public License as! _1 U- c* ?9 p4 ?
  17. * published by the Free Software Foundation version 2.
    9 ?6 g1 L6 e& G
  18. *
    4 o6 A/ _7 |% T8 R0 j5 ]
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    ; n7 J, ^+ K3 s7 d7 L- J" S
  20. * kind, whether express or implied; without even the implied warranty
    1 @9 x! D' G$ F0 A" c
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    / h# d) C* a% Q
  22. * GNU General Public License for more details.; `& H6 n* E" [2 u% n
  23. */
    8 o- n0 e1 f+ C- ]

  24. . W1 _4 p' y1 N4 U" |
  25. #include <linux/module.h>
    1 d8 U- u7 p) p" H3 a3 \( a
  26. #include <linux/init.h># d  F5 D8 |% F6 y0 N* N
  27. #include <linux/errno.h>; z4 a/ Y; q: W$ b  q: D$ g2 m
  28. #include <linux/types.h>
    - x9 K4 u6 S# g- `) `9 B0 k- G" }
  29. #include <linux/interrupt.h>8 d) a/ a( Z; t
  30. #include <asm/io.h>
    . \" H; q; ]4 H4 B" |
  31. #include <linux/moduleparam.h>
    . `- r/ G+ ~' f- i; {# ]- _4 b
  32. #include <linux/sysctl.h>6 e$ z2 O, m9 ^1 V
  33. #include <linux/mm.h>2 w! ^9 }+ B+ i- k
  34. #include <linux/dma-mapping.h>
    & m3 C! a" H& l+ Z' Z1 _
  35. 0 U( d4 j9 ~% z0 n* e0 o; u7 X
  36. #include <mach/memory.h>
    2 U9 Y( Z/ g5 A5 P# M& c; F0 s
  37. #include <mach/hardware.h>
    1 A) A" J4 H: Q' B' C/ W
  38. #include <mach/irqs.h>
    " @. P1 x" [0 ?8 O: q: l3 U
  39. #include <asm/hardware/edma.h>. u3 C1 {% J1 O, J" n' x9 S1 L% b
  40. 0 S2 r. e( r( u! Q9 j- [5 n! ?
  41. #undef EDMA3_DEBUG
    , l2 I0 p" e; U7 C
  42. /*#define EDMA3_DEBUG*/; ^; Y, N: I" m# \3 Y) ^

  43. + I# A% J) O) }0 k/ h& Q( ]& ~' @8 s
  44. #ifdef EDMA3_DEBUG9 M" D$ h. p( c1 j$ g' m) H
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)3 Q+ J  ]- K5 H8 L  m1 X
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__); Q. x7 G; x( l- b: v6 t& X
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    ' y, Q4 N' C: i
  48. #else
    # I/ p4 T" K3 H. E  |- D) h
  49. #define DMA_PRINTK( x... )0 A% [+ G) v: K$ t0 c) }6 A
  50. #define DMA_FN_IN
    ! m; d7 q% X1 s4 A- G( ~/ |6 v
  51. #define DMA_FN_OUT- Q7 Q! D+ V1 X- D. g. b3 O
  52. #endif5 O5 f* ?1 |" n. G4 D. I+ x" |+ c
  53. . i$ H3 h* m7 N, `
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768). Q5 v8 r& n7 ~" R  x
  55. #define STATIC_SHIFT                3
    / `$ l; S2 ]/ ?" l2 u' A
  56. #define TCINTEN_SHIFT               204 \0 @5 @9 X. L
  57. #define ITCINTEN_SHIFT              219 E5 S' ], p$ J
  58. #define TCCHEN_SHIFT                22
    5 u; E0 W$ _5 A( P3 h' v9 ]
  59. #define ITCCHEN_SHIFT               23( U& c$ a. j5 P  J# y
  60. , p4 U- B* U- T$ |+ a2 T: ~+ @# \
  61. static volatile int irqraised1 = 0;7 M& ]; q7 \6 J' e' E+ j
  62. static volatile int irqraised2 = 0;
    3 a8 X% x) {# w' {2 l  G$ [
  63. 2 h; n$ r; Y% l3 W: [! x
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);( F+ v$ {  t/ ~
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);4 i; Y/ m6 P7 J) x& N
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
      s% X' x2 q+ X/ T8 |

  67. 2 x; E3 e  Y  n  m/ W: r! Q
  68. dma_addr_t dmaphyssrc1 = 0;
    7 e$ o0 Z1 U, W) G$ V
  69. dma_addr_t dmaphyssrc2 = 0;2 y- G1 M' D% T/ R" q6 o
  70. dma_addr_t dmaphysdest1 = 0;2 v" h4 ?. m) K! h
  71. dma_addr_t dmaphysdest2 = 0;! ^3 i& _" Q5 g! y# |8 {

  72. & e! G5 g7 J  }) y
  73. char *dmabufsrc1 = NULL;
      Z% H' _7 |: a% R& Z: J4 y
  74. char *dmabufsrc2 = NULL;
    3 O/ {" i& C4 P0 C
  75. char *dmabufdest1 = NULL;
    - ~: m/ n- Y5 V6 q
  76. char *dmabufdest2 = NULL;
    - a7 y( [4 }" O0 \, a: S
  77. 2 m; ?; I; x& y% k7 t
  78. static int acnt = 512;
    . L* N# q# G3 [  N7 m1 @' S
  79. static int bcnt = 8;# |  Y  @, V. i0 `
  80. static int ccnt = 8;
    8 O9 J8 ^/ d% U1 I6 b
  81. 6 R% [# y% {( L0 N' C4 j- I/ P5 U( D
  82. module_param(acnt, int, S_IRUGO);
    , R5 X5 |2 Q$ K, g5 U
  83. module_param(bcnt, int, S_IRUGO);7 Q  t5 l1 W* ?1 o$ t/ l/ h) y! u
  84. module_param(ccnt, int, S_IRUGO);
复制代码

8 D/ f% F" h4 r$ R% P  l7 w* W! U* Z! Z& W3 b/ F8 w* W
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用( j* R' Z- Q3 G# n8 p; E. V+ d
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。8 h+ M; m- |* F4 }
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。0 \7 V1 G8 Z8 W$ ~! r  b5 Y2 K. u
" E$ ]$ `$ s/ q. S% ~1 X& t/ I

5 z& V. G+ m5 d1 e
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-26 17:00 , Processed in 0.043410 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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