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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
8 \6 G* F) u2 w% d+ ~' U& v" B
  1. [code]EDMA sample test application
    7 f, g8 H9 V4 A8 j- d  r
  2. /*
    ' }5 [+ T* ~5 ^
  3. * edma_test.c. ?& k; h( O, e5 M, L  h
  4. *
    0 ]) h7 b# N* |
  5. * brief  EDMA3 Test Application
    & W, B+ U& N& c9 k/ }# |# R& X
  6. *
    6 s/ O) a) }9 u3 ~2 p
  7. *   This file contains EDMA3 Test code.
    . n3 v& n: {8 W( B: l5 Z) P
  8. *
    $ K+ |% n: C( i! o9 ?. G  |9 V
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    , Q6 C2 O' E/ p* {5 k+ n
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    5 [5 O( t' _9 G  X/ Q; Z
  11. *         TO CHANGE.
    % v! ^& Q9 @- X
  12. *
    3 n9 n0 {  f: g$ l$ B2 j1 q+ m& C
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/& D0 H0 m# d9 V
  14. *
    $ r' k: N& E- M2 L$ Q0 U- M
  15. * This program is free software; you can redistribute it and/or) I  T+ y9 m& G5 D2 N7 f5 V( p2 x  p
  16. * modify it under the terms of the GNU General Public License as( x5 u7 G4 z/ P' Y4 k# R9 E
  17. * published by the Free Software Foundation version 2.
    ! Z4 [6 Y/ G5 q- T5 R
  18. *
    / r0 ]* j. |+ i- P7 _" r1 Y, U, ?
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any$ J% Q3 M5 f* s- y
  20. * kind, whether express or implied; without even the implied warranty
    2 }; I* X# W4 v/ {
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the2 n- _6 q/ j0 R- u" U- N
  22. * GNU General Public License for more details.9 ?' S& ~, ~+ M9 K, r8 r7 n
  23. */; \. O' l* X% Q; S) [4 j

  24. . u' A& R$ d2 m
  25. #include <linux/module.h>$ ^  u7 E$ t2 v
  26. #include <linux/init.h>
    9 w# s9 H( N8 T1 {7 m* Q" P1 E
  27. #include <linux/errno.h>' O3 U2 b! A% g2 {. x- J& B- h2 {) G) I
  28. #include <linux/types.h>" C2 t  ^/ E1 j& @: z: n
  29. #include <linux/interrupt.h>; A5 Y1 @" i3 z$ O% w  U8 b
  30. #include <asm/io.h>3 o+ a4 ~- b8 @7 `
  31. #include <linux/moduleparam.h>+ }$ a5 n+ }( E, Q9 V
  32. #include <linux/sysctl.h>  \3 w$ e1 w$ d+ d. T, H
  33. #include <linux/mm.h>
    % D1 X+ D' ^4 F3 X
  34. #include <linux/dma-mapping.h>; S* {+ K3 p# d' A' E
  35. 3 T' E/ ]/ F, m8 t' {. T
  36. #include <mach/memory.h>& B$ M, {" p5 p! p, V
  37. #include <mach/hardware.h>: B1 ^! s; Y# T% a! U6 `. ]
  38. #include <mach/irqs.h>
    ( B3 c% F/ B" t5 Q' v
  39. #include <asm/hardware/edma.h>! t3 N+ i$ j7 _/ Y1 _  s5 Y$ {, b
  40. . ~1 M$ ^% m" a; v
  41. #undef EDMA3_DEBUG( Q$ [4 }, s# a& p& K0 w
  42. /*#define EDMA3_DEBUG*/
    / R& w' R9 ?- Y: p$ c; v+ H8 G: a+ |
  43. 7 P) b7 u, N, n
  44. #ifdef EDMA3_DEBUG2 ?7 X2 T. m  ~; W; R
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)% ^; L  [& o: Q
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    ' _9 `( ^/ e2 W6 [% t- w
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)& t# p/ U: Y% R. @
  48. #else
    ! S$ f9 }/ i! }2 Y0 `' N
  49. #define DMA_PRINTK( x... )
    ' ~% ^2 n- P" R) \  V" F# E- Y
  50. #define DMA_FN_IN
    $ [0 d2 i0 L& R$ l0 p) t$ `
  51. #define DMA_FN_OUT! L# c( N% Z2 W/ a
  52. #endif( f# Q8 M/ C" f: l! v1 R( l- y
  53. - i9 K8 T0 f) |# Y
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    6 D$ f! a2 T5 N: M: y
  55. #define STATIC_SHIFT                3
    : k' \- u5 N9 f* T
  56. #define TCINTEN_SHIFT               20
    . _5 `! D/ i. a; Q; v' V
  57. #define ITCINTEN_SHIFT              21
    : e- i" ]" |" H" D( W5 @$ F& x- t
  58. #define TCCHEN_SHIFT                22, Z( s4 I8 Y4 j& m. |
  59. #define ITCCHEN_SHIFT               23
    * [$ Z. f8 M+ u% @' b. @/ i

  60. ' {" K) \, v; A* W. ]& l( c
  61. static volatile int irqraised1 = 0;
    , ^. v4 H& |9 v4 n8 _. e
  62. static volatile int irqraised2 = 0;8 T; c: c# G7 h
  63. 2 U  z5 f. @3 U% m. w. }
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);' {% ?! j; n, M" F
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);3 o4 P' p4 z  ^
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    " ^1 n7 ^2 `4 O* r% Y

  67. * Q, p4 ^/ [% n  Q& a, p5 z
  68. dma_addr_t dmaphyssrc1 = 0;8 y! f: B0 Z2 m+ x& p
  69. dma_addr_t dmaphyssrc2 = 0;2 g: K& J! [4 `3 O( h" L5 _" @
  70. dma_addr_t dmaphysdest1 = 0;
    * V# H- I: f6 v. X
  71. dma_addr_t dmaphysdest2 = 0;
    , C: [& K. K3 J- k7 ?/ e8 ]

  72. ' n3 @5 d" F( x# P$ i( w
  73. char *dmabufsrc1 = NULL;3 g5 d8 _- q# ]# \( p. \0 N3 }
  74. char *dmabufsrc2 = NULL;
    , N3 t" |5 O5 g! p
  75. char *dmabufdest1 = NULL;
    7 z5 w7 k- k5 q
  76. char *dmabufdest2 = NULL;
    6 I5 h% k! G1 _: i

  77. " z7 j( \: Y; H' U' z# U. a
  78. static int acnt = 512;8 ?. [; \" H3 Y+ V/ Q
  79. static int bcnt = 8;- g0 i4 G: K5 F- @! L
  80. static int ccnt = 8;: S5 X/ W. T* ^. Z' J$ M: ~6 j

  81. 2 V( K1 D% B" j/ n  |5 k
  82. module_param(acnt, int, S_IRUGO);5 z* R) t5 M! W2 ?! y
  83. module_param(bcnt, int, S_IRUGO);
    " X/ d$ h: q& \" g& B
  84. module_param(ccnt, int, S_IRUGO);
复制代码
$ p, j6 @7 c2 _* x1 Z% i$ Z6 G
) t' t7 A& J- m) h
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
, M. ?, f! O$ a$ n' I. l/ @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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。+ F- D5 S6 K( w6 {6 o, x
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。6 @! ^0 Q/ z5 h$ I% E1 a5 `
3 b9 ^2 k2 m: {# a- {
' V7 n# S' t5 f( }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-10-17 09:41 , Processed in 0.047485 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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