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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 6 T: ^* G5 r6 f
  1. [code]EDMA sample test application, e9 R- o: p) L8 ^
  2. /*
    5 `$ j4 G2 Y' P( q& d5 t* e4 V
  3. * edma_test.c
    : S- @3 \# ?; U& }3 g! H8 D
  4. *( O. v0 ]3 S8 P
  5. * brief  EDMA3 Test Application; A7 w. @; A2 c  m
  6. *. t& g1 A: A4 X8 j
  7. *   This file contains EDMA3 Test code.! a5 a5 O1 S9 y' w
  8. *
    : K! e8 j& b8 w8 r. A$ h9 T( _
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    - [6 ~  g& e! {5 U# M
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    8 [" u4 L5 }' V' a
  11. *         TO CHANGE.* q  c% t  X& F+ _) j
  12. *
    5 D5 p& D' U. O2 `+ C: Q* s
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/- c! |2 z1 i0 {  U, Q
  14. *
    2 c( N. \; Y6 P5 r
  15. * This program is free software; you can redistribute it and/or
    : P& h) }+ s2 `, x/ h4 j
  16. * modify it under the terms of the GNU General Public License as( F- z/ z, a, n2 C, i, z* l6 U  b
  17. * published by the Free Software Foundation version 2.( [7 D( l. Y' Q0 p# O  A- Q( [" g
  18. *
    * Q- O* t; z& j- q/ ~& |3 Y
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    9 [; r+ E5 y) S% j  s* x
  20. * kind, whether express or implied; without even the implied warranty
    ' ~6 C4 d$ i8 U' Z, m
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the; q3 u9 B7 L) R* I
  22. * GNU General Public License for more details.% b( l8 \, E, D8 @( x$ ?3 L, T% r
  23. */
    9 a8 H/ ]5 ?% @1 p: ]

  24. % H3 ]3 P+ P8 m$ y! C
  25. #include <linux/module.h>( v- T) h) Z; E1 }7 e4 r
  26. #include <linux/init.h>( n' J  W9 ^  @, S0 t
  27. #include <linux/errno.h>
    ' J- p2 ]5 u: `/ U! a3 m
  28. #include <linux/types.h>3 S7 [1 {$ n1 D1 b- t
  29. #include <linux/interrupt.h>
    3 X! @2 Z" ^% k
  30. #include <asm/io.h>. k- `! ~' ]* D* x+ v; O
  31. #include <linux/moduleparam.h>0 T5 j6 N  `( ?- A# a! j. U  t0 {* M
  32. #include <linux/sysctl.h>! {: s* H9 q. _" M
  33. #include <linux/mm.h>2 J% D2 l: U8 E% s" v: [% I1 k3 L
  34. #include <linux/dma-mapping.h>
    6 t) z! `3 A. l, j- p- p: B8 T8 R$ m
  35. " K4 i" {- W5 V6 o5 g
  36. #include <mach/memory.h>& F9 h, Y" i/ d& n5 |0 B% ]) {+ H
  37. #include <mach/hardware.h>
    1 H1 R. v2 f9 F# v; y4 G2 g
  38. #include <mach/irqs.h>
    1 {7 x. ?& t* O- [
  39. #include <asm/hardware/edma.h>
    4 V9 f: }% p/ b# _5 H3 ^  S
  40. ( K# D  E7 W- M6 c
  41. #undef EDMA3_DEBUG
    " c9 `. g% w3 c0 G; T9 g, l
  42. /*#define EDMA3_DEBUG*/0 G% a' [0 P3 ^

  43. , ]1 f& \8 K+ I. O
  44. #ifdef EDMA3_DEBUG
    2 F0 _* `# f+ Q; J/ T1 d. r* m! g
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    5 _, T9 Z9 s! t; E
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)* K3 j3 E5 h4 B4 ^$ T
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    1 T7 J" Y# k) U# x- g0 B# z
  48. #else; U: r- r- w" t2 B: ]: c6 R
  49. #define DMA_PRINTK( x... )6 D' f- z! A1 Y0 o2 m$ h0 O6 |" L
  50. #define DMA_FN_IN
    ; x( W3 k$ r0 q( Z: k
  51. #define DMA_FN_OUT9 p( v1 m8 a9 d6 ^8 \8 w3 U
  52. #endif' o! v# b! J1 t. {0 v  `
  53. % Z: H; y: `. c5 A7 {: s
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)- Z5 g' i/ N& v! B2 W( O: X
  55. #define STATIC_SHIFT                37 I9 w/ p& B# s$ D* i& Z- J1 a
  56. #define TCINTEN_SHIFT               20
      c+ s' M% c8 u$ D+ h; ^) O' j% v
  57. #define ITCINTEN_SHIFT              210 u5 x0 c, _4 U4 m
  58. #define TCCHEN_SHIFT                22
    ' t. d4 q  o! V) c( N% v8 \, M
  59. #define ITCCHEN_SHIFT               23
    * M. W& v0 k! [3 M# v6 x  l* h

  60. # [* d4 |2 H8 t: W3 c
  61. static volatile int irqraised1 = 0;" Z: [# @9 v- R, X, @& A) V+ \" k
  62. static volatile int irqraised2 = 0;4 S6 ~8 N3 @5 U$ [+ M0 {3 b
  63. 0 Z+ o5 ^7 ^: v. d2 x
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);- F' C4 \. D( Q" }" r
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    , p0 R" F2 F( }# Q
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    # V/ v5 h0 I# L- ~( d* z8 }

  67. $ _1 S1 \7 _5 D; A# ]
  68. dma_addr_t dmaphyssrc1 = 0;
    + N% h! {2 Y9 K& g9 f
  69. dma_addr_t dmaphyssrc2 = 0;: D( a9 T9 m$ z2 W" q0 h! B
  70. dma_addr_t dmaphysdest1 = 0;
    ' C" @4 {2 w9 e! I
  71. dma_addr_t dmaphysdest2 = 0;1 O7 C. v0 z: B, o) F
  72. , ^8 U) m5 N  d: t6 F) M1 B
  73. char *dmabufsrc1 = NULL;
    4 V5 r# F* c% S* u
  74. char *dmabufsrc2 = NULL;* `" R! E! @! J, J
  75. char *dmabufdest1 = NULL;
    6 L+ S2 a7 t0 m1 J( i6 K
  76. char *dmabufdest2 = NULL;) b. `4 K% k- k. z
  77. ) e0 `: U1 B$ s" s3 V/ f* `
  78. static int acnt = 512;* O1 S" u/ p" T; F4 Q1 K
  79. static int bcnt = 8;
    0 {! F# v- `* E7 b4 Q2 I  f
  80. static int ccnt = 8;
    ) L: Q; I2 V. ]- D: ~/ ?
  81. / c/ {. ~+ t  t4 c2 v5 L# x% n% B/ S
  82. module_param(acnt, int, S_IRUGO);
    # ?; h  ^+ I- c' T, g+ S% w
  83. module_param(bcnt, int, S_IRUGO);
    ; d% X0 j( i" e& G1 s- D
  84. module_param(ccnt, int, S_IRUGO);
复制代码
* l. d  d* q- |

4 U6 @2 b$ q7 J# t0 m8 [2 J" n, a      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用* N& x, T$ i# `! L( ~. T
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
- u& C/ J* n$ P- S/ \. g8 p; i1 \+ k     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
0 W# F3 ]/ v% q. S3 w1 k. u" N+ x  w) p0 `( ^' V" m. ?

+ T+ B0 C" F! }  i+ g5 i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-3 19:20 , Processed in 0.039910 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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