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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
6 {  n: ]4 g* I( G0 S% j
  1. [code]EDMA sample test application9 A$ j! w8 Z9 R) {4 U* a! x/ H
  2. /*
    & K+ b# K% B7 U' ^' G
  3. * edma_test.c4 F% H, y" P1 X" J3 U+ a
  4. *% `0 I7 P, r9 n2 C. n* ~; i
  5. * brief  EDMA3 Test Application  j$ L) r' ]+ \0 L- t) [
  6. *
    9 [1 S- r, }" ]% `. f6 E0 p6 f. `
  7. *   This file contains EDMA3 Test code.# f/ C: ?1 I* R5 `6 @
  8. *6 E! [& m% v' }( Y( k/ d5 a
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    $ M/ h9 N! M1 c# j1 j1 _  L
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT, D0 z. @' K% U9 b- `" m
  11. *         TO CHANGE.
    7 C, p( K$ d6 o# \  r! E
  12. *
    & h3 a% b3 Z0 ?  ?% V$ v
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/' i7 a+ ?( ]5 u6 c
  14. *
    2 B! k7 |, F! J* E
  15. * This program is free software; you can redistribute it and/or: _" F$ T; z9 @7 Q* e
  16. * modify it under the terms of the GNU General Public License as
    / U7 z1 q9 w3 F9 k
  17. * published by the Free Software Foundation version 2.$ Q3 `! B: I* Q4 q- h# n# O
  18. *6 W  u( P; |/ b# ?# v
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any+ ^& d& I. _6 c4 j# o
  20. * kind, whether express or implied; without even the implied warranty, c4 C7 Q6 c* T0 f+ @9 M' m; u
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    3 C" ]7 k# u$ R, D, ]: r# ~
  22. * GNU General Public License for more details.
    : z, X) Q- s' k% i1 O; q# x6 f* t" u
  23. */9 |; U& \# U; F' H$ j
  24. ' }2 A) O3 M" [) q
  25. #include <linux/module.h>! x, R( V) E. o* ?9 B
  26. #include <linux/init.h>
    + T8 A1 ~/ ?2 o
  27. #include <linux/errno.h>; o, p8 Y$ U5 M+ K. }) t
  28. #include <linux/types.h>+ S) U2 U" s% Y4 A; j
  29. #include <linux/interrupt.h>
    6 W0 R/ D2 F- P3 A
  30. #include <asm/io.h>
    * w$ z( d0 R% {. n- h( V: R
  31. #include <linux/moduleparam.h>
    0 b( X1 ^! B1 q
  32. #include <linux/sysctl.h>; }; v1 }3 n; z- z/ H: F
  33. #include <linux/mm.h>
    $ a$ S1 k  C8 c7 L
  34. #include <linux/dma-mapping.h>0 r' l1 `: v3 ?

  35. 6 U' q2 F% V+ t2 Y: S
  36. #include <mach/memory.h>2 b% d% K  h! Y
  37. #include <mach/hardware.h>
    7 r; w) N  e% A+ V5 |9 c, m
  38. #include <mach/irqs.h>
      n) h- U4 M+ X
  39. #include <asm/hardware/edma.h>
    . f; g" g3 I9 [- d
  40. $ i, v8 }2 S5 ^7 T2 d# q4 ?* d
  41. #undef EDMA3_DEBUG$ q( _5 X1 e' t5 M  \) ~8 r
  42. /*#define EDMA3_DEBUG*/3 x. O7 |% |7 U% P" F/ j! Z

  43. ; \6 w3 ~5 [" D1 i3 j& j' {
  44. #ifdef EDMA3_DEBUG5 e" c! q, I" ]$ R; B
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    4 [5 @! D4 I) `  U8 b5 n9 f
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)$ ^+ Q/ l4 ?* T1 ?, H
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)2 }5 W/ @3 H0 _: v' }( t3 {& T: @
  48. #else* A" m- }9 Q( u& j
  49. #define DMA_PRINTK( x... )6 g* H7 ?7 f( p3 A5 O/ k/ o
  50. #define DMA_FN_IN" A, S" U# n9 A
  51. #define DMA_FN_OUT
    ' ?% ?8 d$ c4 s
  52. #endif
    9 v, n( f7 y* V% o2 Q8 G2 U
  53. 0 ^- G3 `, E- r% p$ v
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    0 T9 m9 R; e7 ^& V8 G7 y, O% d
  55. #define STATIC_SHIFT                3
    ( F0 v' v6 o9 e7 G8 C. R
  56. #define TCINTEN_SHIFT               20
    # U5 o; L7 V4 A+ A; y# L& l8 d
  57. #define ITCINTEN_SHIFT              21+ E5 t2 U0 J( [' D3 W2 |
  58. #define TCCHEN_SHIFT                226 E4 d. _5 A# @2 P( {
  59. #define ITCCHEN_SHIFT               23
    + O2 d' ~! E6 t* k+ O8 A

  60. ' M  Q5 b+ K" k# S8 e2 f
  61. static volatile int irqraised1 = 0;
    3 b, F2 q  N8 \2 ~8 D# R8 \+ `! p
  62. static volatile int irqraised2 = 0;5 L" O- N1 `% ]* B9 X& e

  63. / B3 d% H- r0 }8 {1 B8 Y; r
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);7 S8 ~6 n, M; P' m1 B5 z/ ^
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);* W9 _# k5 m; X6 Y! M, F2 ?0 n
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);) D* k( f5 S9 m; }$ b* N
  67.   ]  j. q% b/ @
  68. dma_addr_t dmaphyssrc1 = 0;' O6 b# d! P, z/ @! H5 c
  69. dma_addr_t dmaphyssrc2 = 0;- j8 _* o9 t0 Z( h- t( |
  70. dma_addr_t dmaphysdest1 = 0;
    . n9 g3 t  t! |4 k2 a
  71. dma_addr_t dmaphysdest2 = 0;
    5 [5 X3 b; y) @. }5 r; V
  72. # W8 C) q4 Q; e# A% X
  73. char *dmabufsrc1 = NULL;
    & ?/ E' G' A/ i/ r$ H4 j* W
  74. char *dmabufsrc2 = NULL;' i; i& ?( B% @1 m' L1 B5 Q
  75. char *dmabufdest1 = NULL;
    ! s9 _" t* ~1 z/ ?+ C8 a% ~1 A" C
  76. char *dmabufdest2 = NULL;4 e. ]; H# G+ r6 [4 O

  77. 4 C/ ~2 z$ j; n- [. ?& I
  78. static int acnt = 512;! D- r$ o( Z! t" p5 R
  79. static int bcnt = 8;9 J5 z6 N$ P* E% y! f$ q# @7 C3 ?
  80. static int ccnt = 8;
    - `! V8 Q7 e! W

  81. - ^' ]0 f) t7 }5 q' w- K1 v
  82. module_param(acnt, int, S_IRUGO);
    " `7 i: Z" |3 z
  83. module_param(bcnt, int, S_IRUGO);
    ! A9 @# j& E# G; u; m, R% \
  84. module_param(ccnt, int, S_IRUGO);
复制代码

+ U+ g4 f  S8 j% a/ t! i2 }7 ~0 G$ H! E% a3 `
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用. S" P; \$ @& U1 G/ u! M1 ~
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
6 j9 r" d1 W; E7 i$ C  j! d     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
$ [8 x: k. w+ M  H
2 f4 q5 u; ?( Z2 f
) \8 N2 F0 N4 g  K  u8 B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-11 01:30 , Processed in 0.038778 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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