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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 5 A& q2 Y& ?7 n7 A
  1. [code]EDMA sample test application
    5 e: e# Z& n$ }* s0 L
  2. /*
    " Y! O1 @% q1 ]9 Q
  3. * edma_test.c8 E0 P5 m8 @) ^% v' O) v
  4. *
    $ w' a, }  O9 T( [' G' R, \
  5. * brief  EDMA3 Test Application7 ]4 A" G+ |: ^) C( _
  6. *
    ' @+ m9 j" n0 k
  7. *   This file contains EDMA3 Test code.3 j7 R& f1 G( p* f0 b
  8. *
    ) k( H: d  ~6 g4 d+ a2 U
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE* \1 p; X$ u  }# Z5 e* u
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT3 ~1 }, E- [8 W$ u
  11. *         TO CHANGE.
    + ~. G8 L% ~6 j; k* F# Z7 Z
  12. *2 l- U! R, _6 |
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    * x0 I( L- Q- B2 E
  14. *
      Y, j# u) U* l# y
  15. * This program is free software; you can redistribute it and/or
    3 p  z) |( c9 }2 r% s, i
  16. * modify it under the terms of the GNU General Public License as
    5 }- w1 f' A, N0 s
  17. * published by the Free Software Foundation version 2.
    . L! e0 Y! W# @/ e* G3 u$ H- O! s
  18. *& p/ A* W0 {' q, M' \
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any/ q+ z6 R4 r6 K. h4 w5 x
  20. * kind, whether express or implied; without even the implied warranty
    $ i8 m# n. Q" K+ s+ h* R/ ^3 z
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    ) B$ p6 c' y( F" l
  22. * GNU General Public License for more details.
    5 g: Q) Y3 Z* S! H1 b
  23. */
    + {+ k; f- p- Q

  24.   |6 y: @$ t' N) z
  25. #include <linux/module.h>5 d7 q; z4 D: l6 ~1 p9 w
  26. #include <linux/init.h>, Z. ~( a' ~- h* g# A% ]
  27. #include <linux/errno.h>9 z* A1 [& K! z5 O
  28. #include <linux/types.h>( e6 F- N7 I) S* I$ i5 f
  29. #include <linux/interrupt.h>
    % X1 x/ J% B* R5 R2 j
  30. #include <asm/io.h>5 M  e, _. l6 i% G. d# r8 t/ d, K
  31. #include <linux/moduleparam.h>' @7 j: w3 V) H" ~$ y4 w% Z
  32. #include <linux/sysctl.h>8 `8 B/ G! p7 f- M7 }! D
  33. #include <linux/mm.h>
    5 O2 Y- C) X3 J" C$ R
  34. #include <linux/dma-mapping.h>6 U* Z8 v  T3 o: o2 c* k
  35. * H3 m  ~- U* F
  36. #include <mach/memory.h>- ]" q& d' m1 h* z7 }2 M, s
  37. #include <mach/hardware.h>' y4 F0 H) h3 \& g! P. |! ^
  38. #include <mach/irqs.h>. I; }5 X3 K  V. X
  39. #include <asm/hardware/edma.h>+ T7 [2 W' L; f" [6 k& A

  40. ) _* t3 m' B0 J) r; ]
  41. #undef EDMA3_DEBUG1 k' j* P! B  r9 Y, b
  42. /*#define EDMA3_DEBUG*/( H2 I1 a+ w  |% a$ P) E  \
  43. 8 u& \1 v/ t; X- `( [( E: B
  44. #ifdef EDMA3_DEBUG
    4 k/ B) o& R7 b: F; r' m. ]
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)( n. ]) J% v* m3 s% P& x: Y, _
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    1 S7 B. U9 H0 Z. H2 v  c$ {/ J
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)" L0 v) L! A: x, S9 w6 F- Z
  48. #else
    # ]- q) X  U7 j' G& e5 z$ v) \
  49. #define DMA_PRINTK( x... )8 K' g  I, Q( ]8 f( w1 E) F' T
  50. #define DMA_FN_IN6 N8 ~' R3 ~: L6 O8 @% Q. f% t
  51. #define DMA_FN_OUT
    / B& J3 w! M: ]4 p2 M' [, L- U
  52. #endif
    3 I: N5 l0 ?7 b: G: s* E) F) `) e
  53. : ^1 w7 g4 p) f* X; ^: m# L/ [1 i
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    + N, h* O( f2 m
  55. #define STATIC_SHIFT                3" q- J& \! {7 t/ P% \4 o; ^  m) d
  56. #define TCINTEN_SHIFT               20
    ( e* B, k3 P, \: Z
  57. #define ITCINTEN_SHIFT              21
    1 T  d+ p- e) T2 `
  58. #define TCCHEN_SHIFT                228 \( W0 z! E8 R# g) {, d
  59. #define ITCCHEN_SHIFT               23
    3 b0 C) t% v7 S8 p* I0 [
  60. # R% Y8 d  l5 r8 y! k4 U
  61. static volatile int irqraised1 = 0;4 c) Z  F, v: H  p$ _5 k
  62. static volatile int irqraised2 = 0;$ ?; F; j, L# v" q/ M6 p0 {! {
  63. ' j# \( j0 Z7 H* @# S+ Y6 P& f
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    & z, t% T# n$ Z* M  b' ?' ^9 N. e
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);6 G& b3 [, K3 B1 |1 y6 d/ |& l
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);% D) d* d! C$ Q, f# y1 x

  67. $ j9 T4 Q( {& |: V
  68. dma_addr_t dmaphyssrc1 = 0;
    - W* |& G) R+ w5 ]
  69. dma_addr_t dmaphyssrc2 = 0;
    4 B1 \& p* d1 B/ s5 q% l6 C
  70. dma_addr_t dmaphysdest1 = 0;
    1 R9 k3 h, h( Z$ a
  71. dma_addr_t dmaphysdest2 = 0;
    $ E) C' c5 x8 _2 @5 }% \

  72. ; G" w+ \( g* N" B1 E
  73. char *dmabufsrc1 = NULL;
    * e- E9 R5 I  v- L8 F$ V0 q
  74. char *dmabufsrc2 = NULL;
    3 @% R# e# \$ g; Q4 ^+ t# l  _
  75. char *dmabufdest1 = NULL;
    5 @, x3 o0 P) ^2 u2 q, i/ r0 [6 F( K
  76. char *dmabufdest2 = NULL;
    - W  C  l$ t; \/ y8 q$ e3 ?! R) z

  77. & y5 \* o; N; Z2 t2 Z
  78. static int acnt = 512;1 x) O4 i( e0 r  g; h
  79. static int bcnt = 8;% a7 h) F, {$ p1 h8 f
  80. static int ccnt = 8;+ }% y7 L, p  R
  81. ! G% X+ ^9 e" |8 ~0 `% G- Q' Z4 L1 I
  82. module_param(acnt, int, S_IRUGO);
    . l( @; B6 U! h+ ]# a# p
  83. module_param(bcnt, int, S_IRUGO);
    " s. ?7 H/ n* P- J5 I/ W+ k
  84. module_param(ccnt, int, S_IRUGO);
复制代码
/ {  {* [8 ?" O; ^/ S+ K

4 g  r9 c" |0 x' q3 N      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
: ]% J2 p- }7 X3 oarm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
( K# o, p6 |% u( z7 h     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
, }5 D3 ?  b& `! m: Z; L
) {2 ~/ J- _8 V9 w1 q" k
3 t5 s& c" E; W* [9 p- _# {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-2 11:34 , Processed in 0.041261 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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