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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 & r6 Z# Y( y6 ^1 P' d
  1. [code]EDMA sample test application, p5 ]- g  c! z, N" t9 q
  2. /*
    : z( R5 M& b, E5 e& e
  3. * edma_test.c! |/ Z$ s( f2 C5 R. o
  4. *
    * m( A  }% ]6 b
  5. * brief  EDMA3 Test Application( H4 s5 @% T9 i" `) `! s/ U% s
  6. *% o* @. y; {0 [) h2 ~; p  |
  7. *   This file contains EDMA3 Test code.
    . J' h+ q5 r' d
  8. *0 `+ @+ Y9 Y3 m# ^, j. X( V
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE# {/ M% J! L4 O- y0 P* G
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    + U$ C- o/ ]% }0 e& g% s5 W
  11. *         TO CHANGE.
    - P* c+ l. m$ @: Y' B
  12. *
    ; o; @0 _7 V, p0 V1 k" m5 q; X
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/6 f9 `* {3 `9 i
  14. *
    0 X, a* ]3 N3 A# a, E
  15. * This program is free software; you can redistribute it and/or
    9 |8 k2 v8 u! Z/ y1 l4 z1 P0 M
  16. * modify it under the terms of the GNU General Public License as
    4 v! N7 t0 q% v- Q! y, E2 O- u1 a' s
  17. * published by the Free Software Foundation version 2.
    4 f3 G  u. F1 o# x$ E* d+ B. j
  18. *
    , m/ o  ]0 @* [$ z
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any3 C# B  |; ?! G/ I; b( o1 x
  20. * kind, whether express or implied; without even the implied warranty: J0 P0 N9 r0 _6 v/ X' q2 |
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the: x6 i2 t) d8 V
  22. * GNU General Public License for more details.' l% C, n+ V# m3 `$ |# H
  23. */# s( z3 }+ _9 ]0 h0 P& l) @2 ~

  24. ' k1 j  S6 K! ]3 l2 t! |
  25. #include <linux/module.h>7 y2 Y6 K/ s, T9 N
  26. #include <linux/init.h>
    * u' d6 D8 P# X! r9 x8 q
  27. #include <linux/errno.h>
    ! h% J, q+ D. `! j- t, j
  28. #include <linux/types.h>8 b% e+ a( C- Q: h$ d) s9 {
  29. #include <linux/interrupt.h>
    % `$ J' }8 R4 W: a  U7 @
  30. #include <asm/io.h>9 z* {( @3 Z1 B9 V3 t! n
  31. #include <linux/moduleparam.h>( `, s% D* W$ i6 F* A3 a  j: a
  32. #include <linux/sysctl.h>2 Z' U2 w8 a5 U! u% V: v
  33. #include <linux/mm.h>& G, F- A& `5 u4 [
  34. #include <linux/dma-mapping.h>
      l3 o. s* F9 {
  35. 7 N3 N1 T; o0 R7 L& H" l' o/ G
  36. #include <mach/memory.h>6 v2 E% Q( Z  @! L1 r5 ~
  37. #include <mach/hardware.h>
    # Y; ?; v+ x* w
  38. #include <mach/irqs.h>% ^" Z* B  f/ H& L" K
  39. #include <asm/hardware/edma.h>
    3 Y: v" U" w4 A& j. e1 U

  40. + r" ~" F' e! E% O6 K* ]
  41. #undef EDMA3_DEBUG: C4 l' F3 S+ J8 Z
  42. /*#define EDMA3_DEBUG*// a8 M! W+ B' l( h' Z6 {1 i& ]

  43. ; A  V* c: b5 }* V5 u5 s4 ~% n) d3 g
  44. #ifdef EDMA3_DEBUG
    * b2 t1 H8 U' Y
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    % J, G) ]3 C/ v  ]! N3 q
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    7 v/ w% m, w% t0 y7 s
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)$ d& X! i& H) b
  48. #else
    $ D" T' Y" f0 f( }3 {  L7 i/ v7 c
  49. #define DMA_PRINTK( x... )
    ) [3 R% h" S$ s) }) C+ G) Y% _
  50. #define DMA_FN_IN1 a& w3 ^  X8 ^7 |3 ^# C- ?
  51. #define DMA_FN_OUT; T' V# }, j* q* m
  52. #endif' u, L7 ~9 {) M% Q5 p0 S5 z

  53. $ P" l5 X( r. Q2 y( n7 I$ j
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    " H( p0 e& \0 [$ b
  55. #define STATIC_SHIFT                31 [& [( ^& r( x
  56. #define TCINTEN_SHIFT               20) ?1 _% X- n$ Z- o6 v  e' r1 v
  57. #define ITCINTEN_SHIFT              21' b' }/ {; y$ ]0 q+ i% X. V2 }9 |
  58. #define TCCHEN_SHIFT                226 L- W- U- f' ^# N6 T# u3 p- }
  59. #define ITCCHEN_SHIFT               236 z$ U# k  j. T, A8 E% g% y; Z! P
  60. 6 M/ E4 f7 ]( \7 H$ n
  61. static volatile int irqraised1 = 0;( m! }* s$ [& x1 K5 \: o0 Q
  62. static volatile int irqraised2 = 0;' L* N( d* `; K* L% j

  63. ! N8 ?! f! X' n) }. O- a- R4 [
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    4 e, k* @% v- D  ^$ T
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);" [' Y9 I6 _7 X' p
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);7 }0 v! J- j3 @7 |

  67. 8 X( ]; o1 W% X- ~1 k' O4 c$ P
  68. dma_addr_t dmaphyssrc1 = 0;
    9 A3 G) q# v) v% J# w% ^) K
  69. dma_addr_t dmaphyssrc2 = 0;
    0 v$ f6 K) W  j; b! O9 A/ V
  70. dma_addr_t dmaphysdest1 = 0;
    $ e2 n# m/ G" M( `' L. y  m
  71. dma_addr_t dmaphysdest2 = 0;, s  `, R) }' U. s( k- a
  72. % u  v& T) l& b1 F
  73. char *dmabufsrc1 = NULL;# J4 }- ^2 [( u* _0 m/ r
  74. char *dmabufsrc2 = NULL;
    - w& |8 q- K( E' E! W* G
  75. char *dmabufdest1 = NULL;1 o  g# M+ Y7 a
  76. char *dmabufdest2 = NULL;2 b, n8 t) M: M$ x3 b

  77. 2 A6 N& N0 M( [' |2 E: k7 T& q7 ]4 ~$ Z
  78. static int acnt = 512;
    : c6 u- m) ^$ s# }4 P8 V! ^  u# W2 [- j
  79. static int bcnt = 8;
    % ]5 b) g# G4 M9 ?
  80. static int ccnt = 8;
    , S+ B3 q) Q; ^
  81. 0 [* ]/ i6 {6 A) C/ p; q: f8 z( S
  82. module_param(acnt, int, S_IRUGO);
    / o) `" y- n( O3 K2 `; ~2 {. f. i4 j
  83. module_param(bcnt, int, S_IRUGO);$ ~  Z7 d1 O: o1 G7 B, p. r
  84. module_param(ccnt, int, S_IRUGO);
复制代码

# ^* u. f, p. [2 K
8 P2 B# N4 n, f  h7 x      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
% n, Z% V/ _! S" m: u2 K, u. varm-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 ^1 k! v2 g* e7 ^) n% ]     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
" J8 q4 r0 Q1 T: J4 P+ g, [. ~
$ z* I. @1 C0 ^0 V
/ [# p- s# n$ q8 g* W4 T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-18 08:08 , Processed in 0.061699 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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