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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 ; b/ |& p, r5 o: O8 Z) ?  L7 T0 q$ j, \
  1. [code]EDMA sample test application: F3 h1 }* {; @7 C1 r' |; s
  2. /*
    % p' L9 ~+ |6 T6 p
  3. * edma_test.c
    7 ]& w4 q5 _' {7 E) ?) y
  4. *
      q! P$ U& i7 L! p* J" l
  5. * brief  EDMA3 Test Application" r1 P# x# O  N! W/ \
  6. *
    1 ]; ^& m' M6 S& `: [7 W/ M
  7. *   This file contains EDMA3 Test code.
    6 M! e; R. T" p2 C2 d9 N
  8. *
    2 q3 F+ F- S: q- N: O5 y
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE/ g% H  j1 T1 J/ s# ]- e! ^" `
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    ' ~* q2 J( q' z, N
  11. *         TO CHANGE.
    # @9 o0 P$ _2 Q( {5 m/ `
  12. *  @, Y# b1 R  Z) |* Z9 A; [) P& }
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    ' f4 H2 P3 O! U$ c  z- t7 V
  14. *
    . s5 J; o. r$ ^9 o3 s( h. ^% U
  15. * This program is free software; you can redistribute it and/or
    ( a/ I. E& i1 u" \! x9 Z: r
  16. * modify it under the terms of the GNU General Public License as$ ~* q- G" t" Q2 V" q
  17. * published by the Free Software Foundation version 2.1 x' D3 q' r9 z
  18. *
    , h% B% _  {8 G; j5 \6 H: [
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    " t: {4 d: U9 ^1 }6 E
  20. * kind, whether express or implied; without even the implied warranty
    " @" a  k5 Z5 R
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    $ r" H( {' u4 f7 @) T7 n7 i" [
  22. * GNU General Public License for more details.+ Z; d0 i! c$ q3 S% C' U
  23. */4 B) Q4 n  g' I- V
  24. * W4 ^* U/ s* Z1 A
  25. #include <linux/module.h>
    8 [. \9 r4 B! ^
  26. #include <linux/init.h>( L" b0 l8 i  t! q) q- r
  27. #include <linux/errno.h>
    0 q2 h  k, v" j. M
  28. #include <linux/types.h>: c6 b$ v& v. b1 Q( d
  29. #include <linux/interrupt.h>
    + g/ s/ I7 [7 B" z2 ^
  30. #include <asm/io.h>6 }7 }% \- Z: y. |2 K+ @# I; c) p
  31. #include <linux/moduleparam.h>
    / P6 V* B% N1 F; e  o6 `
  32. #include <linux/sysctl.h>( _+ X9 n( L1 i$ }$ H+ `' _6 x5 D
  33. #include <linux/mm.h>
    0 @3 J1 z) h+ W5 Z. V7 c
  34. #include <linux/dma-mapping.h>
    $ E0 ]& b. u, p; z) ^- a. k

  35. 3 s' @! I# I5 b, {
  36. #include <mach/memory.h>
    9 l6 X9 A) u0 W8 j
  37. #include <mach/hardware.h>, u2 E) V/ H+ i! B
  38. #include <mach/irqs.h>
    5 q* D( H9 I0 d4 W9 e# U
  39. #include <asm/hardware/edma.h>
    " r; V; G* l$ V; e
  40. ( ?+ L* ]6 j5 o- j2 W
  41. #undef EDMA3_DEBUG, ~6 S& Z. |% f, m
  42. /*#define EDMA3_DEBUG*/+ x$ O& @4 ?& Z% I5 y/ \* z
  43. % O4 }6 }0 I, m
  44. #ifdef EDMA3_DEBUG' G& s; @; c/ l
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)- o' V/ m! o! }
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)( Y- ]6 p$ o& k, a8 v9 T6 o
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    . i# E. t6 T  G! D9 E. D
  48. #else* c; [+ v$ N% J) Y& F
  49. #define DMA_PRINTK( x... )' N8 c. C6 B" F/ y' s
  50. #define DMA_FN_IN
    ' B  }! W' }1 ?# I
  51. #define DMA_FN_OUT
    1 \& x; |3 }7 q( J
  52. #endif: s% I, ~9 P+ g+ f

  53. 1 M$ }- e5 O% _0 |* Z
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)% `; r4 {3 [; h+ A
  55. #define STATIC_SHIFT                3
    1 @" M. N/ v/ [% w/ @" R, D0 c
  56. #define TCINTEN_SHIFT               20
    2 h$ |8 t; y1 Y) Q( l
  57. #define ITCINTEN_SHIFT              21# \! \; n4 r4 H. o  K+ D
  58. #define TCCHEN_SHIFT                22
    . g0 z$ q5 r" u1 e$ G; B
  59. #define ITCCHEN_SHIFT               23
    # d" G4 O' E' |7 T- z- z: [, N' a

  60. 7 ~% H' o$ o4 p2 G. i
  61. static volatile int irqraised1 = 0;7 W7 f+ d6 d/ Y; J* F
  62. static volatile int irqraised2 = 0;
    ; r* d% T6 g* l+ q( S
  63. 5 c9 j% U% }& U. N- b) W3 g
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    0 C8 A8 n! j: \% n- J; ~  }1 {
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ) _. v9 z( ~; |* C9 g# d8 S
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    + B' S! G2 F. Z/ Y4 K

  67.   g- W  q* E& K4 [
  68. dma_addr_t dmaphyssrc1 = 0;
    ! X7 i8 q  `6 D9 b& i
  69. dma_addr_t dmaphyssrc2 = 0;. A1 v- v% D2 K6 j
  70. dma_addr_t dmaphysdest1 = 0;7 q4 |! f! X" f5 e4 F! J' f& s/ s8 Z
  71. dma_addr_t dmaphysdest2 = 0;
    + \" U# Y% d& ]) q

  72. 7 H9 y4 u1 |" `* Y$ y9 z2 C' f3 J
  73. char *dmabufsrc1 = NULL;& f# \9 ^9 M( M& U5 O0 q
  74. char *dmabufsrc2 = NULL;* P# J# t* E# i5 u/ ?
  75. char *dmabufdest1 = NULL;2 m- R1 K3 D: y/ I
  76. char *dmabufdest2 = NULL;- f% J" y/ J8 U' Z/ {
  77. . F# W: |" I. Q/ L3 E: z
  78. static int acnt = 512;
    " R# l8 W( i1 Z# y' Z
  79. static int bcnt = 8;
    ' H- Q! j( U: C$ I! x  N9 z
  80. static int ccnt = 8;
    & H. ~; S0 h2 `' t

  81. . A, i4 [# w4 v* a* s! o6 M' B
  82. module_param(acnt, int, S_IRUGO);. P% O/ b+ N- p/ ^8 E  Z8 v
  83. module_param(bcnt, int, S_IRUGO);" {0 v8 s% O+ {; C; y
  84. module_param(ccnt, int, S_IRUGO);
复制代码

4 d$ J5 [4 J) B" k! L
, w$ i0 q6 Z: e9 q      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
1 ]' Y2 ^( W& m! ]8 W5 Harm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
+ F9 k5 b2 X- l     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
3 j/ y" y$ ]) n, B& s4 Z
, u, O! O. ~2 d, F5 v
  S! B0 J% C- u: T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-24 21:15 , Processed in 0.040726 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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