OMAPL138如何在Linux下使用EDMA3驱动 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
4 ?/ y5 g8 E4 J) B3 B* N+ y7 Z
  1. [code]EDMA sample test application  j1 i% Z5 z3 w$ ~
  2. /*4 X9 g$ {. x+ y# h) P9 e  J* B4 K
  3. * edma_test.c' G9 _0 m1 D" F+ [+ l9 C
  4. *
    $ u) _( V2 Y! K0 K
  5. * brief  EDMA3 Test Application5 H# e$ e- A1 h5 k
  6. *0 F+ D" x4 M$ q6 v( |
  7. *   This file contains EDMA3 Test code.
    : R, Z/ |0 u( S6 Z
  8. *
    - y' T, Q- `  E
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    7 U! C& B* E9 h8 R! k5 H
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT0 @8 T( D2 K8 j3 J- o5 o
  11. *         TO CHANGE.2 p4 y* m& ^0 @% w
  12. *0 v  I, j0 ~, Q, p% z1 M1 v
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/8 }9 B! W8 O6 [+ w' W, X7 \8 S
  14. *
    . s$ ~5 w+ E6 O$ ~: J% [5 ~
  15. * This program is free software; you can redistribute it and/or
      _  R1 x' ?  m0 ?7 l* W
  16. * modify it under the terms of the GNU General Public License as
    3 z% ~9 ?0 F" {/ B
  17. * published by the Free Software Foundation version 2.
    $ r/ i4 j) \' q8 h  x: f' T/ D. G
  18. *
    0 F2 X6 ~* e/ _4 h& C* E
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    # J3 O, x- r2 E! {
  20. * kind, whether express or implied; without even the implied warranty% F3 k. p& l, [5 ]7 L/ s, d
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the' |8 C. a! y# B0 ?7 U# t
  22. * GNU General Public License for more details.
    6 o" K7 M' L# V7 Z7 l$ Y% r1 @1 ^
  23. */* Z$ G5 E' W% @& a" m' |0 s# w
  24. - J! @+ W" U- v) D' }/ l
  25. #include <linux/module.h>
    + T& N) v4 L0 J+ k1 s
  26. #include <linux/init.h>1 D3 T" ]' v# e$ S3 N6 \9 R, ^8 M
  27. #include <linux/errno.h>" O( E1 X8 O5 d: Y( F
  28. #include <linux/types.h>
    ) k0 H# h& l9 D  k5 ]! K
  29. #include <linux/interrupt.h>
    : h6 l% V5 s! Z, U1 J$ f, H
  30. #include <asm/io.h>; X9 F- [  v' M# `
  31. #include <linux/moduleparam.h>( Z3 D- c$ }1 u( d2 ?# F
  32. #include <linux/sysctl.h>
    0 d8 ]! }0 w( p, u; `9 H& c
  33. #include <linux/mm.h>
    - d  ^) P4 w8 w
  34. #include <linux/dma-mapping.h>( C6 w4 u3 [3 ?4 x  W
  35. . n' ~0 D& D  W$ Q
  36. #include <mach/memory.h>7 o* k0 m% m/ k1 X! z3 `
  37. #include <mach/hardware.h>- b/ W+ m2 y* K" u( A
  38. #include <mach/irqs.h>1 M0 O% o5 ^' D1 k; O* H9 t2 e
  39. #include <asm/hardware/edma.h>2 l: m% B% `- X! S9 Z: T
  40. . B7 O; C, L2 v+ c
  41. #undef EDMA3_DEBUG
    ( E1 r" _' c6 h! {. m4 M* e
  42. /*#define EDMA3_DEBUG*/6 N" l# y5 @# X- i9 m; t( m* }

  43.   \9 ~! E! |# M2 v1 a+ E0 K
  44. #ifdef EDMA3_DEBUG8 `' l# @* {+ ~% M$ ]
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    7 b/ r* C; G4 B+ `3 l, l. g  Q( S
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
      v2 E9 B# u* T  A/ C
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    ! M9 M; q# \6 ^8 P, ?
  48. #else
    + A; u: B2 [0 w4 z+ A. m2 ~
  49. #define DMA_PRINTK( x... )+ u* {2 C2 O2 r
  50. #define DMA_FN_IN
    9 l2 Y2 O, U3 j, J$ ?4 L; N; g5 d
  51. #define DMA_FN_OUT: l4 {0 w' G8 t$ F8 J
  52. #endif: _/ r1 @" U" A9 d" q

  53. & c& W! a  n2 x$ t4 h
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    7 J+ j2 C( ?; @5 o
  55. #define STATIC_SHIFT                3
    - |4 x7 n1 A& ?4 A9 R
  56. #define TCINTEN_SHIFT               20# k2 S/ y- R' T  I+ r" m1 A
  57. #define ITCINTEN_SHIFT              21* O4 n8 U& h- b, [
  58. #define TCCHEN_SHIFT                22
    . F3 k/ n- H( `7 B  T2 {+ F5 ?
  59. #define ITCCHEN_SHIFT               23% ~8 o1 e/ e) G2 b( a. o& w1 H4 y5 ]* P

  60. / F  S3 m9 t6 L5 @% {* `. x
  61. static volatile int irqraised1 = 0;7 ~) W+ b* Z7 ?  @  G; o) G
  62. static volatile int irqraised2 = 0;
    ' o5 S' b7 c; r- x1 {# v

  63. 0 y$ O8 W# b8 N# @1 p6 t
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);% Z( f" V* p5 N. D; j
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);% v6 B) k; o1 o" M% z) i5 w! h3 I
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);& o9 x9 X% w! D* e0 c
  67. 8 Z4 x) u( `& U. D" I
  68. dma_addr_t dmaphyssrc1 = 0;
    . x2 l* Y' v& _- `
  69. dma_addr_t dmaphyssrc2 = 0;' q" R" z9 c5 h) a0 r. T
  70. dma_addr_t dmaphysdest1 = 0;, d+ p' o5 c  N9 y1 D
  71. dma_addr_t dmaphysdest2 = 0;
    5 c+ u/ k2 x9 q% y1 h# E
  72. 0 D5 n" Y; S$ O: K9 H
  73. char *dmabufsrc1 = NULL;4 S. _- |, l2 U, \
  74. char *dmabufsrc2 = NULL;! @5 P0 L: p; M, `9 O' d
  75. char *dmabufdest1 = NULL;2 ?* e0 k/ ]; i1 k
  76. char *dmabufdest2 = NULL;
    6 w7 S& C3 W: |5 A
  77. . ^0 |7 _3 {  b% G: ]
  78. static int acnt = 512;& R' V3 j0 _7 u7 W! f
  79. static int bcnt = 8;
    7 j/ A7 i+ P. U9 V' P" T6 J
  80. static int ccnt = 8;- |- z- Q6 y3 [5 n! W  z

  81. . s3 ]; j" k+ g. c1 @; ^
  82. module_param(acnt, int, S_IRUGO);4 _6 R+ _9 z8 Y
  83. module_param(bcnt, int, S_IRUGO);; ?! x) w. P. I% r4 |
  84. module_param(ccnt, int, S_IRUGO);
复制代码
, S# |0 i8 m6 J1 ]8 f& ?% n
4 s1 V) k/ S* Q+ }% U
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
2 e2 y$ k+ R# s1 y4 X% C! U3 g) varm-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 g( q+ q0 t3 [
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。0 @$ i" Z* h$ m# O- {
9 k& ?& H+ ?) Z3 X6 R

; S) y* i3 I0 r6 R5 Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-13 07:39 , Processed in 0.037480 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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