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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
! C% j# ?' Z  `3 i. u: O
  1. [code]EDMA sample test application4 L% \- L0 |0 P& P7 K7 K8 {
  2. /*
      S, s  [( @- l$ m2 t$ u
  3. * edma_test.c
    0 R6 N8 B! j' }% g! @& d
  4. *) J4 K  q3 c5 t9 g% r( C
  5. * brief  EDMA3 Test Application
    0 k0 ]$ y# `8 F: b: s
  6. *
    ' Y. x/ p' ~0 V3 F% M( f4 m
  7. *   This file contains EDMA3 Test code.5 f: A+ E! R1 }1 X  ^
  8. *
    % h/ o' G! n: v5 Z
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    9 k4 D, M1 Q7 h) K8 G" {8 h( L' \. M
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    - S8 v* o) T$ I3 Y. r+ E( u$ t
  11. *         TO CHANGE.
    : n, {# Q0 B+ x7 Y) a' N) Y, Q
  12. *
    8 @) E: ^8 a) {' l" A
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/- d* L! \3 r5 V& G7 i) {& V
  14. *( W+ u7 p, J0 u; j+ Z$ |. R
  15. * This program is free software; you can redistribute it and/or
    ! c1 h  Q0 h8 v* j% |" p' l
  16. * modify it under the terms of the GNU General Public License as: o& V# g' \6 W" \4 X
  17. * published by the Free Software Foundation version 2.* v( u  O7 v+ y5 d2 o
  18. *
    9 }3 t5 T. a" S/ V! s
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    / ^( G9 f3 ^& k- n
  20. * kind, whether express or implied; without even the implied warranty# o7 M1 L0 @, ~3 d3 N$ M
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    * u& l% V/ z* ^2 |, s; Y, x) j
  22. * GNU General Public License for more details.
    $ {. {3 d# U2 N
  23. */1 Z. f9 H) b8 w9 a& u5 E

  24. $ g8 W& h9 J" I6 y  v
  25. #include <linux/module.h>
    $ W3 k  X7 r$ \  w; D8 q" S2 C
  26. #include <linux/init.h>
    4 o8 U1 F$ S; r9 C
  27. #include <linux/errno.h>
      [* q  Y( @2 c) t- O9 \
  28. #include <linux/types.h>
    9 w1 X; z0 r! C, Y% P
  29. #include <linux/interrupt.h>& r; c. g' V. y* ]" C
  30. #include <asm/io.h>
    / ]; P. P8 u3 V- m  K) L4 T
  31. #include <linux/moduleparam.h>* @% b! M) p" Y- ?: r6 |
  32. #include <linux/sysctl.h>- L7 H' \$ `' F2 x/ x! H( Q
  33. #include <linux/mm.h>4 Z  t+ B- N$ n$ o2 c! ?. d
  34. #include <linux/dma-mapping.h>
    ' P3 |$ N: z) n% \5 U; N

  35. 6 Q9 V5 y# A: _, W- i6 R0 `
  36. #include <mach/memory.h>
    4 w$ u4 B% A( ?% Z1 P
  37. #include <mach/hardware.h>
    2 t- r0 r1 X# }5 U2 u1 ?2 H* r
  38. #include <mach/irqs.h>
    # j: B& Z+ i, C: V, i2 f+ L9 ]
  39. #include <asm/hardware/edma.h>* }7 K' W7 F" s+ ~: l4 H0 I* ]9 D

  40. ; y# Y2 R. [' X2 b
  41. #undef EDMA3_DEBUG  V) ~# y) R3 F3 D- ?
  42. /*#define EDMA3_DEBUG*/
    & Z& K9 w3 f; C6 q# j" ?- n' J
  43. * ^7 Z; r3 b6 C8 e) i/ ?. d
  44. #ifdef EDMA3_DEBUG
    8 j. h' v* |) V6 j# R% y- K
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    9 N& Q1 U- i4 e! S' F
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)$ g% ]2 J& ~- x/ r) E
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    + z* f+ a+ }4 B% \' z; P% i& a
  48. #else$ \2 q5 W. y. Z" @1 R/ Y/ V3 Q3 c
  49. #define DMA_PRINTK( x... )% [: `) }1 v( _0 j
  50. #define DMA_FN_IN
      c; K3 y0 p' i8 ?
  51. #define DMA_FN_OUT
    2 J9 d) F5 N2 }
  52. #endif% E6 n4 U1 [$ e0 i+ o8 w

  53. 9 ]. K7 T# b& L/ W) n
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    ! P6 @- ]# f0 I/ @$ X! D
  55. #define STATIC_SHIFT                3
    . m: m; L* Z  r/ v! ?
  56. #define TCINTEN_SHIFT               20
    8 c% C7 X1 e4 Q0 V- x  i
  57. #define ITCINTEN_SHIFT              21
    * O; |/ h0 {) {# w, z; k$ N
  58. #define TCCHEN_SHIFT                22
    / A3 M: p# r) {( A- p* O, K
  59. #define ITCCHEN_SHIFT               23
    + I- R9 j0 Q6 Q  A( V
  60. + K2 j; v+ F8 G' y
  61. static volatile int irqraised1 = 0;" h' A5 I6 v$ O: o( w- b4 c5 P
  62. static volatile int irqraised2 = 0;
    1 d2 X5 C. w* U' O7 Y2 S9 m2 h/ m
  63. 4 w; `4 `: w. L' d) ?: H' s
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    . t- a( B. h: D$ M3 x3 w
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
      m4 q& I. G2 b
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    7 l: i2 a& K0 @$ }! }6 i

  67. 1 z5 p/ _; F# b! X- Y9 z5 ~$ J" G. b
  68. dma_addr_t dmaphyssrc1 = 0;* l6 F4 B) f% k- l/ Y  K+ D
  69. dma_addr_t dmaphyssrc2 = 0;8 d7 k8 p# _4 Q$ F
  70. dma_addr_t dmaphysdest1 = 0;. X6 R+ T# w4 U: R& F
  71. dma_addr_t dmaphysdest2 = 0;
    1 t$ ]" @- L, [  l# h3 p  }- p  A1 ^3 O
  72. , U( U  @5 C* U/ h
  73. char *dmabufsrc1 = NULL;& o: c) p: `! l! ~& W3 D( S6 v
  74. char *dmabufsrc2 = NULL;- b% e+ h9 X) h
  75. char *dmabufdest1 = NULL;# @5 L3 v: \$ D( g) Q
  76. char *dmabufdest2 = NULL;
    7 f! P7 h* ^# b) X% I5 _4 k
  77. 0 z8 q4 @4 ?% f
  78. static int acnt = 512;
    7 t  q, ]4 e$ l3 d) x  o
  79. static int bcnt = 8;" [% S+ b6 ?+ d7 f& Q3 x3 N1 i
  80. static int ccnt = 8;
    / V# n( B+ M, ?# x  g" m& t
  81. 4 m4 A3 i9 e  Z( b  ?% `
  82. module_param(acnt, int, S_IRUGO);
    5 D3 g0 m6 ?: j7 k3 \  l
  83. module_param(bcnt, int, S_IRUGO);# F" F) W' ^. I" \# ]3 c
  84. module_param(ccnt, int, S_IRUGO);
复制代码

+ S! t. C. c/ z9 ~; ?
6 W; @3 n. q9 o  N( l) g4 L      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用, y7 y+ s$ R: e5 J5 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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
  V" t- y% b4 C2 k2 U& [     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
) U; l) c- o4 @! `1 x: H; `4 E9 `: \6 j

; W) U6 `4 U( T0 X# G* I0 {9 c2 v1 X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-7-22 12:35 , Processed in 0.041008 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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