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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 . T* D. p; C4 u' B  M# w/ {
  1. [code]EDMA sample test application. p5 J, I" N$ A2 o
  2. /*8 j( m3 `2 v/ V  Y$ A, y6 M* C
  3. * edma_test.c" d" L) ?- p* m( x6 W* `: M7 w
  4. *
    7 W9 N/ E. h. J, X: C8 B
  5. * brief  EDMA3 Test Application
    * X# U. |# e7 C1 d5 V: X4 A$ W1 z% r
  6. *- O* ?9 y7 ]; b  {4 f3 q0 x
  7. *   This file contains EDMA3 Test code.: m) z' J5 E3 q: S$ i
  8. *
    5 n8 V4 @+ g* E7 G+ _+ }3 o6 F
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    # Q' p& P' h; J
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    $ F% o; l: o! G8 p. R. N" ?7 q3 K
  11. *         TO CHANGE.: u$ N0 e5 Y# A/ L8 V/ Q
  12. *7 h6 }/ ~9 V2 _  C! g9 F! k" o1 g% I6 L
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/3 e: m7 e5 F  U* U4 {3 q
  14. *& H" H& B" d  L# X7 U# Y
  15. * This program is free software; you can redistribute it and/or0 i" y- S  A; @" @! W. V+ F. L: R
  16. * modify it under the terms of the GNU General Public License as
    # f# p/ h: Q+ c) g/ R5 z2 n
  17. * published by the Free Software Foundation version 2.6 P- y+ }9 a/ [  m' l* y# ?4 h
  18. *
    ) |' O. p) F$ e- O
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any  t0 T/ H. x- N' h
  20. * kind, whether express or implied; without even the implied warranty" F2 O- t3 n, c, ]( |4 {/ e
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the, j7 [! g$ i9 @( K
  22. * GNU General Public License for more details.# M% x- V: E1 E
  23. */
    3 p" f! }: `  G5 T, Y- Y

  24. ; _  K. Z" k  u$ I! j' A
  25. #include <linux/module.h>7 I% S2 P( C( O; S" w& W- P
  26. #include <linux/init.h>! E. O' {. \' Y3 G
  27. #include <linux/errno.h>
    * d- Y6 {& b3 b( {+ k/ C
  28. #include <linux/types.h>: G+ h: h6 A7 S4 t
  29. #include <linux/interrupt.h>
    1 m8 S% C- x2 ]
  30. #include <asm/io.h>( }* ?# S; r, f$ G, G% F
  31. #include <linux/moduleparam.h>
    ( r- N1 f) @+ o4 i
  32. #include <linux/sysctl.h>
    - K3 n9 K2 k% ]9 W7 Y
  33. #include <linux/mm.h>
    ) K8 s" ]0 V$ d" ]6 S
  34. #include <linux/dma-mapping.h>
    ! H, z9 l9 Z- v2 w2 s( X% ^
  35. $ W# [6 d; c+ }
  36. #include <mach/memory.h>+ H. g8 u: s+ @# S
  37. #include <mach/hardware.h>
    % s, W' q& P: `& [" L
  38. #include <mach/irqs.h>3 b3 b3 F* R  c9 T$ Z6 s1 _2 i
  39. #include <asm/hardware/edma.h>
    ' A1 C4 Y) D  y. c

  40. 9 \( z( [3 J+ b+ \2 u
  41. #undef EDMA3_DEBUG, f0 }2 F/ h3 e0 v% A
  42. /*#define EDMA3_DEBUG*/
    ) \" l! d% v5 Z+ V- l" J! ~& K
  43. ) H% G/ S* F2 E* y" D( X, k
  44. #ifdef EDMA3_DEBUG
    ' \7 d+ z1 C% C- w$ g( E! Y% P- e" P
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)/ @8 e# ~" P' p
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    ' [% ?/ l8 Y& ?
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)8 _3 o1 C, j7 {9 {
  48. #else( @. y# j! r1 \$ i
  49. #define DMA_PRINTK( x... )
    & X+ ?& y3 Z4 t/ i
  50. #define DMA_FN_IN2 C2 K. P1 ?/ j+ W/ @$ A# h
  51. #define DMA_FN_OUT6 O* v2 g" f+ v: h
  52. #endif
    . i4 i7 [: p3 j9 [* H9 d! |# d

  53. 1 \1 y$ \; Q, _, t1 U. u
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)+ f, y6 z& L4 u- U
  55. #define STATIC_SHIFT                33 u5 L5 B; t7 b1 W) l
  56. #define TCINTEN_SHIFT               20
    " Z/ x$ ?/ w7 \
  57. #define ITCINTEN_SHIFT              21
    . l& h5 p  m( U- G# e; H
  58. #define TCCHEN_SHIFT                227 T! q" M2 U' ]$ s. @! R  l
  59. #define ITCCHEN_SHIFT               23" c7 n- M3 I, m* T7 J

  60. , A+ G' X7 a- V! `9 o4 p; t
  61. static volatile int irqraised1 = 0;
    $ k- H  ?. `3 r! @
  62. static volatile int irqraised2 = 0;
    - ?8 d: m. q5 e
  63. " S6 ?2 ~( m" h4 t
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);& I9 T4 K" h1 K
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    5 y  z/ E9 [) V2 \* u8 ^3 h7 G
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    * y3 U& F$ {2 D+ Z% _
  67. $ `1 k, g6 {: D; M) D3 [+ z& g0 s! H
  68. dma_addr_t dmaphyssrc1 = 0;
    ) ~+ q' K, ^! q# T9 R
  69. dma_addr_t dmaphyssrc2 = 0;
    9 b) D: T1 a) ~8 S5 ?4 P
  70. dma_addr_t dmaphysdest1 = 0;& T# }. f/ x8 S9 a1 G9 S
  71. dma_addr_t dmaphysdest2 = 0;. Z3 J: \* i9 B* m7 C
  72. + ?- J* @% R: p  v
  73. char *dmabufsrc1 = NULL;
    2 D0 e: [) K! x
  74. char *dmabufsrc2 = NULL;
    - G& z# n' ]5 V' N
  75. char *dmabufdest1 = NULL;. b# s3 u' H& `
  76. char *dmabufdest2 = NULL;
    ! i. `2 |% l+ A+ X% L

  77. 9 }2 P% O; _1 _! f! R1 |) x+ k
  78. static int acnt = 512;
    9 z4 c8 M1 u/ h8 m6 T
  79. static int bcnt = 8;
    - a8 J3 ?) l/ M
  80. static int ccnt = 8;2 n. \7 n  b. X- d: w& ?

  81. " s" O* @6 `$ W% W! ^
  82. module_param(acnt, int, S_IRUGO);
    , O7 D" m  `/ {) z, `! j. a
  83. module_param(bcnt, int, S_IRUGO);
    ; |4 X$ e" S  U5 s% V2 Z8 R" |
  84. module_param(ccnt, int, S_IRUGO);
复制代码

. w$ {7 Y% a7 n$ D
5 \9 b+ s) m7 H" Y) U2 G5 U# _' y      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用; V1 t' `' y4 j( b
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。+ g- t4 d* S. z8 O6 {/ `" b- X+ H
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
( l% a, I& }' g/ u" J! s+ y) r) H( u% F
% ]; H2 o5 Q6 a# c; g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-20 21:56 , Processed in 0.040295 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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