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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 * v2 Q' b6 o* R/ a
  1. [code]EDMA sample test application
    ; e: W7 |6 W% R' f! C7 Q
  2. /*9 ~" K! v5 H. F6 y- }
  3. * edma_test.c
    9 a& Y$ j; A- `1 P1 c- @) w$ ~9 C
  4. *
    1 D, j9 g# s" _* ?5 q8 e5 G% b+ X
  5. * brief  EDMA3 Test Application# ^2 \% T: }% [% f- l
  6. *
    ; G* v5 I8 X, m) O
  7. *   This file contains EDMA3 Test code.* F* _& z3 c: B7 I
  8. *
    ' S  c: k$ S' A* t+ \
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    6 e  o! V3 j4 S; p9 a+ ?
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    ; D& S/ ?5 A7 ], O8 a  N
  11. *         TO CHANGE.  Z1 \7 Q8 P4 {. x" h5 J; t
  12. *
      z( W$ I; \; e) R
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/8 a7 f& \& C2 J. W5 a: F5 a) ]
  14. *
    ( W4 w5 e) u5 c* H3 r
  15. * This program is free software; you can redistribute it and/or( X7 h4 S; {+ S
  16. * modify it under the terms of the GNU General Public License as1 |) [* s  _$ d  P4 f& n, S, c- c2 b
  17. * published by the Free Software Foundation version 2.- W7 u0 e' z# m; }  G) i
  18. *
    ( v; i8 Q! l3 p! @8 F& o! m6 a/ L
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    7 @5 I) ~3 Y0 v: E% @
  20. * kind, whether express or implied; without even the implied warranty& D. R3 y4 C; @3 @/ n. C- Z
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the9 f; Y$ w0 ~5 r: k
  22. * GNU General Public License for more details.
    , P0 v9 O+ l4 _7 ]% s4 F0 c/ B
  23. */1 L$ \6 W. Y+ e4 a, T! `+ y6 A: Q
  24. 2 u4 m  p% y. [  y6 |% W
  25. #include <linux/module.h>
    ! n! m" g, K8 B
  26. #include <linux/init.h>/ L& e. b2 P8 h
  27. #include <linux/errno.h>
    & G5 u- a: t; E
  28. #include <linux/types.h>
      ?1 q* O8 y8 X* b4 i1 R
  29. #include <linux/interrupt.h>8 _7 L# x' T8 T' ]
  30. #include <asm/io.h>  ?7 A3 f  m6 C, J' n
  31. #include <linux/moduleparam.h>7 @$ m4 g0 A" T* k# i
  32. #include <linux/sysctl.h>/ O/ V3 W" M& }+ r! [, W# x
  33. #include <linux/mm.h>
    1 ]0 T+ {0 f' I5 w( y6 T
  34. #include <linux/dma-mapping.h>
    0 [9 l/ `- V+ S
  35. : V3 n6 b( I1 X% [! N7 d2 @
  36. #include <mach/memory.h>
    ( n! Y6 D; b' z6 h% U1 ]9 R
  37. #include <mach/hardware.h>$ b8 I  y2 d; {/ p
  38. #include <mach/irqs.h>
    1 F9 Q  H/ w- @% ?8 [  U
  39. #include <asm/hardware/edma.h>
      A" v  Q7 X9 ]

  40. . g6 ]5 Z2 V9 J& Z# P
  41. #undef EDMA3_DEBUG) N1 `1 ~. L/ y; [0 P
  42. /*#define EDMA3_DEBUG*/5 R3 k" m$ p! F$ f& |

  43. 3 t" c9 x. h. x( ~4 e! I' B
  44. #ifdef EDMA3_DEBUG; c- c: L8 k* {3 P
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    ; K$ e) M. W! S3 y' m3 M& Q! [
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)- T1 q5 z8 F# x4 V. R& r
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    ) W5 H- x1 k3 y/ B4 ^% E, u; r; Z
  48. #else2 r1 n, y# Q5 x! W& _. j" K
  49. #define DMA_PRINTK( x... )5 _: s3 d9 k1 a+ U: h" I* E
  50. #define DMA_FN_IN
    ) b  |; g: s4 I
  51. #define DMA_FN_OUT6 \1 R6 v: p! q1 P4 p4 C; H- S+ ?
  52. #endif' v# r3 [$ p% \9 O. V, v5 N7 t
  53. ' H0 Q5 E! L% m; T* y
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)0 F* D% W6 u' p/ @$ f% X$ ^+ v
  55. #define STATIC_SHIFT                3
    9 R; d* a- S" h& e
  56. #define TCINTEN_SHIFT               20
    1 n( e% I- X' S* J* g
  57. #define ITCINTEN_SHIFT              21
    0 E! d- j/ H  l& C+ O; k% G
  58. #define TCCHEN_SHIFT                22
    4 N! ~4 S3 K5 [* `
  59. #define ITCCHEN_SHIFT               238 V/ z* h7 x# r3 r" `
  60. % z" k, g9 O, i( l2 Y+ ]
  61. static volatile int irqraised1 = 0;  I6 W* g; l) H3 `8 M
  62. static volatile int irqraised2 = 0;& p/ d8 `7 N3 j2 |. Z6 d! Z

  63. 7 Y- \$ r& @7 s1 R3 j
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);; m2 T0 R6 x  b$ I
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);" f9 [# K3 ~+ V; p
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    3 v) n' ~7 _+ o: _

  67. 4 \# j; A2 Q3 I2 \4 q- ]
  68. dma_addr_t dmaphyssrc1 = 0;2 B) V# i6 Y  ^5 v
  69. dma_addr_t dmaphyssrc2 = 0;
    ; M2 s- C6 x$ B1 C9 E
  70. dma_addr_t dmaphysdest1 = 0;
    ' v) k  m2 j: |" Q4 M
  71. dma_addr_t dmaphysdest2 = 0;7 y5 e: t1 O4 O# ?$ i

  72. ) {$ X% J3 P5 Q) O8 X- ~
  73. char *dmabufsrc1 = NULL;" U! z# m7 x# D. J/ |
  74. char *dmabufsrc2 = NULL;
    6 V2 V5 @$ ?% b
  75. char *dmabufdest1 = NULL;
    6 A) _) U5 q9 {  g
  76. char *dmabufdest2 = NULL;
    6 L3 E. V" t/ T8 `0 z& e  n% |
  77. * L2 F8 Q% f: u/ [
  78. static int acnt = 512;
    $ n; [6 E. ]1 [, d( n1 c9 O8 d
  79. static int bcnt = 8;
    5 U+ ?- }' T* I: m, Q
  80. static int ccnt = 8;
    " J: }2 L5 X5 t) e
  81. ' s# }6 {+ i  i5 H8 `
  82. module_param(acnt, int, S_IRUGO);7 P! v! G: U" P
  83. module_param(bcnt, int, S_IRUGO);. n  O1 H4 J. |& Z  \8 E
  84. module_param(ccnt, int, S_IRUGO);
复制代码
; ^; e; P9 o: B) Z0 {
" h6 Y8 I& o+ k3 v" w# R1 w
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用, O  r5 B6 W" e2 M0 ^
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。1 c" c1 C! z. s$ x( g& e
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
  L3 C6 T/ H& X0 K* R
- Y1 p9 y7 {8 `: _8 O/ f$ v
9 O7 q/ h" K6 A: u3 l9 e7 p' X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-31 22:20 , Processed in 0.046744 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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