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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
; j# N/ c# w9 i
  1. [code]EDMA sample test application
    / {* t/ B+ O3 c: i: R
  2. /*; ~  P! J' Z3 V, R( _1 W
  3. * edma_test.c) T6 l- Z1 W+ m/ J. D
  4. */ X/ H# l- j2 n2 A! b6 n% X
  5. * brief  EDMA3 Test Application
    / f. _' X8 x5 O* I" U. _8 W* O8 V0 N
  6. *! |/ ]0 p9 |9 g9 e
  7. *   This file contains EDMA3 Test code.
    1 g& o. R; x, z2 ^
  8. *  h# S9 O3 j3 N8 p- k1 ]3 |& f" ]
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    7 k+ C$ {5 B1 P) Q. Z; e  d
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    * ]- Z8 S+ S. R0 E% J& m) t4 ?. }
  11. *         TO CHANGE.: y0 x" f5 f+ y" \5 b
  12. *6 y( x9 K, {! m
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    7 N0 a: j8 F9 B( F
  14. *
    9 b/ v+ M& b3 v
  15. * This program is free software; you can redistribute it and/or
    , Z+ m8 I- _' T  i1 |4 F. X+ e
  16. * modify it under the terms of the GNU General Public License as0 N0 b+ \1 T' v4 j, C
  17. * published by the Free Software Foundation version 2.
    : `2 d, C' J+ K' v
  18. *
    1 Z3 B' z8 o7 Z3 O9 I! O
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    : {! x, B' b. _' L: I  t6 ]
  20. * kind, whether express or implied; without even the implied warranty
    ' }' }% s3 P8 y) C! }
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    ' f3 h" O5 i. o5 ?7 n2 r
  22. * GNU General Public License for more details.) Y) O" ?8 h7 b) i3 L$ m2 i$ W: l
  23. */
    $ o6 Q/ A0 T  W# W! V8 `. A5 X9 ~

  24. " H* [, X3 J# b$ U. N
  25. #include <linux/module.h>+ d+ k) Y' x8 L/ b, B
  26. #include <linux/init.h>5 w/ a" U+ _5 q9 Y2 ?: Y
  27. #include <linux/errno.h>9 y! G8 O6 \: [9 v% d. P
  28. #include <linux/types.h>! j& w; k* f1 A8 M
  29. #include <linux/interrupt.h>
    & R+ H- m3 h. d- T' a2 ^
  30. #include <asm/io.h>7 L; P' ^3 L5 c/ y6 a
  31. #include <linux/moduleparam.h>! X/ f9 H! P3 L/ i* {$ g; ?, b+ ~' X$ X
  32. #include <linux/sysctl.h>5 N; z; @! S0 R' v8 k8 R
  33. #include <linux/mm.h>
    # v/ d7 w7 ^* k- \- f5 s
  34. #include <linux/dma-mapping.h>
    - D( Z* u  T" W( _: f
  35. ' F9 `0 r, I/ g9 f2 Q
  36. #include <mach/memory.h>( S* K$ }- e: U8 M
  37. #include <mach/hardware.h>
    8 h7 N2 l7 n0 G$ M
  38. #include <mach/irqs.h>
    / `2 a) K8 o6 F1 x( P2 ?4 X
  39. #include <asm/hardware/edma.h>( k% V# `+ @% z! |  E* e
  40. " Q7 c) m+ r( X) d3 L$ ?
  41. #undef EDMA3_DEBUG" |1 F* W" \' _1 w
  42. /*#define EDMA3_DEBUG*/6 S; O+ M+ }! X6 E
  43. ( ]  g, z, u1 P# R
  44. #ifdef EDMA3_DEBUG# r1 j+ z  l- n+ q! l1 D1 S
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)! h) P" g$ ?( ~& z2 k, B) h' b' m
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    & O6 w2 `7 l8 y. j- t: ~
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    : h0 @% X' a( w& n2 ]
  48. #else
    ; i$ _) k$ ]. Y& K5 z7 l
  49. #define DMA_PRINTK( x... )
    7 Y+ K  r6 f( r; W, f
  50. #define DMA_FN_IN/ v( S' t: q, Y3 i8 p. X% d2 D6 v
  51. #define DMA_FN_OUT* R& Y" l- ~( Q* n
  52. #endif6 r* e- G& W, u" E2 w' G, |
  53. 4 ~  B$ T9 [) Z) w3 [
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)" `7 z& x" K) N9 C: V; _9 s
  55. #define STATIC_SHIFT                3
    0 X! V6 U7 }) S" ?
  56. #define TCINTEN_SHIFT               20. C. T4 {8 j2 I- q
  57. #define ITCINTEN_SHIFT              216 L) J1 c* F, u$ v
  58. #define TCCHEN_SHIFT                22
    & p9 X- z  }' s; L8 U
  59. #define ITCCHEN_SHIFT               23& i, a3 y% Q, v; R$ B5 F

  60. 5 T3 r2 K5 f  m$ T8 Q! i
  61. static volatile int irqraised1 = 0;2 _! s$ ~9 T; k" o! E% R, M
  62. static volatile int irqraised2 = 0;
    6 l, B# c  o1 C  L4 {

  63. 4 {" R' |  s# x
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);! \  g/ B6 M; o9 A9 k6 y
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    8 A' ?) e2 E6 d1 C1 i2 o0 H
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);: H' ]3 \- d# l* i: z

  67. - `& t+ Z3 o1 d
  68. dma_addr_t dmaphyssrc1 = 0;/ C' p2 F& U8 S
  69. dma_addr_t dmaphyssrc2 = 0;, d, S9 E+ Z3 W% ]: _: J
  70. dma_addr_t dmaphysdest1 = 0;
    1 @$ f+ B) F5 a6 T6 G6 O) `
  71. dma_addr_t dmaphysdest2 = 0;$ H# u3 S1 {/ H/ L* v" T5 R
  72. + J5 D9 p3 ]; M" _' u# k0 Y; I
  73. char *dmabufsrc1 = NULL;# M( R3 S1 ?2 i2 T9 O
  74. char *dmabufsrc2 = NULL;
    9 I0 x( f9 Y9 }
  75. char *dmabufdest1 = NULL;
    " c( b* ^9 Q+ r8 r, G) W8 L6 R8 ^
  76. char *dmabufdest2 = NULL;
    7 {( ?& \; L) M" c+ w
  77. 3 f8 ~! f6 X- t
  78. static int acnt = 512;0 f3 \# T3 H/ M6 u
  79. static int bcnt = 8;
    & J& n: z, s1 g9 N. X
  80. static int ccnt = 8;
    $ y2 ^/ H! v4 n. `1 K

  81. ) j+ K& b! ~+ E# `: t, w6 c% {7 ?/ y  h, C
  82. module_param(acnt, int, S_IRUGO);
    ; D. u: a8 U9 U/ O2 u* Z  P5 |
  83. module_param(bcnt, int, S_IRUGO);6 W  l" M# @/ Q+ p* ?
  84. module_param(ccnt, int, S_IRUGO);
复制代码
2 _: q( t+ S9 [

7 z7 e% G! d* w0 q      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用$ S) H! v) i7 N; B# u
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 C6 G0 t: j3 I: h3 I" ~     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。, p; e7 w: T  \2 c; J. N
. ~, H& Q7 O# G$ v

1 s; @0 _+ s% m( a; c8 S4 g* t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-4 18:10 , Processed in 0.040431 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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