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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 . |! h( R% U: U* N6 i3 u' L* i5 K
  1. [code]EDMA sample test application
    + h6 j# ^. o& x, B; a( Q& J8 T. @
  2. /*
    ( V8 _6 J! p* c. M
  3. * edma_test.c; @( ^4 \5 m" X3 r: `
  4. *
    ; e& u; Q+ G9 O5 O4 }1 k
  5. * brief  EDMA3 Test Application( v& P/ j% J" X7 Y) I4 K
  6. *
    $ X6 Y" P: c& b8 k/ h# U
  7. *   This file contains EDMA3 Test code.
    1 ^. {/ q3 g3 d1 H' B
  8. *
    + u* `# n4 N3 v
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE  y0 _5 v( l/ x. ^, K1 d
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    / @5 T8 Z, ]3 Z/ D
  11. *         TO CHANGE.+ |$ U* u" k- [: p
  12. *
    - D* t4 U/ ~' T3 A; ^2 c
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/  H, C0 Z. f* ]9 j0 \" b0 Z
  14. *
    9 l' B1 `& }* P" O  F. ~. \
  15. * This program is free software; you can redistribute it and/or
    7 t( _% v+ X( R2 {+ b
  16. * modify it under the terms of the GNU General Public License as! T$ n+ V; u' v; V' U
  17. * published by the Free Software Foundation version 2.
    , E7 k- X" X  a( N4 j7 k
  18. *' [& U/ D& Q" F4 e( ~9 G5 u6 `
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any2 [: [( s: \2 `& P7 X( W: b
  20. * kind, whether express or implied; without even the implied warranty
    , }6 Q8 C, l0 m+ h3 D6 C! o
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the9 u6 u% q; \# q& ?! u+ ]& d2 h9 G
  22. * GNU General Public License for more details.7 M. h( ?$ s4 J
  23. */
    2 L1 z6 u; G. Q$ O% O

  24. : s4 i8 n/ J1 h5 P! M* z: n
  25. #include <linux/module.h>9 N( t3 r0 F. b
  26. #include <linux/init.h>
    # f7 {/ Y. C! _, M5 f1 D
  27. #include <linux/errno.h>3 ^; t5 n/ e2 W4 P- O4 X
  28. #include <linux/types.h>5 k6 O: E8 K& h; ~" I& o) O
  29. #include <linux/interrupt.h>( M1 \% [! ?1 ~4 O
  30. #include <asm/io.h>
    3 G3 r- y' v6 a- l* _. x6 U* ^% V4 L% v2 d
  31. #include <linux/moduleparam.h>8 N" D/ Q5 _* A+ N
  32. #include <linux/sysctl.h>
    4 d) B( e6 |$ s. w7 Q: |
  33. #include <linux/mm.h>; J! ?6 M4 u) ^+ d( M1 g5 N' Q
  34. #include <linux/dma-mapping.h>
    $ H5 l. P& M/ N. v& @  ~

  35. - S4 l5 O: f2 b) n3 u, s/ a: k
  36. #include <mach/memory.h>) [" S1 S& \  X) q1 `3 q% P
  37. #include <mach/hardware.h>
    3 _0 C3 P0 C, _' E0 \' e
  38. #include <mach/irqs.h>, u, @  [. u/ A3 E3 |( S
  39. #include <asm/hardware/edma.h>
    3 U- {' [* t6 v8 S' _

  40. 3 m- M! f6 W: ?7 W
  41. #undef EDMA3_DEBUG  k( N, Q6 i7 N* U
  42. /*#define EDMA3_DEBUG*/
    4 C  A# P) J8 [9 @/ n& n( V/ Y2 V- p
  43. 7 v1 @; `7 Q( V+ m. y
  44. #ifdef EDMA3_DEBUG9 C/ a$ l; Y# Z
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    / a* L: e9 B# Z1 e7 V) b
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)1 [! Q0 g% X) H7 c6 o& d, L$ V
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)" _) W4 D' q1 b  p# A2 W
  48. #else
    $ ~7 E/ C# v: b
  49. #define DMA_PRINTK( x... )
    ( {" j3 F& }; I9 W4 I
  50. #define DMA_FN_IN- n+ I5 k' D3 y* u/ q/ S& N: u7 i
  51. #define DMA_FN_OUT
    9 O5 K& {8 D% q  D" p% l
  52. #endif  x7 C. T  N; d# A5 W4 R0 q$ w
  53. $ V0 W4 q* q7 J7 f# j$ c
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)7 k2 `4 l& p  s  b4 x2 u5 Y; N5 U
  55. #define STATIC_SHIFT                3
    - ^1 i; A: D8 j- P! ~
  56. #define TCINTEN_SHIFT               20
    6 E: A. `1 C" m# u7 G! M
  57. #define ITCINTEN_SHIFT              21
    " k% `2 @& B( K3 C$ m
  58. #define TCCHEN_SHIFT                223 i) r+ l+ R6 ?; d, P+ u
  59. #define ITCCHEN_SHIFT               23
    4 M/ G6 Y8 }% {1 T
  60. 1 a$ y2 k) V& a' }: f% S
  61. static volatile int irqraised1 = 0;
    8 r8 r: X( B3 R0 d0 ~
  62. static volatile int irqraised2 = 0;
    ' X4 o) S6 L: m( Q) H

  63. * K4 B/ C1 Z: z9 U$ r* R
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);; H% R9 p4 V# O
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    " a/ M9 F, V  N1 @+ @4 O
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    , S7 ^; I+ \, o
  67. $ p* H. e2 J& ~9 a
  68. dma_addr_t dmaphyssrc1 = 0;
    $ o$ b: e; p; }  T8 Z% ~" a
  69. dma_addr_t dmaphyssrc2 = 0;
    ( @/ u; A% d% s. W. P0 U+ J2 G4 e
  70. dma_addr_t dmaphysdest1 = 0;7 l1 ^2 M& |, d( ]
  71. dma_addr_t dmaphysdest2 = 0;" L4 V9 d0 Q' |" _3 Q3 i4 K
  72. . x1 T; a  b/ w
  73. char *dmabufsrc1 = NULL;
    5 x4 g% J; Q' g2 _$ c& c4 ~4 W
  74. char *dmabufsrc2 = NULL;
    : a3 c. d3 X9 m9 d/ a
  75. char *dmabufdest1 = NULL;
    ( N6 J, P0 g/ H, o. t
  76. char *dmabufdest2 = NULL;
    - V2 U1 }: J' X+ a& I9 w1 S
  77. & y3 x# [2 z2 J+ G: ~( t2 G
  78. static int acnt = 512;
    0 R4 C. l' Q0 h  f5 ]( Q) ^
  79. static int bcnt = 8;
    & H8 G2 c4 s# T  T; E
  80. static int ccnt = 8;' b6 U$ W) [3 f7 |  n& z

  81. : Z2 X7 r- f1 ]1 `' p
  82. module_param(acnt, int, S_IRUGO);; S, ?3 J6 U! }* ~
  83. module_param(bcnt, int, S_IRUGO);: X1 p* ^2 p1 i6 B+ N. W
  84. module_param(ccnt, int, S_IRUGO);
复制代码

3 ^* z: K" m3 `! L! t6 x1 Y( P  e  n3 `6 F- u  C
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用9 M  ]! I; K- j! `! 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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。+ I& l2 D( l7 _) }
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
6 k' X8 J' Z2 m, Y4 V- q( l9 S% Y) `8 V: J8 C6 x+ J
& I" h8 r# l; K& Y- d' v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-23 12:55 , Processed in 0.044218 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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