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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
. n" P# I+ Z/ l2 z
  1. [code]EDMA sample test application
    3 m& u  Z" n/ k' v" C4 m
  2. /*7 w0 j2 [+ P5 Z5 o+ c  B
  3. * edma_test.c
    & g; J8 _( d! m  p! Q( Y% o
  4. *9 H5 b1 Q: Q* n# H; j
  5. * brief  EDMA3 Test Application
    4 T( k- ~0 k- d" ^- ?3 Y6 m
  6. *
    1 i: `" ?( }$ n5 K3 p, X# r4 @
  7. *   This file contains EDMA3 Test code.& F- c( [/ F8 l  q
  8. *: z; [' B6 b- p" P: @2 L1 q" q( T4 z
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE! u8 y  N' s1 k) ]3 h7 q$ A" b' K
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    6 \# x1 H( V0 U6 ^4 E' ^* x- X+ o
  11. *         TO CHANGE.
    2 N3 z) l7 v7 |, C: }; `* ~
  12. *
    5 X2 u/ A/ M2 U2 e/ L
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/  p! x- Q# X- b& z: k
  14. *
    7 J$ \# N, W7 j3 y* |$ o# z
  15. * This program is free software; you can redistribute it and/or
    8 R8 H6 s* Q+ B; y% i
  16. * modify it under the terms of the GNU General Public License as
    ( x7 C* }: U) J5 S5 r9 @/ @# V
  17. * published by the Free Software Foundation version 2.
    " [( |  s/ T7 K# ^! c1 ?
  18. *
    6 A, T' G+ a0 S) l
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any& b7 {0 k) @& J* c. y/ b
  20. * kind, whether express or implied; without even the implied warranty
    ! h* z& s6 \/ n' W
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    & \2 G& w5 u+ b9 L$ ]% T# r
  22. * GNU General Public License for more details.
    4 {( I8 K* S2 v7 ~+ ^4 m
  23. */
    9 Z) |% q& k" |2 G

  24. 1 b6 y; d7 C+ x  P7 u1 Z
  25. #include <linux/module.h>
    9 N: b1 o9 f4 m2 b6 w- d9 \
  26. #include <linux/init.h>
    8 p( k# D; L% }6 ~6 r
  27. #include <linux/errno.h>% L3 n' T/ G1 Q
  28. #include <linux/types.h>
    & U& C- V; ?6 x$ W
  29. #include <linux/interrupt.h>
    & \; E6 _: j; m
  30. #include <asm/io.h>3 J+ v+ z" b7 u: G
  31. #include <linux/moduleparam.h>6 P9 M- Y& P% k
  32. #include <linux/sysctl.h>6 A' l: E3 h& q: f1 W! n
  33. #include <linux/mm.h>0 a( C+ Z5 Y1 j8 U7 h
  34. #include <linux/dma-mapping.h>
    ! o6 }) w6 i- Q) X0 w+ r
  35. 1 f" q& [' E( d9 E0 X$ |
  36. #include <mach/memory.h>
    4 ~  [. F- O8 T: @6 c, Y" f
  37. #include <mach/hardware.h>
    5 l% T% |. V$ z. k
  38. #include <mach/irqs.h>
    : L8 `6 Y4 u& t1 J/ F& i% g
  39. #include <asm/hardware/edma.h>
    5 ^4 {" C2 S& T' Q  [
  40. & \4 Z) Z7 q" U+ ~
  41. #undef EDMA3_DEBUG
    " a, y6 }' P+ O$ j7 V
  42. /*#define EDMA3_DEBUG*/) D2 l+ D4 c5 c# {

  43. & P3 O- ^- j; M# w5 Q0 X2 R& @
  44. #ifdef EDMA3_DEBUG
    ) ~, H" _4 l* V# F& n/ Q& x. C
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    9 }$ q  u" g( q5 b3 P# g8 @5 V
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__): D& K- ^. J; Z, ]3 D& s& K% D8 L7 w
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    $ n; w" M! u% u+ t0 ^2 p% O
  48. #else
    $ |2 a3 l9 |/ l+ E
  49. #define DMA_PRINTK( x... )2 i; i6 o; ~; @1 z  L* R1 j* Q
  50. #define DMA_FN_IN
    2 w6 ]5 U2 O1 R4 q8 n
  51. #define DMA_FN_OUT
      e$ }9 I2 a; X+ w; ^5 x
  52. #endif5 l: D3 A! V$ O, G8 Z. l$ L8 d

  53. # m4 e3 @4 B3 F+ G5 m. T
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)5 t, @7 h  x7 C  V' M% K7 b% i
  55. #define STATIC_SHIFT                3
    " W, B$ H) m1 n7 w
  56. #define TCINTEN_SHIFT               20! q8 k, ^- S. Z' U
  57. #define ITCINTEN_SHIFT              21
    / k8 s( n' ?6 j
  58. #define TCCHEN_SHIFT                22
    0 J; `8 r; z' R5 V
  59. #define ITCCHEN_SHIFT               23% j. b" b% v/ L% @
  60. - X; Z& K1 h4 h( v) r. ]
  61. static volatile int irqraised1 = 0;
    ; d% Q" z  F+ A+ R! U7 s; V: G7 E
  62. static volatile int irqraised2 = 0;* L7 b9 ]$ D& F  U, s0 p& s/ z

  63. ' k/ |4 Z1 M" [, N7 n
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    2 F+ @' H$ I8 X% y: R4 n$ W4 V9 }
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    & p2 i$ i* p( E8 D+ `
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    . P6 k1 e9 Q" T) Q
  67. , Y5 s# z" o2 y: S, M/ K
  68. dma_addr_t dmaphyssrc1 = 0;
    * ^! W; t. V! I/ x9 x
  69. dma_addr_t dmaphyssrc2 = 0;3 e+ J; c! p: X! N! Y+ [- B! |
  70. dma_addr_t dmaphysdest1 = 0;1 _4 k2 `- M  d
  71. dma_addr_t dmaphysdest2 = 0;
    - `" i( W2 a3 {& T0 F* p

  72. ; K4 [; R3 B+ Z
  73. char *dmabufsrc1 = NULL;  i) x: C; V# {1 q- c6 N8 Z
  74. char *dmabufsrc2 = NULL;/ }: ~8 w6 X5 r4 r
  75. char *dmabufdest1 = NULL;6 u, k3 o3 A/ u8 j/ F5 X: z8 p
  76. char *dmabufdest2 = NULL;2 a& [8 W. w# ]  f6 Y
  77. ( X# Y& Q' f' x8 d, H5 f3 v+ B  v
  78. static int acnt = 512;
    % q5 }# U1 e& N2 P
  79. static int bcnt = 8;
    # }' U+ ^% R2 A, o/ C
  80. static int ccnt = 8;+ D6 e" Y; F( |; h

  81. 4 E8 d& ?$ n7 h. b! C
  82. module_param(acnt, int, S_IRUGO);
    . a. I1 P6 g# F% L- a. s
  83. module_param(bcnt, int, S_IRUGO);# w& U9 v/ V# n7 U, C
  84. module_param(ccnt, int, S_IRUGO);
复制代码
! J4 a2 S* t$ h8 B0 ?

! ?% Y! S$ P2 e5 ?2 A0 B  C      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用4 p' X; @" j  \' o1 X! i4 p
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
# Y4 g7 u* v! D; A     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
; A1 d; v; X; l: d5 ^/ G
! E, y+ ~, P0 ^) x# H- B
' k9 [  P* g' H, E6 C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-25 17:04 , Processed in 0.066170 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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