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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 , x! @3 j0 i+ e9 m
  1. [code]EDMA sample test application5 t2 \/ h. D5 ~. E; L' _7 M( A9 b
  2. /*
    . E( @$ d- ]! I& @( v
  3. * edma_test.c
    8 y# U0 h5 v! e- a
  4. *
    7 }8 p4 C6 Q+ B1 |( K9 I, Q! f- k
  5. * brief  EDMA3 Test Application
    " H- W( |+ Y! r- O4 _, N) U3 X
  6. *
    1 u5 a9 S+ ~& j$ N& v$ x  k
  7. *   This file contains EDMA3 Test code.
    & l) a3 I5 ?# U) P2 l7 Z5 c" o
  8. *$ X) e( \* Q7 @0 x
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE0 X4 q8 [7 A- y# n$ u% p/ N
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    : S, I5 D- z8 U" }6 @& r, B
  11. *         TO CHANGE.9 J' I2 e$ Z1 e/ x8 {
  12. *3 K: d2 O" u2 _' F! `/ V" D
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    4 s1 Y  u% T8 x+ c
  14. *6 \0 J& a0 S+ m# q+ Q
  15. * This program is free software; you can redistribute it and/or
    ( w0 W  w- B( B7 w* y; T( m* m
  16. * modify it under the terms of the GNU General Public License as: l: z0 l& \) e* y$ _  o  R7 n
  17. * published by the Free Software Foundation version 2.' M$ p8 `1 N6 b: _6 _
  18. *
    . J, f2 M  B( r1 E
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any( z! i4 r4 F% z' w+ t5 m( V) \
  20. * kind, whether express or implied; without even the implied warranty
    & R7 C; ?7 D1 t% \. N
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    ' t; W9 _; H4 y6 _
  22. * GNU General Public License for more details.
    , t9 F# p! S# S% {: U2 J: @) m! E
  23. */
    ( C, w. r9 _# t, ^
  24. * t4 T+ _# L, R- `
  25. #include <linux/module.h>
    : ~8 \" F* @* Q7 A1 G
  26. #include <linux/init.h>
      Z8 d0 I) a. A  p5 |
  27. #include <linux/errno.h>
    6 f! V! T; c" ]- C" Z  c; l7 c7 e
  28. #include <linux/types.h>
    & b7 Q  X' h" `- m
  29. #include <linux/interrupt.h>. @: i8 X  j" }2 X! M
  30. #include <asm/io.h>$ V7 M5 M7 E# ?
  31. #include <linux/moduleparam.h>
    . S* b  j8 w! |& \1 K
  32. #include <linux/sysctl.h># E+ E' [' z8 }/ I  z7 ~
  33. #include <linux/mm.h>
    4 c) p3 {' E7 y1 M
  34. #include <linux/dma-mapping.h>, ^8 H; J% f3 ~# h1 i! b1 ?5 {, w

  35. / z. n  |2 k" }$ E+ K+ D" S0 G5 l3 G
  36. #include <mach/memory.h>6 e" [+ h8 v' N! i2 j+ a. x* h4 y
  37. #include <mach/hardware.h>
    " [  A% f: n6 e! ~9 E: F
  38. #include <mach/irqs.h>
    # c- n* I' `3 I/ R
  39. #include <asm/hardware/edma.h>4 r% d, o/ |' k- L8 Q, m; `

  40. / H( A% O* l2 q+ h
  41. #undef EDMA3_DEBUG- ^+ N; V% ~/ f) e/ ?2 N
  42. /*#define EDMA3_DEBUG*/' z4 K% W' e, X4 y: g
  43. # D9 V, r3 J8 m% L/ G* f/ U
  44. #ifdef EDMA3_DEBUG. F0 ^6 `* w0 F3 P5 R& C8 M
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    3 W0 ~' W4 c1 ~+ J
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)8 a0 e7 V! @) m6 J
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)' x7 D7 P* [! s
  48. #else) g3 S& A2 e0 |
  49. #define DMA_PRINTK( x... )
    1 q8 _, e/ @/ q: W0 D* F
  50. #define DMA_FN_IN- [- p* r$ [3 v" N
  51. #define DMA_FN_OUT
    * v+ S. T, D) v
  52. #endif
    ! n* A, {- v5 m$ ]) w9 g+ b

  53. , _, {) @+ }( T$ T. r( [
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    4 Q/ x% B3 W' h% w1 y$ J& a  Z
  55. #define STATIC_SHIFT                3
    / v3 G" X6 [8 d. |& Q8 \  @
  56. #define TCINTEN_SHIFT               20
    ; y% d# H3 k  E. `! o8 G$ L
  57. #define ITCINTEN_SHIFT              21
    - o' u- A% P; ?5 s
  58. #define TCCHEN_SHIFT                22
    . Q3 |' R8 H0 v3 W2 T4 c) J8 O
  59. #define ITCCHEN_SHIFT               23/ b; p; E' s* |. N. ]
  60. 7 Q/ k# i; d% L( B8 D( P3 q
  61. static volatile int irqraised1 = 0;% Z+ H. {. }+ f/ ]- b, @* |
  62. static volatile int irqraised2 = 0;
    / w0 a; C/ K, a" t! L
  63. . ]1 z5 N+ T& `4 G: s' E9 o
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);5 v! @$ j$ m2 y& o" M" G8 g
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);6 G- t4 k+ G4 m# {" {
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);7 U) g! g/ M$ G* ]' D/ N
  67. / X8 I" k5 |2 v' M  S, e- T
  68. dma_addr_t dmaphyssrc1 = 0;( v! j4 N8 T9 y) }) X5 f# H$ F
  69. dma_addr_t dmaphyssrc2 = 0;
    7 V; S6 L5 o& H, H0 B# _/ F
  70. dma_addr_t dmaphysdest1 = 0;3 B, I3 M3 f8 Y3 ^
  71. dma_addr_t dmaphysdest2 = 0;" ?% Q1 L* i2 b; A

  72. + d9 T3 Y7 J- ^8 X# L7 _
  73. char *dmabufsrc1 = NULL;
    & B$ S+ D0 q' y8 s
  74. char *dmabufsrc2 = NULL;0 a9 \1 z8 x5 u! g) c, o, C
  75. char *dmabufdest1 = NULL;
    + |8 t7 w% s0 _& Z0 m6 X
  76. char *dmabufdest2 = NULL;0 s! F3 s& Q2 j1 D4 C' M

  77. % E+ E1 y+ u3 i8 Y
  78. static int acnt = 512;+ N+ K8 c! E$ M8 \, u4 M2 Y$ Q
  79. static int bcnt = 8;8 `. U0 i8 m$ v+ v9 T
  80. static int ccnt = 8;
    8 `9 J' E  Z# W. u( U: c
  81. & F- y; E% L( G5 b
  82. module_param(acnt, int, S_IRUGO);
    / y* S  A8 [" @4 ^" T
  83. module_param(bcnt, int, S_IRUGO);$ }" z& u5 X: s& [
  84. module_param(ccnt, int, S_IRUGO);
复制代码

" M4 n" F4 N8 j, d" p. g$ `) _- P; z# ^1 d( B! B( h0 _4 |1 y
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
8 \( ^) I* U- B8 }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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
+ ^6 ]' J0 o* W( [  O/ w     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。1 R- m( H  H; I8 |5 v6 a! L, @

6 \2 h' L9 w$ ?+ V3 w) D; u
5 u" b2 p$ M( f3 V( H
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-10 02:10 , Processed in 0.040191 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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