OMAPL138如何在Linux下使用EDMA3驱动 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
/ Z' Y- S6 y% l# k* o
  1. [code]EDMA sample test application  i. h- O, E" m2 C- h9 t
  2. /** A- h; T. ~, Z2 y) k. [3 b
  3. * edma_test.c9 l% N7 U# q+ Y. H: n6 G
  4. *
    3 T# S2 P2 C# t. [
  5. * brief  EDMA3 Test Application
    6 E+ v7 `  Z6 h  K* F( s
  6. *0 r1 {+ D3 X/ S5 h* r/ k
  7. *   This file contains EDMA3 Test code., Q7 S- u% J  T  W( y' ]
  8. *  v9 H3 F5 D7 B. S  C3 {, o2 r2 j
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    % D2 G) i' [# Y6 s5 j% e( V
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT6 T' _) I; v+ b
  11. *         TO CHANGE.: Q+ W, F# \4 ]! ^# }
  12. *. h; q/ u7 Q: m' K2 \" ?/ D0 y
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com// Z: ~& m- C6 D9 P' Q7 {
  14. *) R+ t6 |2 H: L& N
  15. * This program is free software; you can redistribute it and/or# M% n3 u* x8 R- h2 x
  16. * modify it under the terms of the GNU General Public License as
    " C' l% O# }1 U$ h( L3 y, W
  17. * published by the Free Software Foundation version 2.% @* w) r5 y! A0 g
  18. *
    " V% D6 M3 i0 a' x5 z% x
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    ( R) ^8 q6 c% H2 o3 I7 K) X
  20. * kind, whether express or implied; without even the implied warranty
    # i+ S" X, z$ a3 \
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + @0 U/ B% H- i- Z
  22. * GNU General Public License for more details.7 K0 r& e' v) b' ~9 [2 W% s
  23. */3 _2 s) O/ K4 J' w

  24. $ \  z/ ]) V* X1 a* L
  25. #include <linux/module.h>2 C+ }& Y! R6 J
  26. #include <linux/init.h>$ ?6 j1 _8 y5 a0 F1 P0 S4 v
  27. #include <linux/errno.h>5 E# j1 O, C' r) Z7 ]4 z8 ~
  28. #include <linux/types.h>
    , X* J! H! Y: h8 t: R
  29. #include <linux/interrupt.h>
    9 ?0 z6 |. [3 R  M6 p* A, b! j9 q9 T
  30. #include <asm/io.h>' O9 Q0 a) p' O, |
  31. #include <linux/moduleparam.h>& c1 |; ]' e5 R. q3 m+ Z
  32. #include <linux/sysctl.h>3 F/ \2 y7 o/ o% M- `
  33. #include <linux/mm.h>$ d! Z, I2 m- l) K" }
  34. #include <linux/dma-mapping.h>
    6 B9 q; N# J! l5 w/ F" Z
  35. ; k+ L* U; _$ W* T( Q# h
  36. #include <mach/memory.h>$ u2 S$ g% C8 b/ y, w3 f7 a$ U# M
  37. #include <mach/hardware.h>
    2 N  u( S* e( Z' V7 N& W9 n
  38. #include <mach/irqs.h>
    % ?$ w4 E+ o: H1 k9 K! A- Q+ I& X
  39. #include <asm/hardware/edma.h>
    6 Y, r4 r4 l4 v$ _0 w) T+ p0 X

  40. * w7 @( A* i+ }, F! q* {) D, k) }
  41. #undef EDMA3_DEBUG
    - }2 b4 v" [1 s  m" l/ K  g
  42. /*#define EDMA3_DEBUG*/
    / S7 H8 K$ g4 N/ ]5 Z; d0 t1 N% @' q

  43. 1 F2 d5 f" z! D; v  j5 i1 X7 i
  44. #ifdef EDMA3_DEBUG, Z4 A% ^: ^/ u3 Q
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    * r" n7 x1 y( y* w7 E
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)+ t, D* l. O$ C, Z
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)7 P; S2 U% q- [9 n6 x- T1 W
  48. #else
      b' }% h0 z" n, m
  49. #define DMA_PRINTK( x... ). f& F$ Q) {% N! h9 A8 @
  50. #define DMA_FN_IN
    ! t6 R* [, e+ q3 a
  51. #define DMA_FN_OUT  x7 _8 E4 e. S$ Z
  52. #endif' O/ _" h4 v# J
  53. ' a& ~- K7 j3 x+ d, R
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    + ^9 z" F+ v0 r' \; C, \, w% d
  55. #define STATIC_SHIFT                30 [, W! }  m; S. n6 U. [; t8 K
  56. #define TCINTEN_SHIFT               20
    ; O- n$ c& f- O. z* u  g' F0 A
  57. #define ITCINTEN_SHIFT              21
    + p/ K( E) d7 L) M  W& v7 \$ O' M: |4 o
  58. #define TCCHEN_SHIFT                22  u" D: \2 G" q1 i" M6 p
  59. #define ITCCHEN_SHIFT               23# l: Z$ i7 f, O* |9 Q1 K, \

  60. 2 u# w8 r) g- Y  d3 p7 O
  61. static volatile int irqraised1 = 0;( x9 v8 f6 |2 X- ?3 O$ S0 V; w3 q
  62. static volatile int irqraised2 = 0;% }+ V8 R; P& ?( r, Z1 _
  63. / T) T) T' o8 x0 D" {& T3 z8 Z
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ) \. q- i/ \% I) `# o) H
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ' b  }) W' ~/ A' ?
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    : O  D0 y$ \2 {  h: Y
  67. 2 V- |- C% g# H9 t( J# s4 W* x
  68. dma_addr_t dmaphyssrc1 = 0;; a" y- P- ?) _0 p) h( `. {
  69. dma_addr_t dmaphyssrc2 = 0;
    / N3 Z! h$ @# |/ z  b& F# f
  70. dma_addr_t dmaphysdest1 = 0;
    / E( O9 n4 j& v* B9 g
  71. dma_addr_t dmaphysdest2 = 0;
    4 e, d# [- k4 Z+ F7 Z

  72. 4 o: }. Y7 i' x2 b
  73. char *dmabufsrc1 = NULL;8 q" n% q( f4 [( N
  74. char *dmabufsrc2 = NULL;: Y4 B; ~0 }; f1 u- X7 u
  75. char *dmabufdest1 = NULL;: `8 L4 {! H) D7 A0 j# b2 n3 j  {, ?
  76. char *dmabufdest2 = NULL;
    - I- ^8 W+ l  P% i; S9 n
  77. " ]" x3 i4 ~6 b. K1 h  g) N8 s5 b9 N
  78. static int acnt = 512;
    / v3 L7 j$ \! x# f6 `' M
  79. static int bcnt = 8;# f% z: L2 Y! ^- w
  80. static int ccnt = 8;& ]+ n, z' Q' [1 O# C! V

  81. 3 g) I% U' x9 A
  82. module_param(acnt, int, S_IRUGO);
    ( w6 C" \: e5 i4 \$ I; Z: a, H* e& K
  83. module_param(bcnt, int, S_IRUGO);# ^4 O& p& W  e' {
  84. module_param(ccnt, int, S_IRUGO);
复制代码
! q: m3 N. U. O6 J8 C( M- K

6 L# h, ?8 R/ [9 m& O9 U0 Z      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
+ K) t$ o% d. {" r; J# karm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
& F+ a! S7 Z5 Q) C9 E     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
* B4 e1 m5 `- r! V9 b" x# T
0 K3 R) S+ J$ K: s3 Z( j
8 R- c' ?, Y4 U0 c( T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-12 01:13 , Processed in 0.037414 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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