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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 $ v! r0 j- i# A6 O/ H2 W" t
  1. [code]EDMA sample test application
    ( T3 f) n/ z6 F; ^  n  f: {( `
  2. /*
    2 q9 c9 y+ f2 c
  3. * edma_test.c
    9 b  H) N% F) ~  }' H9 z( f% v
  4. *9 s$ T. ]9 o( I/ Z' @% W! v4 J
  5. * brief  EDMA3 Test Application6 h" l9 L3 j/ b9 }" p9 p# e
  6. *
    / K9 }, x" H6 M" s; c
  7. *   This file contains EDMA3 Test code.
    . u3 h) [0 g# C6 c
  8. *5 k8 X& W/ x$ f$ e
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE# ]/ B/ ?/ e& q
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT5 ~8 q* N& _$ W: W3 f
  11. *         TO CHANGE.
    4 W4 n, c1 j+ a: z& S! Z, T
  12. *% t' A' l" Q' K, C9 S, s
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com// h' D5 x' {1 N( T+ E8 F8 O8 U8 x' k
  14. *% T- r- H4 }7 Q3 v: ^5 h# G
  15. * This program is free software; you can redistribute it and/or
    ! @: d8 Y' K' Q# ]! g# p
  16. * modify it under the terms of the GNU General Public License as
    $ N& f! o0 A& b# |- x
  17. * published by the Free Software Foundation version 2.
    : \% R# R& ?) `5 @; j. M
  18. *9 k# o' j4 v- c
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any% ~7 ]) Q) Y! R# @- C
  20. * kind, whether express or implied; without even the implied warranty
    5 i' P# X+ F) R6 i' [4 y
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    6 }& W. @9 j$ o$ N, _& K: y+ t  u
  22. * GNU General Public License for more details.+ e4 J) r' Z4 I/ P1 j8 Z  J' ^
  23. */+ U0 n& T* Y% ^+ D% n- q

  24. % n* L) Z! C8 O  a
  25. #include <linux/module.h>
    & X6 e7 a9 \7 i4 k5 l: K+ {
  26. #include <linux/init.h>3 S" Z. ^4 I9 Z( A
  27. #include <linux/errno.h>
    7 v* {5 k, O9 W" Q# i
  28. #include <linux/types.h>; Z5 l3 G+ {1 E4 n: q. r' N
  29. #include <linux/interrupt.h>
    . ~5 |& B# j; u* R
  30. #include <asm/io.h>2 a8 |5 T" u$ P7 G/ M  ?
  31. #include <linux/moduleparam.h>0 \/ z+ D" _# m2 f7 o/ u
  32. #include <linux/sysctl.h>5 z6 Y' r" c; L  t
  33. #include <linux/mm.h>
    $ n# Y! a* z1 f7 t
  34. #include <linux/dma-mapping.h>
    . J+ N3 `/ ]( e0 c, E$ H

  35. 8 x# b, I) p+ `  ~% ~# T
  36. #include <mach/memory.h>* T* l0 N& Q$ a0 I7 f
  37. #include <mach/hardware.h>: {' n$ j2 \4 G/ ~( Z3 m- C
  38. #include <mach/irqs.h>
    * o4 T4 I4 K8 q# S3 {  A
  39. #include <asm/hardware/edma.h>4 _/ g) Q/ W. M. x

  40. - ~! {# }" s# r5 Z* k
  41. #undef EDMA3_DEBUG; D; w0 ^) M: j4 S
  42. /*#define EDMA3_DEBUG*/
    ) }+ j, l, B) L! `* V8 i. c' F

  43. , S( G; ?4 G. N* s0 g9 J# l
  44. #ifdef EDMA3_DEBUG" v8 t4 h% z- E* e) ^- W' L
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    % `5 u% W) ~* Q
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)$ g- y8 N$ `; b2 z4 ?( V7 N% u
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__); H) w, v2 S! f0 `7 _
  48. #else
    0 Z* L6 o0 I! O7 Y* L" x! N) Y" t
  49. #define DMA_PRINTK( x... )$ G% N' C0 J% B) ^$ O3 o
  50. #define DMA_FN_IN
    $ d4 A  g5 A  `( m. B/ \- {; D7 N! h
  51. #define DMA_FN_OUT
      F) K7 g% r# V2 u' \. W
  52. #endif5 T1 u! V  e' l: T9 }

  53. " y4 G3 K# i5 f/ ^3 e
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)% f2 s) J5 b2 F5 Z3 s
  55. #define STATIC_SHIFT                3' O1 T0 y6 |. v1 {
  56. #define TCINTEN_SHIFT               208 u) N1 S) x9 Y1 T7 A; L, o
  57. #define ITCINTEN_SHIFT              21$ }; b- I9 {) f0 K# v
  58. #define TCCHEN_SHIFT                224 m' c' m6 y, |" i
  59. #define ITCCHEN_SHIFT               23
    * z3 j2 E, ^4 G$ ^- c. a

  60. 1 Y* S7 S8 V3 T, v1 n
  61. static volatile int irqraised1 = 0;
    0 _6 B4 U5 u+ B
  62. static volatile int irqraised2 = 0;2 ]' k2 \6 r! m( A; ?

  63. # |% w. z9 M% M, [. }6 U
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    $ a4 [( Q. p+ @; w' C
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    0 e) ^# B% y0 M$ F- ^: E
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
      K# u- D# ]' \) |7 D% b
  67. 8 h: [$ p5 O1 I1 |, N
  68. dma_addr_t dmaphyssrc1 = 0;) @) L  P: n/ t# t: d% n
  69. dma_addr_t dmaphyssrc2 = 0;9 e. o9 t6 b8 e$ r
  70. dma_addr_t dmaphysdest1 = 0;$ B: v/ z; X3 t" b  g( [- W0 O
  71. dma_addr_t dmaphysdest2 = 0;; |0 A# @7 b3 G  {( i% t

  72. ) v, z% `2 G! j, {5 c) m
  73. char *dmabufsrc1 = NULL;- l$ E' n: n. C; n- h% x0 `, x
  74. char *dmabufsrc2 = NULL;. j! S9 q$ ]; K
  75. char *dmabufdest1 = NULL;
    # H$ f" `, P0 F- F+ g
  76. char *dmabufdest2 = NULL;5 n: ?7 j8 j1 }( L# a/ u
  77. 8 t" j0 M) s. Y( S! @
  78. static int acnt = 512;; S1 ?; b; v& X' q* \
  79. static int bcnt = 8;# j2 m3 M( }7 f& e. N- ^
  80. static int ccnt = 8;
    * }6 f) N0 n5 u1 I
  81. 8 ^6 ]% {3 l2 W# w6 N; o4 V9 t
  82. module_param(acnt, int, S_IRUGO);9 Z2 {8 ^6 ?1 C/ y1 ~
  83. module_param(bcnt, int, S_IRUGO);
    # m8 ~7 T; N8 ?' e; |5 O* }
  84. module_param(ccnt, int, S_IRUGO);
复制代码
& L% q2 l7 p" M1 @4 `! b- ~  D
4 \8 n+ U& F: G( j; c
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
' }9 M! P# r& P" Rarm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
7 \4 w7 \  T. O6 D% ?' h1 v     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
1 V  A) g2 L+ @6 Z7 R
' X6 a+ U4 _0 ]
, i  x  d. T0 @; x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-17 14:43 , Processed in 0.038163 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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