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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
3 F5 ^& s" F$ @+ @' v
  1. [code]EDMA sample test application
    & p2 x' U3 D0 R7 {% D' Q
  2. /*. C5 q7 d$ _: h/ ?$ ^
  3. * edma_test.c' \% j5 z4 }% N: h5 r
  4. *- @  [' {1 f1 V8 S1 T9 ]5 e6 l" L
  5. * brief  EDMA3 Test Application! k, q' i) Y2 K6 D
  6. *
    5 @9 R' f* |$ Z
  7. *   This file contains EDMA3 Test code.7 i9 t) a+ B3 T7 g! `8 v3 j
  8. *
    & Z- N/ U6 g5 w* G: i& w  Q
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE) R  i$ r0 U5 c) [- `$ V
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT5 `9 A# i; D" p6 Z& v& m+ b1 b
  11. *         TO CHANGE.
    # \6 T+ r: a' P  V$ z
  12. *
    . Y+ r! k; |& ~& u8 U* q- ^
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    $ V' w0 {# D1 @- R+ ~8 Z& m, P: M
  14. *2 ]% @; T! n. {) R
  15. * This program is free software; you can redistribute it and/or* A% A, Z. l+ o2 ^' Z8 j! Q
  16. * modify it under the terms of the GNU General Public License as
    + N6 P' I* Z1 n; c. J( V
  17. * published by the Free Software Foundation version 2.% p) T& f+ z+ C$ `5 A1 L' ^$ i
  18. *' U' ?# o6 }& i8 A
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any+ U; W& p) R& t1 Y0 c
  20. * kind, whether express or implied; without even the implied warranty
    ( h% a5 |$ d4 |! V+ X' M
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the( ?, P6 l8 F6 B) Z9 E$ M4 f
  22. * GNU General Public License for more details.2 [  ^3 m2 I6 l* ]1 [
  23. */. F0 N2 M' v6 L
  24. & q2 X# u" m7 |" _$ M
  25. #include <linux/module.h>
    ) @: g: S5 ^: m3 I
  26. #include <linux/init.h>8 L9 k- g( U# ~) z
  27. #include <linux/errno.h>) y( t" H2 i+ C; H
  28. #include <linux/types.h>
    " s& P# j+ o8 Q! F. \
  29. #include <linux/interrupt.h>
    1 b1 `& t/ o, H/ m. I# e
  30. #include <asm/io.h>
    1 F6 p# U- B. ^$ ?  I
  31. #include <linux/moduleparam.h>( u6 a1 i8 D# I$ B9 B* {/ D
  32. #include <linux/sysctl.h>) K- n8 ]* L. g: |* h6 J
  33. #include <linux/mm.h>' J5 L. N9 W! ]$ n# A4 ?4 ?
  34. #include <linux/dma-mapping.h>
      [1 e  ^& J. c0 U9 |" c2 J+ ~" q, I: x

  35. * y& M( f6 H* r! W% F8 M
  36. #include <mach/memory.h>8 x: S- k5 c1 `* l
  37. #include <mach/hardware.h>
    7 V% |" |$ W/ [" H" L/ g8 K
  38. #include <mach/irqs.h>
    1 [( ?; M: I0 l) B8 h  K
  39. #include <asm/hardware/edma.h>5 }; d; Y4 h4 Z; e" e
  40. : o' H: |0 ^  [  H: G
  41. #undef EDMA3_DEBUG# e% G) r% m* Q7 j/ A# S* \
  42. /*#define EDMA3_DEBUG*/
    . {! s8 f/ V, h0 ?+ y

  43. - H* G3 B1 T" N2 x7 X( o
  44. #ifdef EDMA3_DEBUG
    ! k! x: T6 h( Q, F1 {. h6 T
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    4 e5 @' I7 |! Y* D  W
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__), s0 v7 O  [0 g4 N7 A1 @
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    $ P5 x( Q% C7 ?
  48. #else
    7 ~# e4 P* G4 v8 |+ w
  49. #define DMA_PRINTK( x... )
    8 R( r' n7 y) h4 a( z( V8 o  b
  50. #define DMA_FN_IN
    8 q; V9 K3 |! V/ L( Y$ t) ^
  51. #define DMA_FN_OUT6 ]' c7 c3 M. p6 ?$ d1 m
  52. #endif
    2 T- U1 b: w  Q- x/ D0 H2 v- a

  53. # I5 H/ |+ c( N
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)1 I2 R: X# L" Q! X5 [
  55. #define STATIC_SHIFT                3
    - K4 p9 W. ?- u# a1 Z4 C' r3 l
  56. #define TCINTEN_SHIFT               20
    ! R: i  a9 e6 D4 }! m$ T; U: J
  57. #define ITCINTEN_SHIFT              21  W& r1 n. k4 |6 k$ `
  58. #define TCCHEN_SHIFT                22
    0 q$ C% k  D2 R% G/ v
  59. #define ITCCHEN_SHIFT               23
    9 j8 h/ I3 w1 i6 e5 S+ ]) k5 X
  60. 5 z8 L1 @9 G1 E
  61. static volatile int irqraised1 = 0;
    3 k, W* }! g8 D/ @; M' X; R
  62. static volatile int irqraised2 = 0;
    0 k9 @- o& q, q0 d- m

  63. - j" i$ h( ^2 \- M
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);5 U1 E" }6 Z2 E$ j2 z8 U$ j
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);' q3 o' J5 J" W* N2 J3 M
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    # ~) @5 M* A$ G; b% e- g
  67. . d' T1 F% v' }: P9 e: C
  68. dma_addr_t dmaphyssrc1 = 0;
    ! B' t4 d$ {" M% q8 F4 v  P+ P7 y
  69. dma_addr_t dmaphyssrc2 = 0;6 B) @2 x0 ~6 n/ R% b
  70. dma_addr_t dmaphysdest1 = 0;
    - m% M8 b+ ?: y" z3 C) P
  71. dma_addr_t dmaphysdest2 = 0;
    $ I' K2 d  m) `  c; i% Z1 @, h

  72. - }. l4 O3 S5 Q9 M
  73. char *dmabufsrc1 = NULL;
    ! c; v! \7 C0 N3 N0 f2 g
  74. char *dmabufsrc2 = NULL;
    * `" n6 T4 P& H) t
  75. char *dmabufdest1 = NULL;
    ! x* J, o4 O: x2 h" S
  76. char *dmabufdest2 = NULL;
    ) E$ x; G/ v4 n

  77. 0 j4 v0 s& ?: S5 Y, e
  78. static int acnt = 512;
    5 i8 l9 ~0 X' m/ E5 Z
  79. static int bcnt = 8;: {! \* M( X! f9 b6 G7 u
  80. static int ccnt = 8;
      \8 f- S- a  f( I& N% D$ O

  81. : k4 l/ G% @" E( w2 @0 T8 i( `
  82. module_param(acnt, int, S_IRUGO);0 ?" ^1 D7 N$ G+ A; X; ^( n
  83. module_param(bcnt, int, S_IRUGO);, g1 f/ w9 s3 Y+ j& u7 C8 W8 W/ i; x; L
  84. module_param(ccnt, int, S_IRUGO);
复制代码

# {1 I/ f* Y$ K  V
3 ?+ ~$ ~4 G; i* d4 d, W      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
- c, F& M; K* B7 Z+ Uarm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。- u: y. ?3 h/ V, _& g
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。1 M+ k' X- J7 K3 z  w
* T! a# `  |( t, Q# z' v
* w0 ?$ j4 U0 X7 Z9 X- M5 h# N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-12 13:28 , Processed in 0.039125 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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