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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
) Z0 O# T9 P- j7 t, J0 d+ d
  1. [code]EDMA sample test application! G6 Q' {, X( y/ A
  2. /*- G; Y* W( N  Y% o. O
  3. * edma_test.c
    ! g! P% T4 p1 [. m6 A
  4. *
    ( M3 q! l8 F$ Q6 {& Y. ]" M
  5. * brief  EDMA3 Test Application# t' s0 s) q" H  `+ H7 x
  6. *
    5 `1 `; j, X) q3 ~& e3 B) X) ^
  7. *   This file contains EDMA3 Test code.
    1 I! n9 q! o- N- v- `- |
  8. *& U# J8 W) a$ f1 k+ A- H2 w
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    2 P6 @% t# r# Q  g3 D
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT/ B* t& @; x6 ?$ e( k% \8 l: b& A. d
  11. *         TO CHANGE.4 i& `/ a$ \; B4 d3 F
  12. *- W7 C& a  }; Y. O$ ]1 F4 d
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    % W2 }# A5 a& G
  14. ** ~7 g' ^. _% z
  15. * This program is free software; you can redistribute it and/or7 k6 n' T2 @  e9 h0 _
  16. * modify it under the terms of the GNU General Public License as
    ) F7 |8 _$ _; `& \/ K( @
  17. * published by the Free Software Foundation version 2.
    ( d( l, P. h4 N/ l4 E5 }& ]3 m
  18. *  e6 ~* A8 Z# v2 R
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any$ p) j; j8 K6 p, w
  20. * kind, whether express or implied; without even the implied warranty( R1 W* {+ E2 V) B# l$ o3 S
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the- D; \/ F4 e4 q/ t
  22. * GNU General Public License for more details.; r' D# y% a' E/ M, N8 m" n3 e9 {! f
  23. */: `3 `5 b6 h, S  t
  24. 6 p. V9 H, w7 n' s
  25. #include <linux/module.h>
    ! i) F0 P2 l+ |  E
  26. #include <linux/init.h>- e8 l5 V  Q# j+ ?; m7 J& W; a9 P
  27. #include <linux/errno.h>
    1 {" V+ N7 C  J
  28. #include <linux/types.h>
    0 _- W+ o  ]8 e* Z
  29. #include <linux/interrupt.h>
    3 }& m7 @6 L2 Q% ~' B; ?7 l, i- W9 l
  30. #include <asm/io.h>/ s& s4 x7 o; P+ M7 n7 o3 }
  31. #include <linux/moduleparam.h>8 ^! N9 h, ]$ c5 a; g
  32. #include <linux/sysctl.h>
    7 L) T* W+ ^) b; l! y
  33. #include <linux/mm.h>
    ! x0 x* W% g; W- f
  34. #include <linux/dma-mapping.h>
    & P9 g7 b1 o* G( {0 U

  35. % t4 M" z0 d% h: h+ P
  36. #include <mach/memory.h>) U3 z! b3 Y9 X. S9 s/ r
  37. #include <mach/hardware.h>7 W. r: y. y% V9 h( ~& m/ d
  38. #include <mach/irqs.h>
      X. H& i2 n  r2 r- n
  39. #include <asm/hardware/edma.h>
    ) B8 c. ^3 y& B+ g+ @$ p5 T* a

  40. $ a- @0 v" e7 S: o3 A6 e6 H- ]
  41. #undef EDMA3_DEBUG9 H/ M: y# f! i2 @5 U
  42. /*#define EDMA3_DEBUG*/& D2 U/ d& C) b7 _* N9 E& O

  43. # h/ ?0 K! `+ ?" m
  44. #ifdef EDMA3_DEBUG
    2 L3 N# v: n  p* v
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    " i3 t9 \4 ^, N' p
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__). L% v: y# ^! F, q
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)7 `5 y6 \2 [* N% h. n
  48. #else5 t4 I+ d( h: B2 @3 K. p
  49. #define DMA_PRINTK( x... )
    4 h3 v( h. f# @7 e( i7 F8 h2 _" H7 N4 S
  50. #define DMA_FN_IN" I$ B  K* t2 y0 Y; F3 Q5 c
  51. #define DMA_FN_OUT
    & ]) ?4 u+ T( ^7 w; B4 P" x0 W
  52. #endif& L) c" A0 Y9 v: d+ D% R7 M
  53. ! \) q' z/ x5 s; D
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    ; X' S/ m! p& D- P) i
  55. #define STATIC_SHIFT                3+ S! D/ o' r* p
  56. #define TCINTEN_SHIFT               20( F+ f2 \& }+ ^% A! g
  57. #define ITCINTEN_SHIFT              21
    : l  Q/ i3 q! J* e5 j
  58. #define TCCHEN_SHIFT                22( ^$ L6 T3 ^+ y6 W5 L* s
  59. #define ITCCHEN_SHIFT               23* z7 [2 a+ Y+ I4 o* e( _
  60. ( X& t- B# h8 i$ \% G8 D: i
  61. static volatile int irqraised1 = 0;9 H' }, ^5 ?8 _
  62. static volatile int irqraised2 = 0;- t) Y5 r2 s! B( d$ Y! d$ q  O

  63. 5 y: p. P$ S0 A# V8 f& ~) G8 M
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    : }* a# {4 _( U
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);$ _% s  K7 |- i" j
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    6 ^8 u! O* Q. L) j% p3 T0 j

  67. 9 j/ l. [6 p  a5 K- l# \" ~# k
  68. dma_addr_t dmaphyssrc1 = 0;
    % r" e! J. e. Z3 v& m
  69. dma_addr_t dmaphyssrc2 = 0;8 S& K7 n% {4 E0 f! S, W
  70. dma_addr_t dmaphysdest1 = 0;
    8 O6 M0 X& J) O
  71. dma_addr_t dmaphysdest2 = 0;: b# Z( ]0 ]3 e+ O

  72. 4 z4 q+ N& _2 H! y: W* j* U
  73. char *dmabufsrc1 = NULL;
    & W7 M& R3 k2 O. [% {
  74. char *dmabufsrc2 = NULL;
    + t/ o2 B& p8 ?$ l( P  I( u
  75. char *dmabufdest1 = NULL;, A8 {' z2 G% w  k4 M" S7 U; t; |
  76. char *dmabufdest2 = NULL;5 p5 C$ y+ F% l
  77. 3 m( b3 I7 d9 h6 U- l
  78. static int acnt = 512;, {& a7 b% I" w! J
  79. static int bcnt = 8;1 x% L( S) e3 C8 i! T8 c" o( k0 ^
  80. static int ccnt = 8;
    ) D# N; F5 \1 O) N
  81. & _. {0 {! p& u7 B& m- a
  82. module_param(acnt, int, S_IRUGO);+ ~# J) ~7 v% ]) o3 ^, m
  83. module_param(bcnt, int, S_IRUGO);
    ; o& [+ G0 F# j+ |% o
  84. module_param(ccnt, int, S_IRUGO);
复制代码

9 _# [1 I4 }, w4 W% y* y
4 v$ g: v( Y: g! t' _      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用3 T, D* G" @' ~0 C# g; k7 w
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
  Y: l  z# y. |' W     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。5 r0 X3 S. `: E+ v) e9 }

! S! c( `$ L0 Y( h# Z4 |  ^1 H* Q4 d8 X$ n& k0 s
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-3 04:37 , Processed in 0.041257 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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