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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
) v, L1 i" x4 C; M1 X) i4 R$ S
  1. [code]EDMA sample test application
    ! o# s: O: W6 \! a% F
  2. /*5 b6 O- S. W5 N1 A3 t- r
  3. * edma_test.c1 q3 _+ F1 `  \- [3 M- C
  4. *+ c% @+ F- U3 I+ D: a! q' b/ ~) \
  5. * brief  EDMA3 Test Application! k" R4 h& Q- c3 ^
  6. *( }" ^, u9 g5 ?& N
  7. *   This file contains EDMA3 Test code.' m; j' v- ~# v; i  S
  8. *
    % U, j! g) x/ Z% p. w- G
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    , O+ k8 ~. o0 ~* j  x7 k) o9 ]0 j  v" N
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT3 p, A# r' Y* s7 h; a+ M
  11. *         TO CHANGE." D$ a7 Z0 e: [0 U  {4 D0 O
  12. *
    & P9 @# `- r/ |' V" ^: M, Z: V# \
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/: Y  f: Z; D# o# y+ h+ U0 r" u
  14. *$ C- [7 `- {) }( A
  15. * This program is free software; you can redistribute it and/or
    ' M8 [' P# ?/ f# w% f
  16. * modify it under the terms of the GNU General Public License as. a% `% p5 R$ P% y
  17. * published by the Free Software Foundation version 2.5 \& t9 U* r; R6 C4 U
  18. *
    * B$ V6 K4 L( v+ S0 N+ Y7 B
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    ' z8 ~2 K: B, e( v9 O
  20. * kind, whether express or implied; without even the implied warranty
    * F& r6 Q( Q# d, r; D0 C
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the7 Q9 w; v; m5 |' y- ]
  22. * GNU General Public License for more details.
    . M' _3 H! v+ d* k7 a8 Z
  23. */8 q! S7 I/ S9 ]; g  S' ]
  24. * `6 r/ I! M; k, R: S1 a: [
  25. #include <linux/module.h>
    5 F( W& p9 q/ k6 K, s6 k- p
  26. #include <linux/init.h>
    2 {1 m- I$ t/ \! V0 u8 T2 d$ U, O  V
  27. #include <linux/errno.h>
    ! _( Z- ~# N/ f/ C/ s, z, K, M
  28. #include <linux/types.h>
    2 [$ F" H* N" B* c3 D
  29. #include <linux/interrupt.h>
    ' r: r8 _4 @9 J
  30. #include <asm/io.h>* K0 y" _" E2 }9 M
  31. #include <linux/moduleparam.h>/ M! v0 c" P" R2 U) Z
  32. #include <linux/sysctl.h>
    4 f- N" v/ K  p" K
  33. #include <linux/mm.h>3 X: v1 A) ]' P* ~% G5 Y& [
  34. #include <linux/dma-mapping.h>: T6 s" _( o6 }  T' g* R- s
  35. 4 M# E+ @% Z- A. p, `. S
  36. #include <mach/memory.h>
    * T8 [0 r$ U+ E" _8 I
  37. #include <mach/hardware.h>
    8 ?; E2 N, r: B. U
  38. #include <mach/irqs.h>
    9 S2 N1 }+ s2 D$ F! e
  39. #include <asm/hardware/edma.h>! J: Y% x' M' m0 c. k

  40. + r$ `: `! W* j6 Z" q5 x
  41. #undef EDMA3_DEBUG
    3 s7 G& R1 M( s  x( I6 h
  42. /*#define EDMA3_DEBUG*/
    ) _, S$ W( ^1 W2 v3 c* n4 S( j
  43. 2 G* ^- u/ y3 E  A" Z
  44. #ifdef EDMA3_DEBUG
    . x5 i0 z/ b1 c! H8 {* [  N
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)$ D6 A1 @/ M% A. \; B9 j5 X
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    , ]. x* b9 z. I  {) w. ]1 {
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__); `4 L' x/ c6 v" `' J- O
  48. #else* d" ?" e* u( \. |3 L1 ?$ Y
  49. #define DMA_PRINTK( x... )
    ) P$ S+ C6 Z; S* N5 I. M
  50. #define DMA_FN_IN4 Y7 l0 q# e  r
  51. #define DMA_FN_OUT
    ) \" H: R6 ?3 g  m( z9 M. L
  52. #endif
    0 r, ]+ y; j* T$ z& x' l

  53. " c8 S) b. T. Z- `% C; i. R! h
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)* I3 D% ?( A3 q0 G6 D4 i/ P% A
  55. #define STATIC_SHIFT                3/ F, N# w  g6 J
  56. #define TCINTEN_SHIFT               20
    : N0 i8 o" ]3 P  H
  57. #define ITCINTEN_SHIFT              21
    2 k, Q, d; d9 n) s0 F1 ?
  58. #define TCCHEN_SHIFT                222 U' p; O. a) j- [
  59. #define ITCCHEN_SHIFT               23* a. `, @; u7 @1 r5 {

  60. % |: Q% Y/ z1 n. U. J# P; k7 {
  61. static volatile int irqraised1 = 0;- ~' |2 p9 {& M1 ^
  62. static volatile int irqraised2 = 0;& s& A+ T" x: f$ W  f4 G0 N
  63. 4 W) n, D0 @6 A
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);$ _  A- j, v& B$ G! R& U" W
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);, E" N5 `! X1 M; L4 U
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);2 F9 F, W! V# \: e
  67. / T; A# K8 X! Q7 E$ z
  68. dma_addr_t dmaphyssrc1 = 0;
    2 _6 R, ]1 u, e
  69. dma_addr_t dmaphyssrc2 = 0;
      a8 z5 w  E$ M- u. y  c* K/ g3 f0 _; Z
  70. dma_addr_t dmaphysdest1 = 0;
    - C6 P1 ^# r' k% P
  71. dma_addr_t dmaphysdest2 = 0;
    * s) o9 X: s: |" c
  72. " m7 n( X" H  H) ?3 m
  73. char *dmabufsrc1 = NULL;
    ' r1 s' I1 P2 |5 i& J' T, F* ~
  74. char *dmabufsrc2 = NULL;
    ; A5 j0 Q$ y# j+ [4 I# a! |
  75. char *dmabufdest1 = NULL;
    4 \& J3 t' B4 C% {! d6 Y
  76. char *dmabufdest2 = NULL;
    + \5 D  b; i/ k5 p

  77. * _+ `2 C* }  L8 M
  78. static int acnt = 512;
    , ]: A& z; o- @9 J
  79. static int bcnt = 8;* x) w( Y. E- T/ F/ q
  80. static int ccnt = 8;
    / y( j2 F$ {" C7 J* |! ]: T. o9 b* A
  81. : F4 V; P; C" n4 b
  82. module_param(acnt, int, S_IRUGO);& S: Q$ `( J9 t  P; h6 {" @1 c! u
  83. module_param(bcnt, int, S_IRUGO);
    1 Z% I8 |" ?9 L" d) z8 Y
  84. module_param(ccnt, int, S_IRUGO);
复制代码

9 @+ }, `' P2 w: \6 g5 m+ d
( O7 \# o- {! A' p      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用% s( b9 m$ X" v6 R! @6 {  b8 ^
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。. {+ ~6 |: c4 S+ j; b1 i
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
, A9 [* ]6 m% P4 d$ c" K- |4 a
/ b( K# k8 c: q% I$ g+ ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-24 01:27 , Processed in 0.040091 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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