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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 ; x" u; `7 G6 ~, O4 H3 k! ?
  1. [code]EDMA sample test application
    , I' Y2 v8 d( c( e% e+ Y8 t# S
  2. /*9 X! `+ N1 z+ B" Z# `- g
  3. * edma_test.c0 @0 j+ W: {+ p
  4. *3 K- a: p7 J  L% L8 R' ]" [; E2 K) P
  5. * brief  EDMA3 Test Application
    0 d$ C3 E! U$ Q1 Z( Q4 a
  6. *
    " ]: s5 O; j, m! V+ M
  7. *   This file contains EDMA3 Test code., K* G3 D. x) D& X- g& W4 T& V1 ?
  8. *
    5 w* k  o5 l+ F  d3 X# a
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE* u/ b) {2 y2 p4 v$ r( ]
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    " V1 Q7 z& b. z
  11. *         TO CHANGE.
    % o$ D" d. D/ d2 ]
  12. *
    - p: d# I/ u% S7 h6 o" K: f
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/2 F) D+ L- T; b7 ]4 a& n5 ?7 `0 x7 |
  14. *2 p' |& w( w. A0 X2 h) L5 L: \
  15. * This program is free software; you can redistribute it and/or
    % i3 _8 C3 `# ?9 {* E# N6 h3 C
  16. * modify it under the terms of the GNU General Public License as
    6 _; `1 ~/ X9 k. D: r
  17. * published by the Free Software Foundation version 2.
    6 ^; B) q+ r% n
  18. *! \$ b9 g, j' |; h6 {
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    + g: E$ z! {( t) J
  20. * kind, whether express or implied; without even the implied warranty" S/ v9 C) {7 O7 k7 l% @# J' F
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      ~# g* \8 [1 b  c9 C1 |
  22. * GNU General Public License for more details.
    # B! j' R2 L+ C
  23. */$ x7 O* z4 q4 n" P% j

  24. " |6 D# s. A& K
  25. #include <linux/module.h>4 @8 B( F. k- i
  26. #include <linux/init.h>( Z' a( e- {; V# o( f* D" g
  27. #include <linux/errno.h>
    ; I7 g! `8 f% C7 U  S% C
  28. #include <linux/types.h>6 W: E, H* N! N$ P2 G: F: q# p  {7 e
  29. #include <linux/interrupt.h>
    & w" i7 ?$ O; j8 a" N! r
  30. #include <asm/io.h>, f2 X3 J8 w9 @; M
  31. #include <linux/moduleparam.h>& K2 n- D0 f+ Q/ ]  c/ m
  32. #include <linux/sysctl.h>
    / Q. T$ p2 _( R6 r
  33. #include <linux/mm.h>
    + U  X# r  C$ M! N( Q0 ?& Z% v
  34. #include <linux/dma-mapping.h>9 o% L& W4 ~% Z2 O: N# V- y" l. j
  35. - d$ n+ ~3 n  ^7 ~  s
  36. #include <mach/memory.h>
    # f. a  n6 S9 }: E+ z0 Q9 a+ E( }7 _
  37. #include <mach/hardware.h>
    3 C' N7 g% _7 r+ h  k
  38. #include <mach/irqs.h>
    # s& a: Y. ?6 H) I
  39. #include <asm/hardware/edma.h>
    6 t7 E" I+ w2 O

  40. 8 A% d% ?; H9 v2 h4 W( l1 _
  41. #undef EDMA3_DEBUG. i. S' N( M1 j; l
  42. /*#define EDMA3_DEBUG*/0 d! ?0 K7 @8 P9 G1 N- g  W/ g, H( g
  43. # Q2 N' u$ h0 x+ ^$ U& e
  44. #ifdef EDMA3_DEBUG
    & C' T& q) x- R0 [
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)0 _* V+ K5 J% B' m4 d
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    $ t5 @6 W1 H! R7 J
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)7 x$ ^% V- c0 y) J7 U
  48. #else
      ?. ]# g) R& v" h8 O7 d; D
  49. #define DMA_PRINTK( x... )) e* ~) E/ c' M
  50. #define DMA_FN_IN
    : s+ l# e0 z. g% F# q3 \) o) ~5 T& u
  51. #define DMA_FN_OUT
    ! i$ ~4 U! X0 \8 K- p
  52. #endif
    + M2 |# I, a' j3 j; @

  53. + [7 b1 Y) W: l( y
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    , {% r7 @6 U/ d; M6 z- {3 \
  55. #define STATIC_SHIFT                35 N" Q& f, C. q; o- m# z+ W& `
  56. #define TCINTEN_SHIFT               20
    2 V, V6 i, v4 {7 n3 c% G  P/ J
  57. #define ITCINTEN_SHIFT              21
    8 \; E5 a. _. N. Z& r
  58. #define TCCHEN_SHIFT                22
    " P5 \4 a1 R% H2 c3 H, b
  59. #define ITCCHEN_SHIFT               23
    ! a9 Z) R% Z/ G: K" Z
  60. . ~( ~* S% F6 F+ `8 |: t4 t! t9 f
  61. static volatile int irqraised1 = 0;
    ; l$ Q: @8 T' D
  62. static volatile int irqraised2 = 0;
    4 h5 R) E' @9 o
  63. : U  y. s% e; I
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ' j0 R1 O, L! K0 U
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    7 Z* C2 H3 h7 Q# P" f2 L' ]6 k$ S8 I
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ! C, U+ A' _8 w

  67. 8 _, b) N. ^: ?4 V2 [$ M3 v# \
  68. dma_addr_t dmaphyssrc1 = 0;
    ; d$ E* U3 W; l7 q: Y7 J
  69. dma_addr_t dmaphyssrc2 = 0;2 ^4 W* b5 Y, z" {8 k" H* p# I
  70. dma_addr_t dmaphysdest1 = 0;
    . G" }, p) ~% o3 _6 }
  71. dma_addr_t dmaphysdest2 = 0;; i6 X( l$ U# `) b, ?" Z( E
  72. 0 X7 X! K  @, y( }* O) @; \
  73. char *dmabufsrc1 = NULL;3 u8 T- T+ o) }# \* S6 V
  74. char *dmabufsrc2 = NULL;
    9 M3 y3 E$ H- w2 N8 w% c. P" d
  75. char *dmabufdest1 = NULL;/ @( M* r, e( v; G- J3 u2 ~
  76. char *dmabufdest2 = NULL;
      Q( e+ H' J5 |& v
  77. ( Y3 e5 i/ A, r% p4 t0 {7 i" F0 Q
  78. static int acnt = 512;
      J9 Y$ @  R9 l
  79. static int bcnt = 8;: V. `% G1 u5 q
  80. static int ccnt = 8;% `, u/ R3 v8 k/ J
  81.   a& p1 ~# b2 M! i
  82. module_param(acnt, int, S_IRUGO);* H' j! W. l4 z9 s
  83. module_param(bcnt, int, S_IRUGO);" M7 `- f9 R3 [* `: n  O
  84. module_param(ccnt, int, S_IRUGO);
复制代码
2 c0 {- f; f9 N
. ?4 V2 ~! w: |
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
4 g* J" F/ B! N* o( farm-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 L" c2 i, S7 o8 P# K; ]0 W5 j     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。6 m1 ]7 ?. _9 o. W
* w/ \- O0 c: r, L
3 r' z8 F) b$ G8 ^: G, m# ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-9-4 13:20 , Processed in 0.043701 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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