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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
# G: w( K* [( f
  1. [code]EDMA sample test application
    $ [% C0 a/ c; j$ @' @/ _
  2. /*7 V( [. S& Z& m: B' E+ g& v
  3. * edma_test.c
    + `9 |" E  c! x" [
  4. *
    ' @) y- ?$ A) E7 U3 i
  5. * brief  EDMA3 Test Application
    0 O( ]* ~9 F/ `& q5 [
  6. *. G" q( z, F5 i' f& L1 S
  7. *   This file contains EDMA3 Test code.2 {' d- y+ \8 U4 S: a0 k
  8. *
    $ e/ q. E: `9 N; q8 `- T
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    ; g- h( v0 z) c8 Y3 ?* m
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    9 x3 D0 u. J. M+ L1 B6 _4 E& b
  11. *         TO CHANGE.
    * e+ H. i8 M& }: G
  12. *7 G; Y" C( d, A
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/; h. y. j) N& [5 C
  14. *0 o. K& x/ T+ |) P6 W- T
  15. * This program is free software; you can redistribute it and/or* |) L1 t, z. U# e- ^
  16. * modify it under the terms of the GNU General Public License as
    : s2 F; R" P; R8 ~1 N" x4 L6 {+ N
  17. * published by the Free Software Foundation version 2.7 V2 ?/ {  h8 \5 n: ~1 D
  18. *
    ; f, n$ u& u( W2 Q# r$ d
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any4 N& a  p: g8 e
  20. * kind, whether express or implied; without even the implied warranty& H8 M' v7 p2 O- C& g
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the. I1 [' O0 y% A4 l& d
  22. * GNU General Public License for more details.2 k2 b4 s. N8 A; [) u$ m/ r1 Q2 ?
  23. */5 o& s( k2 i$ K! d4 i  v

  24. 2 G: ^, J0 \9 n, r. `' {9 ^9 x* A. H
  25. #include <linux/module.h>
    8 f3 X" ?5 s+ g7 }
  26. #include <linux/init.h>  A1 h( j" T; P/ x) L1 }; P9 Q
  27. #include <linux/errno.h>" z0 X5 T1 @9 @6 ?
  28. #include <linux/types.h>
      a4 C8 D+ u/ n) w7 ]
  29. #include <linux/interrupt.h>0 ~6 V9 S1 q* M% Q7 M# Q$ w
  30. #include <asm/io.h>
    8 W  \  O7 b0 @' u
  31. #include <linux/moduleparam.h>
    0 `1 G0 _4 @' _
  32. #include <linux/sysctl.h>$ g! J# k1 U  n7 {8 {7 u; ^1 P+ N. v
  33. #include <linux/mm.h>$ a. N" K' b: r" A( e
  34. #include <linux/dma-mapping.h>
    & f% a% {1 D( }5 x/ i
  35. $ Q# G. W2 C; h5 T& M
  36. #include <mach/memory.h>
    # H- V6 U# m- F  ]/ k& y, G
  37. #include <mach/hardware.h>
    2 x' w' R+ Q! x4 {" E
  38. #include <mach/irqs.h>
    7 \  J' z5 Q, w. J- v+ I
  39. #include <asm/hardware/edma.h>& B4 O9 ~8 ]3 o, ?7 R

  40. ; Z" \- P. J9 u' ^
  41. #undef EDMA3_DEBUG
    / x, x# _1 J5 W8 O) u
  42. /*#define EDMA3_DEBUG*/, L/ ^1 y# |. U# |) K( u2 p
  43. # ^" O& t; j0 Y5 F% _6 _: W; m( ^' A
  44. #ifdef EDMA3_DEBUG2 D6 P  B6 ~8 r
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)) C+ |- a  S$ @3 ^' z/ P4 ^
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    # [& V$ L3 p/ ]9 ~5 F1 t& h
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    ; R' `$ i& f: F
  48. #else
    / n. n* H& l5 P4 u9 l8 Y, U5 B
  49. #define DMA_PRINTK( x... )
    ! X6 K& V. S# J4 ]8 x4 N
  50. #define DMA_FN_IN2 {; T5 n# w  q8 I
  51. #define DMA_FN_OUT* i' C4 S8 h/ n7 I4 q) v0 n
  52. #endif
    % M) X! L% \, ~1 c5 e

  53. * ~/ f/ K' g; n( L1 M' v' F
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768); }1 B7 |" ^, `2 p; v
  55. #define STATIC_SHIFT                3
    ! Y3 y  e/ g' n$ P4 p  T0 b
  56. #define TCINTEN_SHIFT               20( z# Q( C$ ]- Y$ t( U& {
  57. #define ITCINTEN_SHIFT              21
    6 m9 B3 x" C( v3 p! z( D: h7 M" q7 L4 u: p
  58. #define TCCHEN_SHIFT                22, F% D! a2 k. D) s" I! Y8 Y
  59. #define ITCCHEN_SHIFT               231 Y% ~" f1 I  `* A2 f
  60. $ Y" A+ v0 ], w1 S3 ]' p5 S/ u& \
  61. static volatile int irqraised1 = 0;
    * H- C; V; I$ z8 T) M" C, c% u
  62. static volatile int irqraised2 = 0;
    ( B4 _. u# j( m- y4 K" h5 Y  G/ z
  63. 5 q* Y1 O3 z. ?) ~0 b5 W* Z+ X
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    " U' s( V! ^& M# G2 V
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);, F* ^1 X5 L, b- u
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);, k& _' j9 N3 e- Y6 I
  67. + d/ t) P7 J: `2 y* ~$ v
  68. dma_addr_t dmaphyssrc1 = 0;6 H& S) P( \& T
  69. dma_addr_t dmaphyssrc2 = 0;3 `& Z. e: |' D3 m1 B; I( a, c
  70. dma_addr_t dmaphysdest1 = 0;
    1 N5 O! `  g9 y
  71. dma_addr_t dmaphysdest2 = 0;2 j4 B3 W5 h- P1 ~: c1 i; L
  72. / y$ h0 ~" b3 H1 u# J
  73. char *dmabufsrc1 = NULL;! u! a1 t+ \! L  h
  74. char *dmabufsrc2 = NULL;. D# l3 [+ C/ ?: S
  75. char *dmabufdest1 = NULL;
    : T, B) d% `: J
  76. char *dmabufdest2 = NULL;
    + D7 ~* ~- \+ |. I* Q' x- s
  77. . n: b" s. O2 v  {
  78. static int acnt = 512;" V1 m! `4 k' T$ D
  79. static int bcnt = 8;
    ( Q6 N* n( l2 }; h) V
  80. static int ccnt = 8;+ `3 a/ t8 j- q. u

  81. 2 M8 h$ L3 R  ~5 Z, O
  82. module_param(acnt, int, S_IRUGO);
    0 P, ]! q4 z2 G. V+ l8 h$ i
  83. module_param(bcnt, int, S_IRUGO);( f" B  T: j# `6 B
  84. module_param(ccnt, int, S_IRUGO);
复制代码
$ p. J$ ~5 O% l( U, Q5 i$ _7 @

2 M; B6 [( g) I6 W( x$ u      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
/ G& |  |6 K6 Q/ b% Karm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。% h; W7 }/ q+ U0 X$ F6 |
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
- X" z) M$ ~2 t5 k4 e5 |4 C
1 i. e/ \7 f2 m: q! Z8 C& C4 ], x$ X3 C1 y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-1 09:46 , Processed in 0.038997 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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