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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
: T5 A' F/ L. k6 V! J- @9 \9 G5 `
  1. [code]EDMA sample test application
    : J1 ]3 {9 f, ~3 J( U6 C  l
  2. /*8 z, r7 s4 \- t6 M& o6 ~* @
  3. * edma_test.c
    5 m7 w& C# [) K& ^. a5 W9 r! C
  4. *; O$ h! I$ K6 p/ [
  5. * brief  EDMA3 Test Application
    , ^  s" ^. D# N) w( `! t( H
  6. *% y4 N; s7 f# X# h; G
  7. *   This file contains EDMA3 Test code.
    ( k, X' S9 n; @) {. m0 @
  8. *
      y" M$ I6 w0 ~5 I; A* ?
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE4 d% N- c6 s7 u5 G# S
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT  q% s* u9 N& N/ ^
  11. *         TO CHANGE.
    4 s6 v& L: m! r- M
  12. *+ `* H) I* _8 s% Z! R) \  g
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/9 t) A* O) z: P- Z' ^! a: u, P
  14. *  w- o3 B! u/ v
  15. * This program is free software; you can redistribute it and/or
    $ v; w. E5 e$ _# `$ X' j0 |4 p
  16. * modify it under the terms of the GNU General Public License as( x, T: u" A: Q# ]0 T
  17. * published by the Free Software Foundation version 2.9 M5 Y1 J9 G7 ^8 E
  18. *
    2 F/ {  X7 K- C& Y; r
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any; i( S  t. a9 d' c$ k0 P/ M# m
  20. * kind, whether express or implied; without even the implied warranty% e: A) h! p, d) A- @2 _4 p
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    : S3 E) c* R! r
  22. * GNU General Public License for more details.- q: c$ }' p0 v' q7 k
  23. */
    ! D  w! W. G# z7 f1 v

  24. 3 N( a8 B/ [. z9 v1 U, K0 u1 f, \
  25. #include <linux/module.h>' {- r2 l% d. t( B+ D+ _
  26. #include <linux/init.h>
    ( L( \/ J* M9 |! O0 w1 f
  27. #include <linux/errno.h>: e: c$ @, p8 z' a
  28. #include <linux/types.h>, s- u6 h- q$ H  d# M: }3 U
  29. #include <linux/interrupt.h>
    ( B0 V- j; S! B' ^. R
  30. #include <asm/io.h>
    0 D/ n6 z) }( U- A: X  R
  31. #include <linux/moduleparam.h>
    6 Y, z( z! R- S6 P- v
  32. #include <linux/sysctl.h>
    & y: u5 X4 g+ E% U3 Z& V
  33. #include <linux/mm.h>
    # ?9 G2 u% v* R2 l7 I# V
  34. #include <linux/dma-mapping.h>0 W* ?  Q. z; L% O8 s

  35. 7 @' a+ \3 Y! |! L/ [
  36. #include <mach/memory.h># o" g( E& Y8 ]3 s# J: B
  37. #include <mach/hardware.h>0 C7 ~2 \6 j6 J! K: j
  38. #include <mach/irqs.h>6 v- j: L6 ?+ j: s% A* q# T; t9 E
  39. #include <asm/hardware/edma.h>
    ) u% h  u8 b! V* O( ~8 N9 C

  40. 2 x. F& r, {4 x
  41. #undef EDMA3_DEBUG) b2 D+ E& j' E* F
  42. /*#define EDMA3_DEBUG*/
    , d1 m  l$ h5 X3 [- J4 K0 t2 {8 T. r

  43. 0 G# Q* E' O2 V) z1 n
  44. #ifdef EDMA3_DEBUG: [2 T8 f% A% o7 @) x$ y9 w! n& ]) \
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS). ^$ }& x" m$ d( b8 a
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    9 M) e4 e* V4 P
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    5 y# X( z% k  S; D+ j1 \
  48. #else
    4 l" \$ |9 p) n* w
  49. #define DMA_PRINTK( x... )- ?( S& E: q: P% y. W# q
  50. #define DMA_FN_IN
    ) H! v1 w& b( j( N/ ?4 w
  51. #define DMA_FN_OUT5 ]+ N6 ]/ V  ~; ~" ^
  52. #endif3 V2 x5 P8 o2 ?; u

  53. % J3 N0 U7 H( R$ j9 u: Y- D  S4 U
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    , ?+ a# O. O5 t
  55. #define STATIC_SHIFT                3, ?. X  m, F' h" j0 a
  56. #define TCINTEN_SHIFT               20; x0 s0 ^% w. ~- |. d& b3 Q  n
  57. #define ITCINTEN_SHIFT              21
    1 P/ P0 W4 M! A
  58. #define TCCHEN_SHIFT                22
    & f. d0 p. g7 f$ Y8 e
  59. #define ITCCHEN_SHIFT               23
    " [+ v! M3 S# a8 q; Y9 ^

  60. : L8 x& e! ]8 t+ s
  61. static volatile int irqraised1 = 0;
    - v* c1 b& }; }1 k
  62. static volatile int irqraised2 = 0;+ b  d) d9 h$ `! z2 V0 O
  63. 2 d* v; K+ M$ C: m
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    & F% `0 ?6 D# |9 `+ m/ Z
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    . u; h* E' d4 A8 |1 O* N
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    8 ?! O$ d7 _# y
  67. 5 M" {: s; z6 X$ o/ W
  68. dma_addr_t dmaphyssrc1 = 0;7 G& T" }/ J$ @6 i9 F5 Y
  69. dma_addr_t dmaphyssrc2 = 0;
    + ?4 x9 V5 p2 Z: [8 y
  70. dma_addr_t dmaphysdest1 = 0;2 n1 W* p& I! Z# v/ C
  71. dma_addr_t dmaphysdest2 = 0;; y  ^5 D' `% g6 z" o

  72. : w: h0 @3 {: I/ c$ f3 Z
  73. char *dmabufsrc1 = NULL;
    1 E+ O# y1 |) d
  74. char *dmabufsrc2 = NULL;- ?! I9 l  j, H4 T1 G  d
  75. char *dmabufdest1 = NULL;- t. M% Q/ y  k- T; y" m0 P
  76. char *dmabufdest2 = NULL;7 m. ?1 f( C/ X% q

  77. 6 G, v) h" n' L" E3 u
  78. static int acnt = 512;
    : s- r# `6 F+ Q! r3 a
  79. static int bcnt = 8;
    4 P8 ~( N3 w/ M# F3 S8 v. h0 w0 r
  80. static int ccnt = 8;, f; m5 K( ]& ~* @' i/ T

  81. . |; L8 Z$ K  S% f0 G0 \; K
  82. module_param(acnt, int, S_IRUGO);( [- v2 w; m3 G$ \
  83. module_param(bcnt, int, S_IRUGO);
    0 O/ U0 K/ \: s$ B
  84. module_param(ccnt, int, S_IRUGO);
复制代码
7 K. \$ R* k3 M

$ s4 \3 Y1 y5 _! K      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用/ G$ P# T8 K, U
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
% ^4 v. R/ z! l) I     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。+ `+ {! b! O$ [/ I2 _  I: D* o
- @5 Z1 g4 D5 c+ A& Y

$ K; f+ r  V1 q( z  F2 t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

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

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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