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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 : Q" Z  n: K, G
  1. [code]EDMA sample test application6 M! {( `0 l/ A2 B8 J
  2. /*
    - \# J; Z: n* T6 c. ]4 ?2 W4 u2 E
  3. * edma_test.c3 v9 J1 N7 X2 L9 g# q" ?# l. C
  4. *6 e' u. K/ Q  K$ q9 f2 q. q( U
  5. * brief  EDMA3 Test Application
    ; z3 j& J# g) q* Y- N+ y
  6. *
    ( U" W3 a' J8 e
  7. *   This file contains EDMA3 Test code.: [9 l+ H+ c3 D  ~! T  I4 P
  8. *
    , a: K" ]1 N. N' d
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE6 k/ J- Y: _2 T" a2 {( A
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT. e2 b- o( q! p# n" g
  11. *         TO CHANGE.
    ! e+ x9 E* R# b4 A, `
  12. *
    * p7 `% s" ^8 r
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    8 U: L/ g, c2 L( _0 F+ [0 O! F
  14. *
    6 V3 d2 v, e1 H
  15. * This program is free software; you can redistribute it and/or- K& J  ]! ]# ]5 U/ ^1 Q; u
  16. * modify it under the terms of the GNU General Public License as2 y+ X3 i( X0 g, g: X
  17. * published by the Free Software Foundation version 2.
      x7 C* f) D* F6 n; k
  18. *
    ) {3 H" p# q, e2 P* k# y
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    1 J$ z9 P4 ?1 n- {# B
  20. * kind, whether express or implied; without even the implied warranty
    ; h5 S8 Q% I( [5 y& E
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  D( J- d0 r7 X  G- r! U! n7 [: y
  22. * GNU General Public License for more details.
    7 U& U2 F9 {* I% E) k
  23. */
    & U& K# w4 T: o  p
  24. . D# Q1 M4 a0 Z9 x! [
  25. #include <linux/module.h>
    ( S3 O1 e% }+ L7 I
  26. #include <linux/init.h>
    & r3 P7 X6 Q- V8 @1 G
  27. #include <linux/errno.h>
    * o" T9 m& R  @0 F2 M! k: g& r' C
  28. #include <linux/types.h>0 R  S; t" c) ]0 ]
  29. #include <linux/interrupt.h>) W5 f( l8 r7 r  v% n& Z
  30. #include <asm/io.h>
    9 U+ P, v, O! D
  31. #include <linux/moduleparam.h>, |/ ?, }: o! Z( }# R
  32. #include <linux/sysctl.h>
    ' ]; y. y, y/ _$ T! b: ~1 i
  33. #include <linux/mm.h>
    2 h1 w) J6 X+ p! o& {
  34. #include <linux/dma-mapping.h>
    , Q1 M0 l7 w( Z5 R6 ], W

  35. 1 g: i9 D% q- y9 }& @5 F! j3 K
  36. #include <mach/memory.h>
    8 R# \( R$ s# |& R
  37. #include <mach/hardware.h>
    . q1 @8 v; ^9 c: T
  38. #include <mach/irqs.h>
    / r) m% ]  O1 H! a9 R6 a
  39. #include <asm/hardware/edma.h>+ |$ t, J7 A5 W/ }5 P/ `

  40.   F& A$ f  U2 N7 E6 C" U) i2 ~1 ~
  41. #undef EDMA3_DEBUG
    * d( q) I3 W( \& `+ O1 D) l8 x
  42. /*#define EDMA3_DEBUG*/* E  ~, M  O! k" l& s
  43. ; K4 @' i6 y! W' Y+ p
  44. #ifdef EDMA3_DEBUG
    8 ]2 m. u( {! C. y: `$ C
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)9 B+ ~( x. C( Q& ^
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    ( D% v; k) s% n( i
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)4 ^; F: K# V2 T
  48. #else+ V2 x) r' K. w
  49. #define DMA_PRINTK( x... )/ H0 l- Q" m" x  X
  50. #define DMA_FN_IN
    # p" E$ G0 G" w; H
  51. #define DMA_FN_OUT  x& M7 W3 D8 I/ I% {9 y
  52. #endif( D& v% v/ ~1 C0 X# K2 z

  53. # C* j/ ^, j5 [. d9 Y
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    5 \( c& t  `" h
  55. #define STATIC_SHIFT                39 m2 B& u/ m" C# F0 A' d
  56. #define TCINTEN_SHIFT               20
    7 t1 J0 \5 w+ u
  57. #define ITCINTEN_SHIFT              21
    + V/ c9 |% g9 [& r7 ]( [. @1 k
  58. #define TCCHEN_SHIFT                22
    ; i1 q! r* E  h" v$ l9 t0 c
  59. #define ITCCHEN_SHIFT               236 D' P& K3 M) @$ T7 u5 o1 R
  60. + a+ g& O5 x5 `' w  _: L# ^3 Z
  61. static volatile int irqraised1 = 0;
    7 f  O# Z) F' ^  g% C% \
  62. static volatile int irqraised2 = 0;
    - E+ f8 f& l" X$ z! g

  63. * x' m3 B4 A" D7 x: J! G
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    % N% w6 x% s0 U7 X) o
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    , \$ t& k" B# D) r7 g  s/ g
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    6 c: v: k2 e& q- M, \
  67. * o, ?- i% ^  B8 |6 F
  68. dma_addr_t dmaphyssrc1 = 0;
      d5 Q& e1 `6 ?7 Q
  69. dma_addr_t dmaphyssrc2 = 0;; G- _0 _; Z; ~. k3 h$ e
  70. dma_addr_t dmaphysdest1 = 0;: m5 K: f2 `2 J* \( ^- K
  71. dma_addr_t dmaphysdest2 = 0;' _& o# n3 g2 Q  q2 ~1 P
  72. * M* B; |$ e: {% r! q, a6 v6 |* O
  73. char *dmabufsrc1 = NULL;
    1 P! w6 ?+ I& z% J+ k5 Z2 x8 F
  74. char *dmabufsrc2 = NULL;
    % z5 f: ~" k4 |! M  W
  75. char *dmabufdest1 = NULL;6 O2 ]+ \: a1 ]$ Z+ ~( F$ e
  76. char *dmabufdest2 = NULL;
    # {4 O$ {6 E. m$ w+ q8 G
  77. , F* G4 S& R& O; p
  78. static int acnt = 512;
    8 y3 L3 d4 K8 u7 b& w1 U
  79. static int bcnt = 8;' C# x: K2 T% b0 D
  80. static int ccnt = 8;/ B( H" k0 s) L3 Y/ s  g
  81. * J" m1 E+ o1 W6 q+ C
  82. module_param(acnt, int, S_IRUGO);" ]8 b, k+ E4 T  q1 n$ B' b
  83. module_param(bcnt, int, S_IRUGO);
    - U  m2 N# M9 W# O
  84. module_param(ccnt, int, S_IRUGO);
复制代码

2 d" @% \0 a) n* x( g$ Y# O3 \+ t/ C9 i
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
, O/ _* X, Z  ^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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
) r9 {# M* ^: o3 m& R! {$ j. C     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
+ Q' C* K; d: O3 q4 o" |7 t$ ?- i- h% _( t7 g% X, ~

- c( ?9 ?9 @; \% P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-23 08:14 , Processed in 0.040614 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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