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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 5 i8 q7 D9 a9 u) s+ N
  1. [code]EDMA sample test application' Q6 z6 ^( T/ k5 P& F. D! u
  2. /*
    0 H2 w6 T' I) F) [* v; h  C$ t* p
  3. * edma_test.c
    " W/ }2 H( Z7 h# z( u! D
  4. *2 j0 ]2 [, q' a$ c! ]
  5. * brief  EDMA3 Test Application- U# j5 M' x- b5 f  j2 p$ _
  6. *% |( |6 _6 n5 j7 j
  7. *   This file contains EDMA3 Test code.6 _6 U* C7 V8 j, `! r
  8. *  c% {) ^% A% |2 ]9 x4 m
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    , {' R! K7 J2 s& Y* n
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT; t! N% i0 l8 Y+ Q# w7 ]0 Z( Y4 ^# {
  11. *         TO CHANGE.
    , U3 Y. k1 V* ^; `1 G! r
  12. *
    2 I8 ]  j" ]* f* x
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    ' d5 z( r3 s6 j' U" B$ i) I: Y4 r
  14. *
    4 c8 _) u8 H: u" g4 Z
  15. * This program is free software; you can redistribute it and/or+ x; Y, x  C6 \# o. F. @
  16. * modify it under the terms of the GNU General Public License as
    6 h  K1 G  ?1 z- J+ _
  17. * published by the Free Software Foundation version 2.) U( h: r/ T0 \8 \9 i
  18. *  c( O, e3 W% _3 L& D  e2 L
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    " x( `; {2 i! x% d5 p1 E
  20. * kind, whether express or implied; without even the implied warranty2 Q& |! k* L3 K
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    3 X6 R$ \' `- ^7 c& _; n7 B) M& w
  22. * GNU General Public License for more details.# x9 V1 H6 J9 H, z, _
  23. */7 ?8 x5 l( Y' d8 D' z/ m

  24. 9 b3 y" @- j  l. O# z- u* v
  25. #include <linux/module.h>
    + f# n! X2 Z& x1 {3 q, C
  26. #include <linux/init.h>* E3 m- R* w% T# T$ g; Y" s7 g
  27. #include <linux/errno.h>
    & |; d: C% G/ T. w
  28. #include <linux/types.h>% Q. S2 T% n1 Z' [. z
  29. #include <linux/interrupt.h>0 z4 d+ {: e  k. C
  30. #include <asm/io.h>" c8 ?8 J: N* I6 F; W9 J
  31. #include <linux/moduleparam.h>
    4 |" K, `  a8 i* Y- s" h# m- K
  32. #include <linux/sysctl.h>/ b7 u) \+ B  i( h$ n( O0 @% ~' b
  33. #include <linux/mm.h>
    $ L4 A1 Q. i! x5 x( Z
  34. #include <linux/dma-mapping.h>6 c0 N' Y* \, k( B( j

  35. 3 k& Y: N  I1 s# K' X  w' l$ X
  36. #include <mach/memory.h>
      d: W! f  ~- q4 i0 |- ?9 W
  37. #include <mach/hardware.h>
    : Z: Z9 D# Q7 z
  38. #include <mach/irqs.h>5 O, ]9 T/ V% e4 M
  39. #include <asm/hardware/edma.h>9 u! D4 p# e* d9 c) s2 d9 M" v

  40. - a4 B* u5 Y/ t* R6 N
  41. #undef EDMA3_DEBUG
    # F' y/ W% [0 j/ ?
  42. /*#define EDMA3_DEBUG*/
    / v/ \) C4 i1 T$ y5 O3 ]
  43. , n6 Y  ?6 P  p8 V/ h7 ~
  44. #ifdef EDMA3_DEBUG9 D& ~* s0 S( ~0 f! b
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)! p& o! `1 o6 U" j) w7 ^
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)8 X4 s! W& U' i# m3 f9 J! u  y" b
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    1 M& a! O1 Q4 S- {/ A- Z
  48. #else
    6 @3 t' p# i7 ^, x5 x# I' S' D
  49. #define DMA_PRINTK( x... )4 |! P* g: I6 D  N0 H; U' u
  50. #define DMA_FN_IN% U2 h6 `) u* |. z& A0 N
  51. #define DMA_FN_OUT
    9 `3 O9 L2 s! B5 d' g
  52. #endif
    8 T) N" X1 u5 P- m4 k, Z
  53. % r. x2 _1 @6 U% Y( @$ V
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    4 }$ C; u+ h3 a8 Q' G; W/ D/ o
  55. #define STATIC_SHIFT                3
    4 z  {# s+ N2 I% d8 K/ g' u3 P. {9 i5 D
  56. #define TCINTEN_SHIFT               20; ^4 F& j' m3 c
  57. #define ITCINTEN_SHIFT              21
    ; W* ^+ L3 b) n# D' v0 s
  58. #define TCCHEN_SHIFT                22
    % J4 ?2 E: K' l( |& M
  59. #define ITCCHEN_SHIFT               23
      `* u5 S3 X7 X! |; }

  60. " l3 G5 ]$ t4 F0 F" \
  61. static volatile int irqraised1 = 0;
    ! W# ^" E) M+ B# I
  62. static volatile int irqraised2 = 0;) W6 M1 V3 B: z# P

  63. ; f( Q) w) v9 n8 O! x
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);- M' b  }8 b% z: d
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);& w9 s" v9 S' m5 A4 v
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    7 K2 s9 {0 D; Z! b9 `9 R
  67. % U: h0 }# W, P( S! v* n9 ^
  68. dma_addr_t dmaphyssrc1 = 0;
    # j  o; D, r7 v0 Q- n& a% q8 ~
  69. dma_addr_t dmaphyssrc2 = 0;& @. g) K" A6 M: T% _
  70. dma_addr_t dmaphysdest1 = 0;
    6 p+ L0 H2 U* J# g; R. B
  71. dma_addr_t dmaphysdest2 = 0;
    ; j8 Z' P% m$ w+ D

  72. / {  j5 o0 [; Z% p' C/ W7 I
  73. char *dmabufsrc1 = NULL;
    & x( ~8 u5 V. e& W* G3 z1 E- g
  74. char *dmabufsrc2 = NULL;  B2 U6 o; e# n! ^  D* B- Q: ~
  75. char *dmabufdest1 = NULL;' m; _9 M$ o* W1 D! S
  76. char *dmabufdest2 = NULL;
      C$ ~6 ~. r9 M; f$ u8 }6 b
  77. - x% t! b$ F4 Y; e, `/ z0 X1 M+ @
  78. static int acnt = 512;
    0 ~" m0 f4 O( R" N3 C
  79. static int bcnt = 8;& |( l" K4 o; t1 Z# V" Y
  80. static int ccnt = 8;5 s" }5 r: f6 J4 T9 Y6 l* D8 [
  81. 0 T! e( E/ k* Q% q2 c  K
  82. module_param(acnt, int, S_IRUGO);
    5 ^- N# I, U; K2 ]% C% ]
  83. module_param(bcnt, int, S_IRUGO);
    ; r1 v( a, E% g9 t) o7 [
  84. module_param(ccnt, int, S_IRUGO);
复制代码
# b, {6 x6 Y: k: R1 k

; a+ H  k* s/ c8 o      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
# D& @$ o" n% m3 c) C5 K0 Zarm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。( W; T4 p7 d' X' R! S
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
( t0 w# Z7 M0 j! d* Q# A1 ^
' l: U3 ]6 C$ M9 J; B- X- \; [2 z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-24 16:34 , Processed in 0.040114 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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