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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 ) n8 ~. M9 `, L! L* t2 Q
  1. [code]EDMA sample test application) K, A" h; ~1 B3 k- Y
  2. /*
    . p% \* B# m4 K6 v. T" l/ [
  3. * edma_test.c
    & X+ F9 R$ T1 Y( x
  4. *
    % |9 E3 j# e8 i3 X9 x1 F
  5. * brief  EDMA3 Test Application
    : [1 T, s; d. _, W
  6. *& H; @% o& j6 U  I# x8 `! a* p
  7. *   This file contains EDMA3 Test code.& U' x# F  w7 R1 q' P4 y
  8. *+ q$ s. x8 ?4 `6 C, `* `9 _
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE1 Z0 B3 Q! k$ c; q; `
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT* E* X8 c) r/ F: i" _
  11. *         TO CHANGE.3 b- i( m" e7 V) F1 C: ]
  12. *7 a) f, B: D8 P
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    8 J: N% q7 l, }( c0 N+ V
  14. *
    / Z. _# Y" j8 k% f, _4 |7 s9 g3 p
  15. * This program is free software; you can redistribute it and/or: h( D  S( |% G$ X3 i$ [
  16. * modify it under the terms of the GNU General Public License as: @+ y2 P7 G7 {
  17. * published by the Free Software Foundation version 2.$ {# P, C7 D# h" t0 X
  18. *1 d, X. C5 S" d3 M! w+ A( o
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    4 H; P. g2 \1 ]& F6 ^
  20. * kind, whether express or implied; without even the implied warranty- I2 ?# P( M+ r) j8 x5 d
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the, @' G# a! z- A) Y# ?
  22. * GNU General Public License for more details.
    6 w4 O6 H4 V. `" s
  23. */  G! m; }1 ^& Z0 D1 @$ u: t8 V
  24. : Y4 ~, a3 d6 E
  25. #include <linux/module.h>0 K4 H, p9 x, \* C
  26. #include <linux/init.h>
    ) Z0 C& q* y0 m& {
  27. #include <linux/errno.h>
    : k; A0 W3 y& ~  b2 M8 K- k9 D& E
  28. #include <linux/types.h>% O1 w1 N# w; [  Y" G
  29. #include <linux/interrupt.h>
    ' Z4 V0 J$ R* Y9 R
  30. #include <asm/io.h>9 a* k. |. I& m- ]# E. ~( L
  31. #include <linux/moduleparam.h>
    $ a+ E  u; k$ B- d1 h- M' _) P
  32. #include <linux/sysctl.h>
    " [+ a9 j5 v5 J# Q8 c
  33. #include <linux/mm.h>7 L$ P6 P( O7 I' O) B+ T: M8 x
  34. #include <linux/dma-mapping.h>! k" Q) q! J; W! ~7 {3 i

  35. 8 ]% d7 @7 G! H- y8 r5 d7 v
  36. #include <mach/memory.h>
    4 [+ F' l" @$ ]
  37. #include <mach/hardware.h>
    ' s0 l! z0 |# v3 v9 o
  38. #include <mach/irqs.h>
    2 b, x) _2 J: _. S$ a; x
  39. #include <asm/hardware/edma.h>
    4 l. j. z* z$ _" [

  40. 8 ]3 o* ?0 p$ }# \/ J+ \+ r+ ]1 d
  41. #undef EDMA3_DEBUG: w8 v8 t- o; J" t1 _: k. {1 s
  42. /*#define EDMA3_DEBUG*/4 o: R* T7 J1 N7 X/ f# l1 E5 P3 B
  43. 1 {' N6 j' h2 P* f1 B7 u: B- H
  44. #ifdef EDMA3_DEBUG+ E8 K1 o7 H  k
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)4 n5 V  M1 |  M5 P) ]. j# y
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)6 [. q' r! y$ g7 t
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    & K4 z9 p: }9 d, w) G! D
  48. #else
    % ?8 k0 P6 W! P( f2 Q2 T0 z6 S
  49. #define DMA_PRINTK( x... )
    ! ]1 |4 E, Q! f" \
  50. #define DMA_FN_IN- ^& ^8 S- A% o; b/ L
  51. #define DMA_FN_OUT
    + L% v, Y  A! N! U" y  Z
  52. #endif
    ) n6 \  y# H( n  }1 ]4 |- n) `# F
  53. / h: U( X3 \) `9 b# [& Y1 P
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    & `% Q/ e: B! ]  M' E2 q
  55. #define STATIC_SHIFT                3$ m* x9 w9 O$ Y
  56. #define TCINTEN_SHIFT               20+ M7 q8 c. v( ~4 Q
  57. #define ITCINTEN_SHIFT              21  F+ M% b, C3 m; {; c1 m
  58. #define TCCHEN_SHIFT                22
    ' `/ @! f/ k7 p6 f# d% R; a! M1 X
  59. #define ITCCHEN_SHIFT               23, ^1 {+ h3 c$ \2 p; _7 D
  60. 8 L9 O% d0 G, U& r
  61. static volatile int irqraised1 = 0;
    ( f+ }* D2 i8 |  {0 M1 H
  62. static volatile int irqraised2 = 0;
    $ }( z. k$ O: q! `" O
  63. 4 v1 L! z, K% K+ n) _: u: |
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    . m! g* l% R* |+ z
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ( a& O! s" D. P* }
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);- L  `* `- |1 N+ X

  67.   A! G" H* I/ v) J* V' R) n4 U
  68. dma_addr_t dmaphyssrc1 = 0;1 Z4 `5 ~- z  ^* x
  69. dma_addr_t dmaphyssrc2 = 0;
      K4 ^5 ]3 h" `
  70. dma_addr_t dmaphysdest1 = 0;
    . E& C3 d' r' i
  71. dma_addr_t dmaphysdest2 = 0;
    - k! z3 B" ]2 v  W' K- }
  72. * m5 ?! o. y* M  R
  73. char *dmabufsrc1 = NULL;
    # }1 Y1 i! ?" U6 E
  74. char *dmabufsrc2 = NULL;
    ( d' |' j5 \! M' N6 s" w# D
  75. char *dmabufdest1 = NULL;
    + A5 ~/ M, p$ r* @7 r
  76. char *dmabufdest2 = NULL;
    % X* r0 A: [! Z! a

  77. 0 u# q7 \0 m9 `) W3 s
  78. static int acnt = 512;
    / g& K3 F5 S0 y: D+ W6 P% e
  79. static int bcnt = 8;
    $ |  D# y" `3 p; ?2 G3 \+ d
  80. static int ccnt = 8;
    / v3 X( G4 c% p9 T6 P4 }& U' V

  81. , t) j/ Q- l  Q& N- V! f8 y3 u8 G- _
  82. module_param(acnt, int, S_IRUGO);( G8 I/ m$ x  S
  83. module_param(bcnt, int, S_IRUGO);8 h( G: Y* o( \
  84. module_param(ccnt, int, S_IRUGO);
复制代码
1 @0 F7 k9 }+ L

- C  n+ z/ j/ r5 T$ j7 Q  j% o1 @- l      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用) O. \! m4 Q! O
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 o" v9 S6 Y) R3 i" V
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。" t/ A) w2 }# e& n9 P6 Y, u/ Q
* t0 `! o" L( d- v5 H( U

7 O9 [3 T" b4 s/ D
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-25 05:47 , Processed in 0.041568 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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