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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
1 A0 W; @% e7 x# |( ]' f8 \
  1. [code]EDMA sample test application
    + f6 ^, a' ?/ [5 \+ m" c0 f) \! ^
  2. /*
    % \7 y) _3 \! m' e6 Z& A- d
  3. * edma_test.c
    0 t9 j' L0 v5 W4 W$ j  Q- \# }
  4. *
    . c) u/ K! A1 d* ^
  5. * brief  EDMA3 Test Application
    9 I2 E$ v# O* q
  6. *9 \% t+ i) t5 S$ @: j8 R
  7. *   This file contains EDMA3 Test code.3 ~) D4 N( A6 x1 Q1 Q% D+ G
  8. *
    : S) e+ d; V, I$ L
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    2 I% _9 c6 S. q* B3 g* Q
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    ! e( d0 T$ X0 B1 {1 E, [
  11. *         TO CHANGE.; n6 {3 s/ S9 r
  12. *
    # N% e2 W/ V3 [* U% ^
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/1 G  N0 v" b3 }4 H' R
  14. *
    0 o9 a* s. K; }7 P. z: Y
  15. * This program is free software; you can redistribute it and/or
    6 ]8 f/ X' N( q5 V0 O
  16. * modify it under the terms of the GNU General Public License as! g/ p1 d8 h: z, K7 |
  17. * published by the Free Software Foundation version 2.. X- T! K( C) @% J. S1 s
  18. *
    0 t! e% U! l9 T! t& J+ j
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any4 U: Z( o! U- D' M# \
  20. * kind, whether express or implied; without even the implied warranty
    ; N3 O5 H2 \! B( r, T) w* m0 H5 [
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    ! ]1 s0 ?- R  o# N
  22. * GNU General Public License for more details.9 n& R4 v6 E, ^
  23. */
    $ Y' [. h! @& B# ]' c% {" O
  24. % _. c+ P1 T( z7 |# K, C
  25. #include <linux/module.h>
    ) m3 a) v* Z' f
  26. #include <linux/init.h>. A8 ~" d5 s, _  k4 K  f
  27. #include <linux/errno.h>
    , M' q* c4 T; F8 r; ]
  28. #include <linux/types.h>. o5 ]) J5 b" \8 |/ _! \# e
  29. #include <linux/interrupt.h>
    * V" b2 U3 y9 J) O+ P2 S# \! |
  30. #include <asm/io.h>" v4 c! u" v' r9 g, m+ J
  31. #include <linux/moduleparam.h>& X, L5 C6 h" ?! Q8 J
  32. #include <linux/sysctl.h>
    4 J3 W  Q4 v. d- v7 a0 }. ]( E
  33. #include <linux/mm.h>7 y3 N. k' s# r; {3 D
  34. #include <linux/dma-mapping.h>
    - t  y8 f3 a! o

  35. 7 A6 s% ]% o# f; m1 \; U4 I- r9 z
  36. #include <mach/memory.h>& X- Q& b: X- P# C. L0 k( }( h
  37. #include <mach/hardware.h>
    4 Q& r1 p, X- W
  38. #include <mach/irqs.h>
    ! f/ x, b0 {( c
  39. #include <asm/hardware/edma.h>
    ! G3 S7 h$ A" A. m
  40. 2 ~# |  F. G& _. L' X5 J/ V# [
  41. #undef EDMA3_DEBUG2 S0 v1 S$ O! k2 s
  42. /*#define EDMA3_DEBUG*/2 \3 Q: l; p3 d& _+ i6 v
  43. 4 ?  h5 b* [$ i" R
  44. #ifdef EDMA3_DEBUG9 D! u5 C& Q2 U% g. l. P
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    - w  M/ _& V, t$ k7 l
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    % p7 b! l( w% W: Q9 @- k, C) B( U  q
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)1 O: W6 Q/ Q  O
  48. #else
    * p; C4 W" B. ?% c5 u! O0 i% ~* C
  49. #define DMA_PRINTK( x... )- r' A, b* Z& o  q
  50. #define DMA_FN_IN
    * K* f6 W& l+ [* \
  51. #define DMA_FN_OUT6 ?' k7 ~5 v5 ]  J) Y5 ~
  52. #endif
    . q7 U* K+ [) q9 T+ C
  53. * r" `; G* ]5 ~! f
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    " s# ]1 z" d8 z% `1 A
  55. #define STATIC_SHIFT                3* \9 C4 W: I2 ^! G( N
  56. #define TCINTEN_SHIFT               20
    # @2 C( t, D2 P  [5 \, I
  57. #define ITCINTEN_SHIFT              21
    7 O1 }7 E* _, e+ ^6 s
  58. #define TCCHEN_SHIFT                228 e. v3 @# |& @6 m& H3 Y8 H
  59. #define ITCCHEN_SHIFT               234 A1 [  ^* S* p, |0 N  ^8 E

  60. % m2 W2 w& m- `) `& t4 s
  61. static volatile int irqraised1 = 0;# J9 a: k. M7 @% R
  62. static volatile int irqraised2 = 0;
    / L5 ]' i# V, q. {! V7 z
  63. 4 L1 ]% ^9 E% w4 C9 L
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);# _/ B( e! g2 i. r( U
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    0 M6 ~  |! ?. K" R; L% y2 {
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);" Q# \7 e" @8 y: @
  67. 6 K3 t. R# \9 F5 _, G
  68. dma_addr_t dmaphyssrc1 = 0;: R/ d, {" J; u7 g% h0 N
  69. dma_addr_t dmaphyssrc2 = 0;8 d: G& k9 x# Q" T2 ]; h
  70. dma_addr_t dmaphysdest1 = 0;
    ) }: }  _% i6 {- D$ h
  71. dma_addr_t dmaphysdest2 = 0;) H6 d, E0 z2 W8 w; d& x3 S- r

  72. : X2 A7 W4 P* I% [! w
  73. char *dmabufsrc1 = NULL;
    & Q3 ]7 S; _8 A& i
  74. char *dmabufsrc2 = NULL;
    1 A3 [- g, K- N6 {, o% g) _
  75. char *dmabufdest1 = NULL;3 h4 Y7 @0 e. Y4 R% y6 i/ ^6 w
  76. char *dmabufdest2 = NULL;& O7 \2 d6 \/ r) t/ A6 m% }

  77. - d4 i: x! `5 x8 \* S9 y  |/ @9 N$ ^
  78. static int acnt = 512;" M4 C9 `: I. q4 R) y0 g7 V  N
  79. static int bcnt = 8;4 s8 V, z, W4 x5 ]
  80. static int ccnt = 8;
    9 G2 H( s1 q, E& F. n) f( Z$ @

  81. 0 W. X2 [0 ]  P% n0 `2 J
  82. module_param(acnt, int, S_IRUGO);2 q( s4 h9 K# {8 V
  83. module_param(bcnt, int, S_IRUGO);/ E: M5 b- W% T3 ~) S
  84. module_param(ccnt, int, S_IRUGO);
复制代码
; J, U0 n1 ~2 s0 O* |3 I1 B
, C& D8 f, Y- `; l* |/ z5 o
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
% l9 V/ E1 C, 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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。% H8 N/ S# c% n. }5 k7 d! H5 M$ k
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
- @) e8 B( ]8 R( ^* u
' B+ h1 k. t5 t% i9 i1 ~- C# S) p. r3 x; ^/ j' C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-14 16:45 , Processed in 0.039127 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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