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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
! r: e' n9 N, x8 c& ~- W9 A
  1. [code]EDMA sample test application2 d' M) R& v2 D! ?/ M
  2. /*- D1 V! O, ?1 T+ G; W* i# P' u
  3. * edma_test.c- r( t# {# h$ w  K
  4. *0 ~) p  C: _8 k' d$ W$ p5 d
  5. * brief  EDMA3 Test Application
    # U% s4 T, H; e8 |3 [0 `3 \% o+ u
  6. *
    6 K/ [/ p: D5 f+ Z7 G( D  I( C+ Q
  7. *   This file contains EDMA3 Test code.% t& }" d, n& j
  8. *
    $ |$ Y( y4 F1 V& C. @
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE: a+ i; o( C; y7 P/ K
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    4 r6 F, S5 o, Z2 |
  11. *         TO CHANGE.- ]: }6 F8 P1 z: S% ^, i" z
  12. *4 [! p2 c6 t- E( z5 r% M6 a, p
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/& b0 a4 G! Q- ~* f$ K/ r' n# }
  14. *
      k: J0 d  ^. c
  15. * This program is free software; you can redistribute it and/or
    0 h: Y* c4 w$ K+ z- V
  16. * modify it under the terms of the GNU General Public License as
    & Q% w4 v" Q( Q" _( w; v
  17. * published by the Free Software Foundation version 2.5 ^% x; Y7 b$ j, t( U3 q/ C2 T) g
  18. *; Z" _. P: B, {. E  [
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    % |2 z2 Y7 W, g% }3 G# M
  20. * kind, whether express or implied; without even the implied warranty; K9 C+ O* f1 p  H3 ]% k
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the* m7 u% k0 {$ g) X) I& Q* ]3 f) }
  22. * GNU General Public License for more details.
    0 a2 K+ }) k$ r# ^" o4 l$ M9 G
  23. */) K) W5 Y6 F! @, V5 h5 m

  24. 1 c* G1 E! x5 ^1 @& Y# U1 B" c
  25. #include <linux/module.h>; f5 q7 g, H" ]' s* E' y% q$ n
  26. #include <linux/init.h>
    6 u+ l. }8 x; x
  27. #include <linux/errno.h>
    9 M2 o3 E( M& _: U. D, a2 ~$ x
  28. #include <linux/types.h>3 s: L3 v8 F. \8 ?6 V+ |/ _+ r
  29. #include <linux/interrupt.h>
    ( c3 H1 g+ a& v7 D1 ]2 {& V2 k
  30. #include <asm/io.h>
      \# g  Z( p9 B$ d
  31. #include <linux/moduleparam.h>' N' _5 j; f0 o
  32. #include <linux/sysctl.h>% \8 g8 i1 d3 j# b. B' @
  33. #include <linux/mm.h>! ]) P. h( [3 W, U* Y3 i
  34. #include <linux/dma-mapping.h>4 }1 L+ m; [3 f" L" r% y

  35. 1 N# s. C0 h0 L' @0 f
  36. #include <mach/memory.h>9 k! m% R4 T- M5 `+ E
  37. #include <mach/hardware.h>
    3 x- V" F3 z1 d8 i/ _( t) ]
  38. #include <mach/irqs.h>' m0 x$ Q  _) W  o. \/ W
  39. #include <asm/hardware/edma.h>
    2 ]# N7 i( K. q+ {8 e4 W
  40. / E0 a& k# n! k- C( Q
  41. #undef EDMA3_DEBUG
    9 L) |8 k: v: q  W2 L8 b: ?/ ^
  42. /*#define EDMA3_DEBUG*/
    4 u  C4 N! X4 I
  43. / O; e4 n9 T/ \' U4 J5 l6 L* N
  44. #ifdef EDMA3_DEBUG+ y7 j) P6 M, V7 u0 ]  {# O- K
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)+ Q! q. o# N+ v2 I
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    & c6 D: U( R3 Z- K7 X. ^2 I
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    . A. {6 [0 R, `) M! C
  48. #else
    2 C3 O7 i4 o: [* u) y. d' ~+ m. Y8 N
  49. #define DMA_PRINTK( x... )
    & N6 J7 @: b" g% @( U: }6 i
  50. #define DMA_FN_IN+ k' \9 }& p4 ?$ u; G' _  [
  51. #define DMA_FN_OUT/ i7 F! D3 z1 r9 U6 w4 R* Y
  52. #endif; t) e: R  l; j  A+ @  t

  53. & F, v" R2 t" }. Q% j
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    + m0 [8 J& D% v9 B% w
  55. #define STATIC_SHIFT                3$ `7 r- o6 ?( _
  56. #define TCINTEN_SHIFT               20
    3 o: k" k! E5 U9 `
  57. #define ITCINTEN_SHIFT              219 k" w5 w6 w, w) j
  58. #define TCCHEN_SHIFT                22: u6 t2 t8 K2 k) F$ q: r% C
  59. #define ITCCHEN_SHIFT               23
    " a1 k, u/ p' }4 n) K1 d) {5 d8 \
  60. 2 _+ C# S% U2 @& n
  61. static volatile int irqraised1 = 0;7 f: K  |. G0 i, J
  62. static volatile int irqraised2 = 0;# H6 W8 w, y1 |% l

  63. # @2 v* {4 W0 }' ?1 W8 O
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    : [' w( n" g( |% z( k
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);# V1 j7 ?- c$ c& Y9 A' z9 p
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    + `" P0 `( \* d4 S' f
  67. $ {$ g& x7 I  c2 ?2 i" m% b1 O
  68. dma_addr_t dmaphyssrc1 = 0;
    $ I' q) P, U5 Z2 k% j# [
  69. dma_addr_t dmaphyssrc2 = 0;3 f' E  x" A8 S0 a/ e, Z# O" d
  70. dma_addr_t dmaphysdest1 = 0;
    ) f# R# ^! ^; ]
  71. dma_addr_t dmaphysdest2 = 0;6 H: j% u: x, [1 [

  72. 4 v8 L* I' s: s6 {/ y# t% Q& M
  73. char *dmabufsrc1 = NULL;
    , @# m( y4 h. O: S/ ~2 }9 b, w
  74. char *dmabufsrc2 = NULL;
    ) P6 C; f3 [7 c; G. w) U
  75. char *dmabufdest1 = NULL;# e- e, N' ~5 D( p% w
  76. char *dmabufdest2 = NULL;) N9 o( R( C+ C& a. a! b6 ]# `
  77. " y& h" {' s/ T) E/ m/ \: o
  78. static int acnt = 512;
    " w# ?) x) j5 v8 x, z8 @4 Y2 ^
  79. static int bcnt = 8;, \0 b8 K  `3 k
  80. static int ccnt = 8;
    , A# `: s/ x( w$ v8 n
  81. 2 N4 [; V6 {: ?- D2 W" I& e5 O1 j: ]
  82. module_param(acnt, int, S_IRUGO);. Z1 |1 p: _5 P% z8 ?
  83. module_param(bcnt, int, S_IRUGO);+ ]0 y& `+ @% G( a
  84. module_param(ccnt, int, S_IRUGO);
复制代码

1 @0 }  O  r3 e- [, c$ V' Z* ~3 `2 B+ L( y8 i' T0 h
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
" b/ k3 L2 B; K% `3 n* {  j$ qarm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。; {! l% ^) P. h' Y
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
' ^" H+ |9 k5 R( n6 Z7 r( W9 p# l) b; S( R; E

' D4 L2 h% u; M' Z$ |& _! t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-2 21:09 , Processed in 0.040071 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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