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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 4 s) G/ l( i8 e# M( d1 z* t
  1. [code]EDMA sample test application( f6 o* M  I, u
  2. /*
    ( z4 U6 f2 r+ ~! [0 O
  3. * edma_test.c6 X% }! B: @% J9 e
  4. *# o' d$ j+ j. Y# t  i  {
  5. * brief  EDMA3 Test Application
    $ i3 U' K  f% n  V4 h( @
  6. *
    , |7 e) `: [% j, i% [
  7. *   This file contains EDMA3 Test code.
    & h' S6 a  X! }* V: }
  8. *2 v  ^9 d) O- X% ?+ I& C
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    & d. N  L6 X4 x! S3 n
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    % x5 j% ~: u7 W! g
  11. *         TO CHANGE.' J0 D6 }; [2 y! c6 g9 w* G
  12. *
    - U2 h" B3 h8 ^* m1 O) |' ^
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/, H" L. j# u9 L( S7 R
  14. *8 s5 T% q8 O, H4 F( p- |
  15. * This program is free software; you can redistribute it and/or. R) z( O9 c1 j1 @
  16. * modify it under the terms of the GNU General Public License as; V" [' ], h6 \
  17. * published by the Free Software Foundation version 2.: Y! Y! w# K$ d! B" O% F
  18. *$ c; n) D. v* o8 L
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any$ _3 P8 B1 _+ ~9 R$ x$ }
  20. * kind, whether express or implied; without even the implied warranty  }; q( e# E/ ?% p: d9 i9 \
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  U+ B  V$ _9 C8 @/ ~$ W' ~" ~, K0 f' P
  22. * GNU General Public License for more details.
    * z0 V7 R/ s9 j7 \
  23. */
    6 H2 Q( E2 H. u2 A8 O2 F% i

  24. 7 v8 `, k3 l2 d) b
  25. #include <linux/module.h>
    % Q8 ^" j' f0 w# p" p0 R( A
  26. #include <linux/init.h>
    " g9 T" r* w9 M1 s0 K
  27. #include <linux/errno.h># K5 U# t" {' ^- P# X3 a3 V
  28. #include <linux/types.h>$ w) a5 C: f9 k' C
  29. #include <linux/interrupt.h>
    4 [+ H0 M8 E( q' A0 a
  30. #include <asm/io.h>
    + Z  x# e) _. ?1 @* q2 v( N
  31. #include <linux/moduleparam.h># T& Q) }9 i: x9 [  a- |; Y! E& ~
  32. #include <linux/sysctl.h>' v- j4 B3 y  h' R$ T# [
  33. #include <linux/mm.h>
    6 R+ I9 Q4 l5 I% J$ u* A
  34. #include <linux/dma-mapping.h>
    3 W" f+ n$ [4 c$ }) b0 [9 q

  35. # J/ w" W% q9 v
  36. #include <mach/memory.h>
    : V& @+ H/ ^. }+ ^: K0 m, J* g4 W
  37. #include <mach/hardware.h>
    . e# v/ U) n  p& W$ |7 \: G" s
  38. #include <mach/irqs.h>
    ) s5 }8 Z/ i3 V- Z4 ?; ~
  39. #include <asm/hardware/edma.h>
    & R, A( J9 U( {, G1 k7 |; `( C) }

  40. * n$ K+ |/ k/ `( b
  41. #undef EDMA3_DEBUG+ ?' D( w0 a# U
  42. /*#define EDMA3_DEBUG*/3 ?! M/ D) O3 g2 p
  43. 3 J/ k- s8 s& ]+ |/ [
  44. #ifdef EDMA3_DEBUG+ A2 H+ v8 M$ U) O
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    ( z: y5 r5 b8 a" P
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)7 J3 L8 c1 f3 n$ {3 h! I
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)& j0 k* p! [5 t/ C$ I+ }
  48. #else7 }$ S5 `8 b2 K  Y) i2 ^) X, q4 y
  49. #define DMA_PRINTK( x... )
    " c9 r* e. E- @7 F7 m/ p# h
  50. #define DMA_FN_IN1 E# P( A1 x) I9 `
  51. #define DMA_FN_OUT
    $ g. L: _; g" z  k1 x
  52. #endif& B1 I. z$ h6 s) C- I( f
  53. 4 q; |  w% p# O0 Y
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)% \; G/ G4 R. s5 G+ e4 }$ a
  55. #define STATIC_SHIFT                3
    $ t& J: W1 H$ y; A1 W% E( P
  56. #define TCINTEN_SHIFT               20
    / J: h' ?3 @% I( I3 `: M
  57. #define ITCINTEN_SHIFT              21
    - C( U1 q0 ^" u8 v6 V7 b; p
  58. #define TCCHEN_SHIFT                22
    ! F, M3 n, }; s/ B% v! d
  59. #define ITCCHEN_SHIFT               23
    0 I( Y0 }* ?. X1 n

  60. ) |0 K" k. h9 u' w$ e4 Y
  61. static volatile int irqraised1 = 0;$ r: B. j5 n% `( h$ u" z5 a) k
  62. static volatile int irqraised2 = 0;
    - p) e* T* [$ ]( ?3 B* s

  63. 5 l" C0 m, E% ]
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ' ~! ]8 }! L" g- m6 X
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    6 |" _, x- v! l2 U6 a9 m
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);7 k. t( H1 a# y8 P) J+ v
  67. & S5 i+ u! K" \8 Q3 i' ^, b
  68. dma_addr_t dmaphyssrc1 = 0;
    ' B4 S7 a$ A/ N
  69. dma_addr_t dmaphyssrc2 = 0;
    # a# d5 [' r8 W% Q2 r
  70. dma_addr_t dmaphysdest1 = 0;
    7 B: J+ Z9 ^: M- ?
  71. dma_addr_t dmaphysdest2 = 0;
    3 l( X  @  E' o! R- `! v0 {$ v3 [

  72. : g5 g' T; n9 F: d; W% m% u! p
  73. char *dmabufsrc1 = NULL;
    & K, s# W2 w$ I, x: K! r0 i
  74. char *dmabufsrc2 = NULL;
    5 f6 Z4 T  h% R
  75. char *dmabufdest1 = NULL;7 P( J% M3 P9 }! Y6 k+ ~
  76. char *dmabufdest2 = NULL;
    % r0 Z# V' X+ ?( X

  77. 7 ?+ \- K; e' p
  78. static int acnt = 512;# T/ x% {$ `; \
  79. static int bcnt = 8;  h: S  ]% [4 N$ g6 _
  80. static int ccnt = 8;
    ; L, y- c( A. e/ I1 a% N) c/ Y0 m

  81. ) Y+ l% H& g2 n7 T# o; D! K! J
  82. module_param(acnt, int, S_IRUGO);$ j/ I+ F  N4 }6 H! ]6 L* c
  83. module_param(bcnt, int, S_IRUGO);
    ' B! Y' E' V) u. P
  84. module_param(ccnt, int, S_IRUGO);
复制代码

5 K) {3 E3 C" E! \, k( @
# b. l8 u" k( f      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用2 S1 N& K! i, L7 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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。" U; a" V: G' R8 J
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。( k+ j; v, w! R( U. c, J: r- N9 _

; x# ?' K! \$ |0 T& e# q4 ^& F; k/ u3 \3 g: `/ p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-30 00:39 , Processed in 0.039021 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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