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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 ) J0 u( T/ }. f* n+ f3 e2 R. q
  1. [code]EDMA sample test application
    & ?& q; Z7 e0 B. B' |8 Q; b
  2. /*
    # E( ~9 }$ A9 }
  3. * edma_test.c
    1 ~" L$ T" z5 ~1 l" |5 z/ c$ [# F
  4. *
    : o! f  w# g, T( ~) L) B0 R& N
  5. * brief  EDMA3 Test Application
    , A+ F5 B$ m9 F, `- K) T" Y
  6. *0 g/ U: G  O2 c3 ?2 W9 ~$ q1 T2 W1 ~
  7. *   This file contains EDMA3 Test code.
    2 m  T: t6 {2 Y! E- C: ^
  8. *
    6 M1 R) I: c3 x  d
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE4 D/ t( s2 |$ J( M  s; Z# L# t; {
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    * V7 w) M9 }' A( `; h
  11. *         TO CHANGE.) I: u% P4 T- `1 G% X
  12. *
    7 {4 H+ \: E( d
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/7 ^& B  z8 ?* p
  14. *
    2 Q9 i8 [" M2 \; H, E6 D
  15. * This program is free software; you can redistribute it and/or
    0 ]! Y1 s: R" [
  16. * modify it under the terms of the GNU General Public License as
    ; a$ s* e3 y6 u1 ~
  17. * published by the Free Software Foundation version 2.
    + W* e" M' Q* \* B" ]$ \
  18. *% F6 {- c+ W0 J( _2 V3 r
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    6 c8 d3 u% |1 @' k
  20. * kind, whether express or implied; without even the implied warranty9 @7 p( c9 S- z$ @2 a
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the( ?1 Q! j; [+ {6 N2 _( d
  22. * GNU General Public License for more details.- e" [4 R/ K+ d. A) Z
  23. */4 }5 e$ e% D9 A( e) ]# S
  24. 2 |9 F( {# N! w- h$ L, H5 {4 q
  25. #include <linux/module.h>- E' t, T2 u& s7 c
  26. #include <linux/init.h>
      o3 {0 N4 D! N: R% v
  27. #include <linux/errno.h>
    5 b/ G5 _: Y* l, O/ R2 J8 T+ q0 L
  28. #include <linux/types.h>3 u, a$ b! u: u. K
  29. #include <linux/interrupt.h>
    9 R( h- [/ G8 R: P4 Y* Z' L5 |6 S& T, |
  30. #include <asm/io.h>7 O3 o  ]" C* o$ c; Q( ^
  31. #include <linux/moduleparam.h>) T* C) K6 M4 w4 L
  32. #include <linux/sysctl.h>2 t/ _2 m# I1 {5 r! d- y
  33. #include <linux/mm.h>
    0 R5 `  ?9 h* F9 |6 F* J5 y4 q, j
  34. #include <linux/dma-mapping.h>
    " n  {9 _5 p& E- x. `1 Q8 I

  35. 5 N5 p* i9 E7 |5 S
  36. #include <mach/memory.h>
    % B4 X$ n6 x% Y# L9 d6 y$ ~
  37. #include <mach/hardware.h>( Q2 h$ ~( z) n) g0 T$ _
  38. #include <mach/irqs.h>: R* ]5 U: p8 Y$ r  M) Q
  39. #include <asm/hardware/edma.h>+ o6 B$ _: j/ e2 E1 m
  40. $ O$ V" K9 e; Q- s+ x2 o4 d( o
  41. #undef EDMA3_DEBUG
    & i; h8 \8 I6 Z4 `
  42. /*#define EDMA3_DEBUG*/& a  A5 b5 s" R9 _2 Q8 }: m

  43. $ y% z( {. T( y( c: }
  44. #ifdef EDMA3_DEBUG" `3 E- D8 g$ T9 t6 p% t
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
      |. L9 s% k* \1 v' j" G
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    6 l/ U, Q# N$ i9 i* I% T4 {/ z
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)' X# E# D5 ^, }& @7 k" w! D' O/ L
  48. #else
    + m9 i2 x! o1 c3 l$ Q3 l- Y+ M3 v
  49. #define DMA_PRINTK( x... )
    4 v5 ?8 |/ k8 n3 \4 u
  50. #define DMA_FN_IN, I$ q- v2 P1 q0 U$ m( V4 }
  51. #define DMA_FN_OUT
    , U! M3 J, V9 M* X" b* f
  52. #endif9 r, M  Q- Y, H1 f# o) P4 M

  53. + Z& E0 V/ M' K
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)3 a( [( c: \, A. a
  55. #define STATIC_SHIFT                35 `1 D1 Y2 y* a6 u; B
  56. #define TCINTEN_SHIFT               20. _# C! O0 X% ?
  57. #define ITCINTEN_SHIFT              21
    : Y) A, o4 F) k( D( F, J
  58. #define TCCHEN_SHIFT                22
    , I/ I$ K# j! [' V* E
  59. #define ITCCHEN_SHIFT               23% R( D# ~1 {9 y$ p7 M8 Q2 w

  60. $ E" A8 r& p3 W0 G% ~8 b) p) b
  61. static volatile int irqraised1 = 0;
    $ y4 n/ k) z# I& ~
  62. static volatile int irqraised2 = 0;
    - H8 K. Z  ?9 x
  63. ! @# w0 d5 f* H9 \. a+ ^4 C
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    $ S- E$ N# ~! F2 E
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);+ y' k; b0 D) G
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    - U  T' g8 Q. w2 T4 X9 @, s, i

  67. 9 |! t8 ?* p8 O0 K. X7 y  g
  68. dma_addr_t dmaphyssrc1 = 0;
    0 k! U, t) R1 x; c
  69. dma_addr_t dmaphyssrc2 = 0;: P8 k9 }+ O* b1 R5 S
  70. dma_addr_t dmaphysdest1 = 0;$ b; H( k) M( m4 f6 W2 @  H
  71. dma_addr_t dmaphysdest2 = 0;. |$ y/ V  e5 U: v0 B6 H

  72. ! J' h' n4 C* {# `6 Q
  73. char *dmabufsrc1 = NULL;
    ! d" O$ S5 H( l3 \; [9 n. j, ^9 Y
  74. char *dmabufsrc2 = NULL;
    4 d5 c% O5 E+ _; E! c
  75. char *dmabufdest1 = NULL;
    + j' u& @- b; b$ D+ f. ^' {# x; K
  76. char *dmabufdest2 = NULL;! |+ k$ U' z6 G0 ?$ y

  77. , r* p) M1 \/ }
  78. static int acnt = 512;
    2 k( H/ ]+ O, O: _* [8 Z2 l. ?
  79. static int bcnt = 8;
    ' N& A- z) G4 r- {
  80. static int ccnt = 8;/ B8 F  l) i7 ^+ h: F

  81. 0 T: K0 |7 l- Q& M, ~# f
  82. module_param(acnt, int, S_IRUGO);
    3 n) }3 o8 q/ L) l' y
  83. module_param(bcnt, int, S_IRUGO);
    + ?$ D! G) X- q7 o4 H
  84. module_param(ccnt, int, S_IRUGO);
复制代码
: h; \8 N6 p" R. o5 ^0 j, v) n+ J3 d/ F

( d3 R) q) q' b/ \      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用  r1 _9 i" H" o8 h. `! k& K: Z7 T
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。5 K$ o9 P/ M$ t8 B
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。! r9 U3 r( o8 E8 E4 {8 z% T

# y! c+ I( [: X# w9 i% H* s; h. R' h- U* S* Q: O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-30 22:49 , Processed in 0.039445 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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