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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
4 ]4 h  a) k9 r' Z3 ^9 r5 [3 {
  1. [code]EDMA sample test application
      r) ]) {# `4 o; \
  2. /*' m# v( e' Q6 n; L5 |6 ^& V+ A9 d
  3. * edma_test.c, `6 C/ N4 m! w7 v& M' z( G" y& n9 M
  4. *
      E% x" R' S, i" J7 s+ t
  5. * brief  EDMA3 Test Application, L% }6 h/ I( l* |3 T* Z
  6. *. Z; h1 S! T* n0 _
  7. *   This file contains EDMA3 Test code.
    4 e' @$ u$ o' ~$ `
  8. *2 S: V5 B: d9 {- y* _9 Y
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE' B/ S( ^% B4 U8 |; R) t: |
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT2 ~8 o, k9 O9 B/ D  k: E
  11. *         TO CHANGE.) {- E; V4 w, Y6 _1 V) X/ s/ m
  12. *
    1 f3 ]! S1 L6 U  n/ |! x* |
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/; M8 T0 b3 x) ]4 x* q! O
  14. *
    4 D: F4 }4 v, z+ B' e
  15. * This program is free software; you can redistribute it and/or6 m; |! S- X( o7 o1 g
  16. * modify it under the terms of the GNU General Public License as
    ( S+ P, x# Z1 q( k+ z
  17. * published by the Free Software Foundation version 2.
    5 u9 I. B' `& {, C
  18. *; V8 w9 \& P+ `7 A$ p- S# d  h2 o3 @1 o
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any4 U. y1 x- a4 d
  20. * kind, whether express or implied; without even the implied warranty5 V  x1 V1 |# f% Z% l0 C% T1 L; e
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    * C+ A3 ?; x) S( M* T+ @# M
  22. * GNU General Public License for more details.  d! X+ O0 @4 {- v
  23. */" u0 |3 p& s+ L4 \2 S3 `
  24.   X0 e$ M# w2 _9 P  O
  25. #include <linux/module.h>1 h1 P' s2 B, U) J
  26. #include <linux/init.h>
    . u' S# J( d' {+ ~
  27. #include <linux/errno.h>
    9 T6 T/ W+ k" L! [/ Z
  28. #include <linux/types.h>' _0 G; u+ y2 P2 H2 S
  29. #include <linux/interrupt.h>0 `2 r# q! e5 X) }" R  B# q
  30. #include <asm/io.h>
    - k: A9 ^" R# N$ _2 c1 ^
  31. #include <linux/moduleparam.h>
    ' t! Z( c9 X# T8 w* p
  32. #include <linux/sysctl.h>  Q: Q& t: g9 o+ T, R% [
  33. #include <linux/mm.h>
    0 U/ z. x6 m! Q- g
  34. #include <linux/dma-mapping.h>9 d' `; ~* f& I& F

  35. - g. r1 c) S( H! V- k/ {
  36. #include <mach/memory.h>2 A& W! U. ]; W9 Q' ?" D  \
  37. #include <mach/hardware.h>$ Y$ Z# a4 D9 g+ y
  38. #include <mach/irqs.h>: J+ \# y/ ]! C* w9 l/ l8 d
  39. #include <asm/hardware/edma.h>1 j0 `0 v, [. F

  40. ( v7 d; \% y( f! c& j2 ^
  41. #undef EDMA3_DEBUG
    5 j( h2 Z0 t* J3 b/ ~+ S' J# Q
  42. /*#define EDMA3_DEBUG*/
      w9 ^0 a/ h  v# Q# W) M

  43. : e9 m8 H+ Y$ I0 _, ]; s
  44. #ifdef EDMA3_DEBUG: U. C) `+ }7 }' ^: S2 \/ |, |
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    3 N% H% g( q& S$ U7 ^
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    ( }7 E2 T" Z( @
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    ( I$ n; i: V/ R, \9 K
  48. #else
    & d% B4 P( [& `% S% a% [, v" G
  49. #define DMA_PRINTK( x... )
    / R. F: o+ k' q/ X
  50. #define DMA_FN_IN$ }! [7 ^+ v. Z8 {! _/ z: ^
  51. #define DMA_FN_OUT
    1 {, b* S: W0 D+ F* ~& u1 F( U! c$ |
  52. #endif0 w+ H' W: A0 Y! M' e5 D# X: h8 [
  53. 8 C. k' ~, [" ~3 r+ e$ D2 u3 \! g+ a
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)6 l; S9 h3 K( Z
  55. #define STATIC_SHIFT                3: `/ x5 |5 v$ l* e9 ^
  56. #define TCINTEN_SHIFT               20; ?9 J4 W, f+ n6 ]5 v
  57. #define ITCINTEN_SHIFT              213 x3 s3 x% V: F( r+ ]
  58. #define TCCHEN_SHIFT                22
    . c7 A% C& @: ~5 r
  59. #define ITCCHEN_SHIFT               23
    / D/ i, u" E( o1 j

  60. : c% ]: g0 {$ b8 U
  61. static volatile int irqraised1 = 0;# T, l1 q7 o0 F4 ?$ @; U, w+ G
  62. static volatile int irqraised2 = 0;
    0 {/ J6 }6 S( E4 O

  63. 2 m; m$ M: p( }9 F; v7 W( Q
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    4 a8 G3 M# U" O
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);/ s; \4 |8 b( C) F
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);$ J& y6 Z- L  j$ R) g4 [) m

  67. ' ?& ^8 w" ?" e, R# r
  68. dma_addr_t dmaphyssrc1 = 0;9 w$ |/ `$ C0 ]) F6 ^% @
  69. dma_addr_t dmaphyssrc2 = 0;7 Q! _" f8 z& u4 n4 L
  70. dma_addr_t dmaphysdest1 = 0;' V+ Q2 Q8 v/ f. K! W+ ?4 p
  71. dma_addr_t dmaphysdest2 = 0;. f8 ^2 x' y' }: v2 @1 t6 G( u8 V

  72. . b# H% ~$ O' N
  73. char *dmabufsrc1 = NULL;
    : t) B& d; D2 H' h, j! `3 o
  74. char *dmabufsrc2 = NULL;  s3 Z9 O- k( f, n9 e7 v: g: ?
  75. char *dmabufdest1 = NULL;" {9 ~  _# k  d) n' z2 M3 ^
  76. char *dmabufdest2 = NULL;- _$ \: O& M; Q9 b8 \- \: {( h
  77. 2 ?* \5 k- V) J8 W# v
  78. static int acnt = 512;
    $ y8 p: r; |$ H# t" D
  79. static int bcnt = 8;7 y) J5 a, ?8 l! P
  80. static int ccnt = 8;2 s( s! r# r8 V1 [- _0 \
  81. - s6 x8 I  X, l
  82. module_param(acnt, int, S_IRUGO);
    6 [5 P" r3 C6 h, ]
  83. module_param(bcnt, int, S_IRUGO);5 y# K, E/ @4 E/ h/ @3 I4 T, x
  84. module_param(ccnt, int, S_IRUGO);
复制代码
1 f% K1 X: B9 f
' j5 J- J+ J% ~; Q9 ?6 L
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用- M+ c' _! f. 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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。! q& ]- }' @' S. q8 O" ^
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
' l: ?' Z' A2 d$ R# T" D1 |8 y3 U) f% C$ b9 g% T; n5 [1 h
0 {$ U; G3 T6 E1 D0 y2 u. |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-24 23:52 , Processed in 0.040965 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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