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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 ! Z7 V5 c: T) S5 i) e$ E
  1. [code]EDMA sample test application
    . w" o7 Q- B; g2 B0 }9 a' X+ t% Y
  2. /*+ _. `9 p: @+ H0 i. V; `/ C
  3. * edma_test.c
    ; m- }$ l+ }6 q- `% z3 Z1 d
  4. *
    8 u' p% k& T9 F- w
  5. * brief  EDMA3 Test Application
    & U8 d: g- x( j3 j% s
  6. *0 F) G9 S7 \  b4 M7 n1 O3 Q
  7. *   This file contains EDMA3 Test code.
    / S' o: h" S' Q; [6 ]  K
  8. *
    $ D* c+ ]6 x; X8 h! Q, T8 X
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    & u1 p- {  I& C
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT  x9 ], ]3 ~% @3 T$ S9 f4 H
  11. *         TO CHANGE.6 H. {8 Z* {) y+ R. W
  12. *; }* g+ O1 X- X; g1 U$ J) Z& w
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/+ L# ^! `, [2 f, A& @$ m# C
  14. *$ g4 y9 [& d* Q* w' \
  15. * This program is free software; you can redistribute it and/or0 d8 ?  R4 x- P; q  m+ w2 M
  16. * modify it under the terms of the GNU General Public License as3 ~) Y" F, ~6 _5 q! W' X4 v
  17. * published by the Free Software Foundation version 2.
    * S$ H$ D( ~8 ]3 {; c5 s: v
  18. *7 L" @4 W& Y* s% v9 D2 @
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    # V& F) n& Y$ M
  20. * kind, whether express or implied; without even the implied warranty
    + }5 B& @+ Z& m. A2 }
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    9 R: q( q- x' C- k0 ?+ v) C
  22. * GNU General Public License for more details.6 ^& _- @9 [5 m9 y
  23. */: C) d: W- Z' i! e; @# d* N

  24. ( E5 E* f# A. w8 r2 T2 s( ^1 f! x" c
  25. #include <linux/module.h>
    5 S* y9 M. Y  A( `" E
  26. #include <linux/init.h>" B/ G6 S- \3 S" u
  27. #include <linux/errno.h>
    ) P9 q. ]8 e& G0 k# M, C
  28. #include <linux/types.h>7 x+ c( C6 v2 N: X- K& \
  29. #include <linux/interrupt.h>
    ; H  J+ p& g1 U" ^
  30. #include <asm/io.h>2 L- F: S$ f# m8 w
  31. #include <linux/moduleparam.h>
    # q* Q8 g; q: p& X
  32. #include <linux/sysctl.h>
    ) Z/ v$ E& f1 K
  33. #include <linux/mm.h>4 S6 ~2 L3 _, w8 `' ]: }5 P
  34. #include <linux/dma-mapping.h>5 A4 R, X- g* B3 i

  35. " c7 m) Z2 Y( s& g; M" {, u
  36. #include <mach/memory.h>
    9 v) J* ~( E) Y
  37. #include <mach/hardware.h>
    , ^8 O8 G7 @9 m3 j
  38. #include <mach/irqs.h>) R4 O9 h6 a: Q3 z
  39. #include <asm/hardware/edma.h>  p! ~, Y, X' n4 l

  40. - y# u) q4 J. L$ a
  41. #undef EDMA3_DEBUG
    ' U# B' Z- M! b  A" q6 l) d
  42. /*#define EDMA3_DEBUG*/
      j) M( S' g0 @1 a8 U! {& C
  43. $ O5 L6 V7 a. p0 W: V
  44. #ifdef EDMA3_DEBUG
    ' ~$ c" r: T- A  k1 k+ O: C0 L
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)2 q5 `$ F* w- r% ~- t
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    . {+ J! R9 ^5 m# j- a8 ?8 M2 j
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)- I+ Y& E: _1 r8 _3 e, o' |0 z/ h) Y! ^
  48. #else
    5 m8 E5 V1 }) y7 D. e8 |4 y
  49. #define DMA_PRINTK( x... )
    & m5 L" ^& H3 i: N1 Q5 p) [6 F
  50. #define DMA_FN_IN
    + N/ h  ~2 b; Q5 V# |
  51. #define DMA_FN_OUT
    ( g  H) d; ^9 b4 d
  52. #endif
    " ?+ R1 Y' Q8 U  h. y( U

  53. 8 k, D) ^9 n) |" ]# u; c$ i8 m
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    : t( N, e; ?. T% K- d
  55. #define STATIC_SHIFT                3
    - e2 g9 m0 b0 f5 a
  56. #define TCINTEN_SHIFT               20
    . }* @. |( l% a/ L
  57. #define ITCINTEN_SHIFT              21
    / H7 p5 I0 x# T( e/ {8 `
  58. #define TCCHEN_SHIFT                22
    1 i: Y' [7 n2 r! W4 j* r
  59. #define ITCCHEN_SHIFT               23
    % _( U% }1 n/ C' T) {% S$ n
  60. / f& Q" _2 w3 ^1 K0 w. m! u5 O1 O
  61. static volatile int irqraised1 = 0;
    . |2 X9 t3 y; m$ [- p0 v
  62. static volatile int irqraised2 = 0;4 }. y, N8 E" R! }4 `

  63. 3 B4 ^+ `* h8 w% I/ v. ^0 \% h. `$ n
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);& f: ]& L2 S! S2 T4 ?
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    , y' r- ?! F. D/ U
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    4 O* O9 O/ |. m- O. W& A( f

  67. 7 l! y8 _5 W# p5 l/ z( {
  68. dma_addr_t dmaphyssrc1 = 0;
    " E! p( v2 C6 R: ?
  69. dma_addr_t dmaphyssrc2 = 0;' u- Q9 n5 ~# ?" ]% D( K
  70. dma_addr_t dmaphysdest1 = 0;1 l% s& R, y8 a% x1 @0 Y5 d
  71. dma_addr_t dmaphysdest2 = 0;" d) [: l. ~+ {4 W* @3 c" d+ T
  72. & u# T/ E* O/ Z* A0 _
  73. char *dmabufsrc1 = NULL;0 Y! V! a/ c: b) d! ~
  74. char *dmabufsrc2 = NULL;6 d: x( u7 S5 [8 M9 v
  75. char *dmabufdest1 = NULL;0 T& e/ `. E+ R& M6 [: z  r
  76. char *dmabufdest2 = NULL;
    8 A9 J9 y4 U6 M% p6 v: i5 R( V  S

  77. 2 v; Q0 A: h0 q4 _/ L! P5 I
  78. static int acnt = 512;
    / m1 q9 @, Z7 q" @9 x& |
  79. static int bcnt = 8;
    + G" O2 L. A# K1 g! q% `/ a
  80. static int ccnt = 8;
    9 j5 j/ d2 r, x: a# d( R5 |
  81. 3 i3 d( I, x4 s  e" ~8 ~
  82. module_param(acnt, int, S_IRUGO);, ~) q& z& Q4 r3 k$ D( g
  83. module_param(bcnt, int, S_IRUGO);( @0 H$ T& H4 C; G
  84. module_param(ccnt, int, S_IRUGO);
复制代码
0 k' u6 \( H# L4 O

# G/ M7 `1 ~' z+ Z" v' l4 e      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用7 i/ q! Z1 {% I+ f( G$ \6 S
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
9 L0 X& A0 p+ \/ c     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。2 O, x2 ~' S* Z) J3 V! p

# p: p5 ^+ s, W- N; G* N' X* V8 h9 @& ~/ Z: B/ e, d) C7 \: {+ G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-30 16:30 , Processed in 0.040491 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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