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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 % k5 P1 h& r! e' M( @9 ~
  1. [code]EDMA sample test application2 q9 M" ?! M, U* {* K) I' W
  2. /*$ A% L* G2 N+ l# ^2 j/ Y5 @+ ^* n
  3. * edma_test.c! T7 Z9 }. W' b9 @8 ?+ u0 a
  4. *" s) Y9 p; ^1 q) G. r9 x/ i" ?3 m) e; q
  5. * brief  EDMA3 Test Application
    7 F8 k5 u! m( G( L
  6. *; o+ H7 M2 o5 d3 M+ H' Y8 z3 N
  7. *   This file contains EDMA3 Test code.
    9 g% a# V. W& m2 l# d, l* M
  8. *; [: D( c0 X$ b4 {! q) V9 }: T
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    * [6 I# H' F3 }1 r0 P( z
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT6 C  @) Q% V; o
  11. *         TO CHANGE.! c; e$ _% Y& y) U& ]5 v# o. y
  12. *, r+ v  W" j9 p! {: m
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    + {' s: M( Y: Y2 T6 V; X  b. A
  14. *
    8 H* B5 h. O) a+ m+ I5 Z( ~, X
  15. * This program is free software; you can redistribute it and/or# g- n+ z/ @' S6 Y" f
  16. * modify it under the terms of the GNU General Public License as
    2 h9 L  r5 I# a9 ]1 J& F8 h% m  Z
  17. * published by the Free Software Foundation version 2./ J) r0 p' N# ]; G  A# j9 D, \7 O3 v8 o
  18. *# i" D* S' E6 d( c, S
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    ( m+ B' P" P& M, [8 _( b
  20. * kind, whether express or implied; without even the implied warranty
    , _7 h) ^/ _9 B% P/ Q3 A
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the1 `! M- x: g" T- h# u6 W% H9 W
  22. * GNU General Public License for more details.
    # w% C; N, m1 S2 R. y8 X0 D
  23. */& i2 B" `- C- H' W1 s" T2 G

  24. & P1 x. d; ^, K0 ^
  25. #include <linux/module.h>
    ) v  b6 b8 ]: V$ Q1 d4 ~/ F& E% @
  26. #include <linux/init.h>) j' T+ g- y# b" Y
  27. #include <linux/errno.h>
      W" O& F  A% {( a
  28. #include <linux/types.h>1 J9 G  m' o4 H0 n
  29. #include <linux/interrupt.h>
    4 Z) l# v; `7 G4 A
  30. #include <asm/io.h>7 ?, S# E0 A  }# y! L
  31. #include <linux/moduleparam.h>
    . F! s! A9 Z  n
  32. #include <linux/sysctl.h>. y: q4 o: b4 r3 S8 r8 S; e  {9 j, l
  33. #include <linux/mm.h>2 I9 a3 o9 v# R7 g9 v+ \/ D
  34. #include <linux/dma-mapping.h>
    4 N; t* ?- s2 w: y

  35.   t' N) [) i" a# C
  36. #include <mach/memory.h>$ s5 g4 }$ f, `3 P5 S3 N# u
  37. #include <mach/hardware.h>1 E; m+ M- {3 c9 @1 R3 x% _
  38. #include <mach/irqs.h>
    9 L# Y; ]! I( u" {0 D" W# ?
  39. #include <asm/hardware/edma.h>$ F+ N3 f7 X  Q9 K* `* H' B
  40. 4 R# d) `- C+ N) t! I7 W" D7 c
  41. #undef EDMA3_DEBUG
    7 V, Z& J& s! i- M
  42. /*#define EDMA3_DEBUG*/
    . E  i; z4 C' ]$ Q) t7 M! h7 e

  43. , O6 {+ Q8 }3 `( h/ z4 A5 P) P
  44. #ifdef EDMA3_DEBUG
    5 h- F8 i$ z$ O2 w3 v/ n% j, }
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)7 l! |, N7 g, ~9 j) B
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)/ F5 l5 Y/ a; U7 e3 O
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    ; B: @4 j+ d; [9 Q/ r5 N1 G
  48. #else+ Z0 l5 v5 m# X: H$ P
  49. #define DMA_PRINTK( x... )
    1 B8 |" ~* j. J' }+ A
  50. #define DMA_FN_IN- r( V4 {0 K2 ~  s3 m( `2 r) X
  51. #define DMA_FN_OUT+ K: L) R: O+ D3 ^2 ~# w3 B
  52. #endif3 g6 C8 @7 k/ b7 T, K6 M

  53. ; ~+ K1 D; H) \# s
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
      y# r9 X: t3 x! I  O) E
  55. #define STATIC_SHIFT                3
      I& r! e( [! ^
  56. #define TCINTEN_SHIFT               20
    3 w4 U- `3 E% C( c
  57. #define ITCINTEN_SHIFT              21
    % w( l0 Z3 ^- H- \" j4 w: L
  58. #define TCCHEN_SHIFT                223 Y. Q! Y! J; K* U0 D
  59. #define ITCCHEN_SHIFT               23
    ( c2 H+ ~8 i* |6 D

  60. " t' O2 x7 U; E6 X+ d0 B3 `1 e: U
  61. static volatile int irqraised1 = 0;
    9 H+ v7 p/ ]/ n: ?7 L
  62. static volatile int irqraised2 = 0;
    : H7 H: R# O8 q* Y& k
  63. 1 q; z5 L/ F* ]3 P& Z3 i
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    % }! Z% b! U8 s3 v4 J
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);6 G9 ]* O) I2 t1 I6 Y
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    4 e* V- |$ f6 w- s+ U( K

  67. - m' j6 s& n. B* d$ S8 V
  68. dma_addr_t dmaphyssrc1 = 0;/ a8 t& A: V2 |, g7 v) \
  69. dma_addr_t dmaphyssrc2 = 0;
    * N" j1 ~+ Z; b; h
  70. dma_addr_t dmaphysdest1 = 0;
    " s' P/ Q3 U9 Z: u" Z
  71. dma_addr_t dmaphysdest2 = 0;/ n) l/ C  V, T5 g* J. S

  72. 2 k2 q: f# R2 L: N
  73. char *dmabufsrc1 = NULL;
    # F' s6 g, ~# o5 V' C
  74. char *dmabufsrc2 = NULL;
    - F5 t% s; y) y; h5 C( ^7 _- O* i& X
  75. char *dmabufdest1 = NULL;6 r. o" I$ K( ]! b
  76. char *dmabufdest2 = NULL;
    % {0 L( n/ Y' D( r: C$ p' ~

  77. - b$ ?5 n- b- k% M
  78. static int acnt = 512;
    ' H  w7 O' A+ f3 ~
  79. static int bcnt = 8;0 C9 `# O5 X& G8 h( L) W% n( Z
  80. static int ccnt = 8;" ]" J' y' W/ h3 _3 [
  81. ; ]0 N; |4 _+ B
  82. module_param(acnt, int, S_IRUGO);) t  [- l, G0 {
  83. module_param(bcnt, int, S_IRUGO);# v3 N; Z1 |8 `/ V/ }6 m) ?
  84. module_param(ccnt, int, S_IRUGO);
复制代码
4 Y" L) W6 @) l0 Z, g

( h* P& J& I$ h- Q3 e7 w8 X      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用/ y: o" D/ q0 H6 s' y
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
8 k7 t/ U% {* [- C     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
' G! V* s+ X; r5 q
. |0 [# I7 B' l2 U7 C) |7 K4 `" i1 ?6 d& t* V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-30 11:27 , Processed in 0.037548 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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