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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
1 z. ?$ ~, D- S2 ~: I0 J. ?: c
  1. [code]EDMA sample test application/ e2 N7 j4 W% m
  2. /*7 Q, o1 \* ]& ^) s1 T
  3. * edma_test.c1 ~  @9 W2 ^3 ^$ O
  4. *
    - M3 w; x) ]) K2 K1 s: H; z9 a9 S
  5. * brief  EDMA3 Test Application
    . W0 ]$ W6 i; ~) ?  F
  6. *
    0 h' j# r: M% i% T3 e
  7. *   This file contains EDMA3 Test code.
    3 J$ O) k, d$ V: v8 T8 y
  8. *, V. {: _7 A$ D& y
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    6 s' P! L4 E: M8 D0 _. O
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    8 _# X( \5 m+ y2 l
  11. *         TO CHANGE.
    # t; Q: }* m8 @, }& y1 X8 E+ y
  12. *- v, |: J) M" _8 I" ?* K- w
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    ; ~# u' D) V/ c( R4 v9 o7 b
  14. *2 f8 X. ~: y; A: q6 F
  15. * This program is free software; you can redistribute it and/or
    2 Y; m6 F$ H+ u; I& j1 ?
  16. * modify it under the terms of the GNU General Public License as
    ( I0 Z1 j* |: M8 Z( W6 h
  17. * published by the Free Software Foundation version 2.
    , e- U9 b" [* [1 i6 M
  18. *
    & I: {2 h* \8 n& r) z
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any" x( ]7 R' N) E- w$ Y/ p
  20. * kind, whether express or implied; without even the implied warranty
    & d  e& P' a' k: n# U9 r4 N
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the( `5 x; \7 g' @. J. Z
  22. * GNU General Public License for more details.
    # z" P5 M, A9 v0 @6 l
  23. */1 ]" d0 s7 o; Y4 B5 d" l
  24. - p! ~+ ?- t2 S5 a- J7 ^& [- k% W
  25. #include <linux/module.h>
    2 i3 z# b% F' A' X; L
  26. #include <linux/init.h>+ b$ u5 E9 ^+ ]8 M$ g
  27. #include <linux/errno.h>" Y- w% o0 |' ]& ]
  28. #include <linux/types.h>* W! y( H. B, \% s/ c
  29. #include <linux/interrupt.h>) U3 t' S2 X+ |. ]# ~/ w9 n$ }
  30. #include <asm/io.h>
      ]3 p) D$ W5 N1 ~! ~$ Z
  31. #include <linux/moduleparam.h>4 H3 r& J7 Y8 d) D
  32. #include <linux/sysctl.h>' K$ P$ U+ N% q' q( f3 `' o
  33. #include <linux/mm.h>
    ; p6 N4 z) i1 N  [
  34. #include <linux/dma-mapping.h>* N! V; ?0 _8 n, v  n$ M5 F
  35. , D" ]4 x( P/ O3 a7 k
  36. #include <mach/memory.h>0 s1 u6 m* T, g
  37. #include <mach/hardware.h>
    # f) V) M5 @1 i
  38. #include <mach/irqs.h>8 m8 K$ b  W1 H& U: u5 i( ]/ t
  39. #include <asm/hardware/edma.h>
    1 @0 C( [" C+ f4 p$ s4 a' c

  40. % d2 b: U4 d# ^: m
  41. #undef EDMA3_DEBUG
    7 P0 v( q2 p0 D4 |# S
  42. /*#define EDMA3_DEBUG*/8 g9 t+ ?4 X9 O% i% Q- a& s

  43. " n: `9 Z" j: }& m2 ^( }2 y3 }
  44. #ifdef EDMA3_DEBUG) u7 \: J3 q3 l* h
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)& H" {/ g# t8 ?6 f, T9 g3 z( P
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    . h2 a7 K7 S0 d% m
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    ( B0 W" J( n3 d7 V0 N
  48. #else
    ; p2 K9 r7 i& g( O7 d
  49. #define DMA_PRINTK( x... )
    3 M& E2 }1 ]: B. a
  50. #define DMA_FN_IN0 P7 N/ ^  I0 ~1 e! S; U0 ^
  51. #define DMA_FN_OUT5 S4 X! E) p1 X: A' l9 x7 z
  52. #endif8 s& R4 C! b+ t8 R& A
  53. 8 ?6 c; @4 d/ D* j/ v
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    5 a, |" g; \- ?: `# N
  55. #define STATIC_SHIFT                3% P. ?5 i! v! q) B1 R9 `* {
  56. #define TCINTEN_SHIFT               20
    0 u- I7 g$ {* L: X& d6 L
  57. #define ITCINTEN_SHIFT              213 W* [% }/ K1 ?& Q* p; V$ X
  58. #define TCCHEN_SHIFT                22
    ( z# z% p. o0 l! L: [
  59. #define ITCCHEN_SHIFT               23
    $ X  Y  {# D! h: J0 |# @9 v

  60. 3 g; `" T5 j9 E: c
  61. static volatile int irqraised1 = 0;1 |2 |: v' c8 F  I+ }& K4 v; n
  62. static volatile int irqraised2 = 0;, k) m/ \4 R- p, H6 m

  63.   [; m0 P6 `/ F" q7 x/ H4 P8 [+ |
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);. r$ U2 \! @! t. s. A; b; K
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);! \( L' q" w8 ]; h1 }6 [
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    9 r$ e3 L: b* I5 Y9 d  x

  67. 6 z8 j% I+ {1 B, @) o* F. u, x
  68. dma_addr_t dmaphyssrc1 = 0;; z8 o( ]4 {- w( o8 w; p; k
  69. dma_addr_t dmaphyssrc2 = 0;1 t  j' \5 E: X2 M  Q% r+ r: ~
  70. dma_addr_t dmaphysdest1 = 0;: U* d4 O3 ~( z& f: I
  71. dma_addr_t dmaphysdest2 = 0;! n( j/ |1 o) [+ [% b

  72. 4 c; X0 {: {3 d; f* a
  73. char *dmabufsrc1 = NULL;# y( ~) ?! k, Z7 ^
  74. char *dmabufsrc2 = NULL;
    2 s2 _% q2 X; x; u0 F7 d" S0 @8 k
  75. char *dmabufdest1 = NULL;
    1 w- {* V( J; r+ j/ ]% ~: V; [
  76. char *dmabufdest2 = NULL;
    + S# U; @- k% `% z8 V5 @
  77. 3 G4 k$ @% |6 ^" V/ ^* I
  78. static int acnt = 512;) j; a4 ?3 l5 u+ [* d* V
  79. static int bcnt = 8;
    $ {/ x1 \& C* e9 n2 s/ L
  80. static int ccnt = 8;
    1 A- Z- |: y2 q" U

  81. - y3 R2 d" ~- X8 R$ G) K: q! H; y) N
  82. module_param(acnt, int, S_IRUGO);- x7 _- c- e6 g; `8 e
  83. module_param(bcnt, int, S_IRUGO);
    + k1 D1 ]# ^' }7 I( `$ n7 I: q
  84. module_param(ccnt, int, S_IRUGO);
复制代码
1 W( w, P2 C# j
2 I- `$ s8 S0 s, P
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
; Q1 j6 i/ @5 m( o" Harm-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 T+ C$ d2 ?7 I; j/ t7 _2 e! y     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
8 G: _1 I  F: a7 }
* R8 E. E$ P) K2 M, x; [* E/ Q3 p, U/ s) |- D  f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-4 15:37 , Processed in 0.038889 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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