OMAPL138如何在Linux下使用EDMA3驱动 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
, \4 B6 q+ W% r0 `6 z
  1. [code]EDMA sample test application2 r7 T9 X, k% w3 j5 N
  2. /*
    . ?6 Z% p4 f3 a, F8 m5 q
  3. * edma_test.c$ ?& `# }& [' ^! I! A% U
  4. *+ k) H2 p# X/ E1 I
  5. * brief  EDMA3 Test Application+ i+ B  Y: u3 o6 a* q/ J, B
  6. *& _9 V: @$ m" w$ y1 ^, I4 x
  7. *   This file contains EDMA3 Test code.
    ( e" f9 p) u3 i! E% W+ w* z/ q9 q
  8. *
    5 C* d- e7 W5 g/ f' p) }& y9 z' m$ c
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE* i5 Y* W  Z8 i6 P) l- E" j/ `
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    . p2 e: e+ N! o4 j6 C
  11. *         TO CHANGE.
    3 ]# U8 Z& t6 \; a- ]" u
  12. *
      Z# n: R0 ?7 p# h9 N
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    ( h7 w8 r! q5 n- @
  14. *
    3 p: r4 [9 u# z$ u- v) t
  15. * This program is free software; you can redistribute it and/or
    + A& T5 `- Z. s9 |7 m9 V; z) o9 c
  16. * modify it under the terms of the GNU General Public License as
    ( Q2 H5 e5 l/ q' [  @
  17. * published by the Free Software Foundation version 2.* d: R4 |8 g4 I
  18. *) \' `( Y% p. H6 A, U
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    ; U, _, T. M) W* q/ i3 C
  20. * kind, whether express or implied; without even the implied warranty. f" b3 ]3 k+ c8 J( G6 T/ ]0 s7 z' A
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    4 U9 C  {3 J% g5 I9 N; {
  22. * GNU General Public License for more details.
    & r3 X2 ~4 j+ R5 j
  23. */
    9 t; A5 }( i% d$ ~: ~5 F
  24. " T2 t, k5 H0 z6 ~! ]
  25. #include <linux/module.h>
    0 }# }( _3 X2 P% Y
  26. #include <linux/init.h>9 T/ U; [: z0 Z
  27. #include <linux/errno.h>
    ( ]* q- n: Y4 O
  28. #include <linux/types.h>. f& ~+ V5 U& ~; F% O
  29. #include <linux/interrupt.h>% l9 E; b* f2 @6 N9 ^  D% j' b4 M
  30. #include <asm/io.h>
    , B0 x1 U+ V, K% V' X$ D8 W( T
  31. #include <linux/moduleparam.h>, N; u0 _# M! K- J2 O7 L
  32. #include <linux/sysctl.h>+ J$ U( E8 B5 b
  33. #include <linux/mm.h>
    ) C$ C; o4 I( F6 r6 y: P
  34. #include <linux/dma-mapping.h>
    # n) d# p+ J" z" D
  35. $ s1 D' B% v9 z8 W8 A7 C% p% x6 R
  36. #include <mach/memory.h>1 _7 R6 V$ d& |  r! g) G
  37. #include <mach/hardware.h>! b7 V1 W$ d. t4 f* O
  38. #include <mach/irqs.h>
    7 W1 [3 o6 v; r7 M0 y
  39. #include <asm/hardware/edma.h>" Z5 T- J, t6 m! \, G# p: _7 R

  40. / o4 `0 z% X* _' X% W* ~3 {" U- e
  41. #undef EDMA3_DEBUG+ G9 X  S4 E3 s! M% k2 s; h, r. M
  42. /*#define EDMA3_DEBUG*/
    0 j2 x9 x) ~: ^
  43. ) n7 a  q9 [6 }* T9 p' ?1 k
  44. #ifdef EDMA3_DEBUG
    $ R- c4 h- l8 A) a* S. _
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    ( n4 ~* [& N  _# ?
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)5 `3 ]$ Q. e4 r/ K7 y4 ?
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    ! I) S  A% e0 n/ O/ k' r5 @
  48. #else
    . P4 Y, t5 a' H0 b8 {3 P/ r4 D5 r
  49. #define DMA_PRINTK( x... ). K) [1 p! N, z7 N/ G
  50. #define DMA_FN_IN5 T' ~) ~, N) m  e9 i* [/ b
  51. #define DMA_FN_OUT
    7 }- K, x% K9 }+ S1 ]
  52. #endif
    / `) U& G/ s1 L3 A+ w

  53. : B/ Z# G' e$ z: D5 i
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)  E! J7 F, H/ `+ R% n+ y0 S5 q- c6 N
  55. #define STATIC_SHIFT                3
    - ]8 F: z5 T7 b* Y" Y# b
  56. #define TCINTEN_SHIFT               20
    ! p. e% h5 ]! y0 O1 ?4 C& [% y
  57. #define ITCINTEN_SHIFT              214 J# P8 G2 l5 O- j. a* M
  58. #define TCCHEN_SHIFT                22# H( r; ?* t8 \( C( @  c9 P
  59. #define ITCCHEN_SHIFT               23* c0 O( P! }! J5 c

  60. ; e5 I9 N! ^. e: q" O: e1 y. i: _7 a- z
  61. static volatile int irqraised1 = 0;" _! {* ~+ ^7 d
  62. static volatile int irqraised2 = 0;& L) p: d7 \" Q" l1 j% _

  63. ; ?2 x" k  b+ H7 Q% g3 u; @
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);" P# g) P. S2 Q
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);$ E  @% K' F: N4 i' P4 r
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);1 h6 n& L; g. }4 a) W8 Z  A

  67. % B1 N7 k; o5 ?5 h; A2 J
  68. dma_addr_t dmaphyssrc1 = 0;
    * }/ }: v, @, X) A0 l* X$ h
  69. dma_addr_t dmaphyssrc2 = 0;2 k" M; m% p* U
  70. dma_addr_t dmaphysdest1 = 0;
    - e9 ^+ h' a/ s, i/ ]" d
  71. dma_addr_t dmaphysdest2 = 0;
    0 `2 p4 k1 F1 e4 l
  72. & u' k. l6 v3 H3 U5 K: n
  73. char *dmabufsrc1 = NULL;
    . a$ j; U& R: C. X: d0 b
  74. char *dmabufsrc2 = NULL;8 \$ R% V7 s1 l- y. m* x6 j
  75. char *dmabufdest1 = NULL;
    5 J  D( ?7 v1 |% B! M9 p! l7 @+ \
  76. char *dmabufdest2 = NULL;" m" y5 y1 ^: b, [* j
  77. - Z  M3 W% u  k) p# g
  78. static int acnt = 512;, Q9 m7 K$ q9 N$ h; }
  79. static int bcnt = 8;* \9 \! K9 t6 h. z0 K
  80. static int ccnt = 8;7 ~0 Y' r. r+ S

  81. . c. L0 g# l2 R+ J% A% }
  82. module_param(acnt, int, S_IRUGO);* H# t) F+ d9 u8 U
  83. module_param(bcnt, int, S_IRUGO);6 ^# N" [! u7 \6 O3 N3 n" b
  84. module_param(ccnt, int, S_IRUGO);
复制代码

4 g: P: ?! T% D! r/ d1 w( u2 r; R$ g5 M( b6 h) v
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
, h: r  G. d; ^# `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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。8 ?, ^& C! p& v0 q: R
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。5 }+ Z6 D! u/ I: ]( \8 C# m, o% E9 Y
3 h$ s# ^. ^! |& b- u) @

$ F: F: C1 u( o7 p4 [- g9 p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-4 22:08 , Processed in 0.037579 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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