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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
+ [+ f# ~& D$ l5 N2 i  ~
  1. [code]EDMA sample test application- k" X1 e- x2 |' G* I; ?
  2. /*' l: F% A. O, p+ _  {1 m* K
  3. * edma_test.c" D& i" x: D  `$ d
  4. *; q" u% ?6 f3 I7 ?8 E. R
  5. * brief  EDMA3 Test Application
      u/ h. c1 M% W  q! }) K9 e
  6. *
    2 s( i  S- e8 K# f0 e9 N
  7. *   This file contains EDMA3 Test code.! k! I% p2 u9 v4 F, x7 |, l
  8. *6 U/ [: }/ y& W, a9 j  T1 }1 {2 M$ a
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    , A7 ~; X& i+ Q  N
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    % X# K6 U8 b) q
  11. *         TO CHANGE.* O2 C- P* k1 N+ k+ Y7 h
  12. *' i, {, F' R' f: q3 c" Y
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    ' _2 o1 A- w0 u1 E5 O
  14. *
    & r5 N) G! Z" {# G4 E
  15. * This program is free software; you can redistribute it and/or" U2 O0 |' M% O8 q  y7 h
  16. * modify it under the terms of the GNU General Public License as
    . U) x, \0 C& u  S2 v1 ]
  17. * published by the Free Software Foundation version 2.
    8 f2 O8 i% X1 r" C7 x0 g1 z4 g1 _4 A
  18. *
    & A, ]. [9 @  D4 [% a& N
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    . |0 ?' s& ?3 t: L
  20. * kind, whether express or implied; without even the implied warranty
    3 o' x, ?1 L& N: D% e6 ?: L) W
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    ! Q& m: ?) O4 Y% _2 d8 t1 [
  22. * GNU General Public License for more details.% T4 T$ y7 v8 N& G3 L$ ?$ c8 ~) i4 A
  23. */
    3 @  u, C; t/ d
  24. & }2 K- v6 s! Y  A6 j
  25. #include <linux/module.h>
    8 _2 d' c, B, V' s( n2 B
  26. #include <linux/init.h>  {5 k* v1 n3 V( o5 |
  27. #include <linux/errno.h>
    4 ^+ o# m, f  s+ f0 A1 Q1 f
  28. #include <linux/types.h>
    2 A1 f# J- z; @/ y; g, }
  29. #include <linux/interrupt.h>, ?$ J! L6 |+ M1 F
  30. #include <asm/io.h>) S( X) U% \. g1 G( r! u
  31. #include <linux/moduleparam.h>
    ; J/ r1 G( o4 S* `7 Y8 b1 a7 D
  32. #include <linux/sysctl.h>! S, ]4 ?& s. S8 ]
  33. #include <linux/mm.h>
    ) j  `% K* s2 Z+ D; @8 _' }
  34. #include <linux/dma-mapping.h>
    , Z) H9 G9 b# [
  35. + z- R* ^1 N" z3 Q
  36. #include <mach/memory.h>' @5 J3 E; m. ]9 M" ^$ B- L
  37. #include <mach/hardware.h>
    9 A* O" R3 X% E1 p- a
  38. #include <mach/irqs.h>
    # ]; Y. T& m; ]
  39. #include <asm/hardware/edma.h>* I6 Z1 Z- e' S8 a, v) v  V0 x, }5 j

  40. 4 ]% @% [4 a8 J/ ~  i0 x( d" e# @
  41. #undef EDMA3_DEBUG
    0 g# ~; U( i2 }& O
  42. /*#define EDMA3_DEBUG*/4 S2 [+ ?% \$ \* ~

  43. + b: u! ~+ L" p" T  P( C+ b
  44. #ifdef EDMA3_DEBUG/ u5 Y% N  D9 C; r" _
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)6 C! ], _' Y/ m- d
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    . ]3 O. P: U3 I8 o% `; I4 c0 _
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)' S9 y- ?+ J# u
  48. #else8 q2 h9 P- G  R
  49. #define DMA_PRINTK( x... )# M3 |# ~# R6 ]2 e  K( }4 p* l  f% ^
  50. #define DMA_FN_IN/ ^+ U$ h8 [6 F
  51. #define DMA_FN_OUT
    5 g3 C* \$ Q3 F0 e4 t3 _+ I
  52. #endif
    , @( z0 ?7 L# V, y/ P0 \. ~

  53. . X: @# J! q6 d7 Q& a; J7 Y$ [! [
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768): I: x5 _. ]8 \7 C; e# H- Q
  55. #define STATIC_SHIFT                3
    ; A/ s) C* d1 V  R
  56. #define TCINTEN_SHIFT               20( Q  A1 U6 n7 K, o. ~! ^7 ?
  57. #define ITCINTEN_SHIFT              21& L$ t! P# i6 R, L9 R
  58. #define TCCHEN_SHIFT                22
    5 R0 z# M. V- Q1 P& R8 `( B" I
  59. #define ITCCHEN_SHIFT               23
    - ^  z( A- y+ `. T6 r0 H/ s

  60. ; Q3 n! k; J' q8 O) v/ s
  61. static volatile int irqraised1 = 0;
    & H5 `6 O4 y1 V6 J1 v9 A
  62. static volatile int irqraised2 = 0;( E8 y2 Z; k, A; T

  63. , H& y9 {9 V7 Z  f2 v: C7 }
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    * G- ~& ~' W7 t
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);; v' O4 ?, k* V$ c) ?* n
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    8 F2 N, d( X8 k; P/ R4 z$ N9 G; C. ?

  67. % w8 F6 w5 I& b1 u) ]/ x
  68. dma_addr_t dmaphyssrc1 = 0;
    - m% K+ O' L# S" J# Z
  69. dma_addr_t dmaphyssrc2 = 0;
    / C+ x4 O6 g$ Q
  70. dma_addr_t dmaphysdest1 = 0;
      T  M1 ?' Q) G7 N; H
  71. dma_addr_t dmaphysdest2 = 0;  U3 M2 i8 ]9 g8 [6 p
  72. " D4 u8 h- {) H* j1 z( H& u3 Q
  73. char *dmabufsrc1 = NULL;; O" T* l* i/ g; u% @" h
  74. char *dmabufsrc2 = NULL;1 p, U3 ~8 i* f) u; h
  75. char *dmabufdest1 = NULL;* g' F+ @8 o% U8 n. b$ t# c
  76. char *dmabufdest2 = NULL;
    " o* A1 I  M4 U- a. ]/ U

  77. . C+ G/ B5 |; D6 z, C
  78. static int acnt = 512;
    - o3 |' y7 V: K+ f3 O
  79. static int bcnt = 8;  }: }& i: Y- ]1 m* C+ L7 a
  80. static int ccnt = 8;
    2 L3 @8 h4 O, n, _2 N$ D3 a7 e

  81. $ P% Z8 m9 S& E6 C: D8 S; W/ }
  82. module_param(acnt, int, S_IRUGO);
    / r# v& s; e+ T
  83. module_param(bcnt, int, S_IRUGO);
    9 Z5 s5 ]7 k$ U+ }# f; W
  84. module_param(ccnt, int, S_IRUGO);
复制代码
6 ]& W( U7 D+ g- l

. W  [8 p8 v9 Y0 C6 C$ R      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
5 f$ u4 i" U4 }8 Garm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。0 V+ o5 L) N8 F4 I
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
/ s  W. x  G. b2 v! {8 p, h* _  H  k3 g
1 |0 g  {- H' U6 u3 x6 j+ f' B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-21 16:15 , Processed in 0.038933 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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