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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
4 m; x: ^! W7 J0 v* T
  1. [code]EDMA sample test application
    ; ?- T# M  n% w/ Z% W: ]0 o
  2. /*
    ! R( K1 d1 R* W4 A
  3. * edma_test.c9 F$ `5 k7 N& S) y2 l) M
  4. *
    " h4 r5 r- y1 @2 H6 ^; |9 l
  5. * brief  EDMA3 Test Application1 O1 f0 F' K2 S/ ^' F. d' i
  6. *, @' t& m  m  @# ?5 J) X7 D
  7. *   This file contains EDMA3 Test code.: Z+ n  C+ a& _# g4 r
  8. *
    ) L+ \+ _  z7 x- }$ G  t
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    " ?* }( Y/ k5 Q: ~. T
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT7 J5 c1 B9 Y! Z* z( H- }/ g7 k& h) F
  11. *         TO CHANGE.. i3 ?0 s3 g4 p% t. v
  12. *4 e. H3 u9 D7 s2 i
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/- }! a8 ]) M5 r" ]4 d; T
  14. *) |6 l/ k( h# |* m
  15. * This program is free software; you can redistribute it and/or
    ! ]% P3 O1 S+ ]% j
  16. * modify it under the terms of the GNU General Public License as
    2 a  u$ q# k0 v7 p+ o7 Z4 G( A: a
  17. * published by the Free Software Foundation version 2.
    + X% X& F/ o& q' V- t
  18. *- G% }' G4 _1 ]
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    2 ?! J0 d$ b  T4 P/ y( ]
  20. * kind, whether express or implied; without even the implied warranty
    # h6 h# j' Z7 V( V" P3 ?, `
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    7 c: b  P; H$ D" y
  22. * GNU General Public License for more details.
    3 F" b" c7 _' {
  23. */
    3 g7 J, I' w5 r+ k6 ~
  24. ' k+ T2 m7 w: t& F4 K- M. n
  25. #include <linux/module.h>1 n+ y3 M3 v5 J, J7 x- A
  26. #include <linux/init.h>
    0 y% E$ E9 I& X4 u
  27. #include <linux/errno.h>+ b% S, m9 o& Y" x4 T/ F. ]' X: v: a
  28. #include <linux/types.h>/ A( Y: e+ `: M, k9 q+ t) q
  29. #include <linux/interrupt.h>/ C, H) ?( S& v
  30. #include <asm/io.h>  n- g$ h2 c4 n9 I. K
  31. #include <linux/moduleparam.h>
    2 f) E2 b9 k2 g3 s2 a
  32. #include <linux/sysctl.h>0 J5 s7 Z* a: ~& ^) U- z
  33. #include <linux/mm.h>/ a! w) Z+ j) V  v5 l  b7 n
  34. #include <linux/dma-mapping.h>
    + P5 B6 V- V( s2 _
  35. , p5 y# J6 n  j1 Y& I/ C
  36. #include <mach/memory.h>- C% j8 q5 p$ G' l3 ^: Y" @& n7 o8 ?3 p
  37. #include <mach/hardware.h>: ]) y5 L# F6 A1 Q( k) `$ b
  38. #include <mach/irqs.h>
    7 V& o& t) @5 |- k4 A6 e! B
  39. #include <asm/hardware/edma.h>
    2 d" V* B7 }/ B  s

  40. / k2 M; w+ u0 I
  41. #undef EDMA3_DEBUG
    & N/ U9 n; `  w' z! F' i
  42. /*#define EDMA3_DEBUG*/
    ) q0 P" s# l4 o9 Q& \; l
  43. & U( D8 C9 ?- m( K4 X' \2 s2 v
  44. #ifdef EDMA3_DEBUG
    ( U% {# O8 y) X; \) o
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
      M, D+ E: t- W; P/ [
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)/ X9 J1 ?. y, W( J- ]
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    5 c4 S3 K9 O5 S9 D* F6 x8 c$ c
  48. #else' b+ ^2 x. X4 L$ x' R
  49. #define DMA_PRINTK( x... )) g$ b$ @% R/ X5 h# T
  50. #define DMA_FN_IN
    7 p# h7 ?) r8 E% O/ S6 ^. k
  51. #define DMA_FN_OUT
    ) Z3 l: R/ ]$ X! S' W5 A' F
  52. #endif0 V, C& X5 A+ V
  53. ) u" S" B! T- q( ~
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)3 W1 K8 a3 b+ P7 h  ~% v) s
  55. #define STATIC_SHIFT                3
    3 u! N; K2 e/ y  j' ]9 v
  56. #define TCINTEN_SHIFT               205 z. N' I" k: S3 q; |% a
  57. #define ITCINTEN_SHIFT              21
    6 i0 {& [& N# S/ a! e8 t
  58. #define TCCHEN_SHIFT                22
    0 Y# R! T) M# G2 v
  59. #define ITCCHEN_SHIFT               232 L) ~5 O7 \7 m7 O+ n2 U! E
  60. , M+ G, s' I" ^$ q0 m3 h; ^4 m
  61. static volatile int irqraised1 = 0;
    : L' [; m" A2 ?. A% `, }3 P) n
  62. static volatile int irqraised2 = 0;
    9 p3 H  }; L$ O3 U! q

  63. 4 }6 j0 ^& J3 Q: K& Q2 |
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);! ~, i4 v! E6 X* P. R& s
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    # ?* c% c$ A! E0 h& N  G: j; `
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);' _4 _9 o/ s. F3 W( w# _6 ~
  67. # m) Y+ v* R1 h. T+ b
  68. dma_addr_t dmaphyssrc1 = 0;
    % P: g9 O$ `3 S$ l3 O0 r
  69. dma_addr_t dmaphyssrc2 = 0;5 a& C. D, R; e3 ^) k
  70. dma_addr_t dmaphysdest1 = 0;
    . Q! Z: c. C1 o4 D' |7 k/ k
  71. dma_addr_t dmaphysdest2 = 0;5 r2 j! |  @( r# A5 z
  72. + ]" [8 C* c/ q4 A- p
  73. char *dmabufsrc1 = NULL;
    # T( O! i5 u) n6 L) [
  74. char *dmabufsrc2 = NULL;
    " x- x  V- a  y6 w0 v* E
  75. char *dmabufdest1 = NULL;% e" O" d6 ^/ x7 Q6 u5 B; h
  76. char *dmabufdest2 = NULL;
    $ x1 T* Z( t0 L  ]7 u

  77.   m" a. Y1 @1 i; a8 ~$ N
  78. static int acnt = 512;4 C1 A. R7 |9 N2 A( P* M& ]& c7 r
  79. static int bcnt = 8;
      B6 [0 `# z4 Q4 k+ i) |
  80. static int ccnt = 8;3 J& x4 Z) p3 {

  81. - A% d6 m6 P5 E8 ~
  82. module_param(acnt, int, S_IRUGO);$ t4 n, v( ~* [2 J5 A& Q2 b7 h
  83. module_param(bcnt, int, S_IRUGO);
    7 y. X7 g3 Y9 O' W6 B: P
  84. module_param(ccnt, int, S_IRUGO);
复制代码
# u. F; b& J" ]3 N8 v' {3 ^% g

+ \. l6 R2 Y7 k" K7 ^- n+ F+ g+ f- v      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
0 l6 N: n7 [8 Q- m/ h) Xarm-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 j- m9 ~$ ?9 D  s
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
( y- P$ w4 b, c4 }2 e4 x
$ I' N0 `' }. N/ c: j) E% x, Z7 D5 @  d" ?# n8 M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-9-3 01:23 , Processed in 0.047271 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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