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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 7 S- _2 g7 }* e
  1. [code]EDMA sample test application3 D2 r+ o2 ?0 ?% V
  2. /*. a7 Q2 _4 L" L* k$ _1 Y( [
  3. * edma_test.c
    3 a3 i" Z3 q/ i, k) g
  4. *+ Y* X  N5 Z. @9 L+ U
  5. * brief  EDMA3 Test Application! s  p9 E9 |; g4 c
  6. *
    % w' d7 ~, x' `& _& q
  7. *   This file contains EDMA3 Test code.$ h; H0 h7 r3 t* Z  A' z* ^) `7 \# f
  8. *& C9 L* I, u5 m5 b7 m
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    + J- c7 v* ?5 U) O9 `1 v1 K
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    5 i$ l& b1 Q7 v$ w  W8 s
  11. *         TO CHANGE.8 f! Q) `9 Z1 R' l- P2 M4 L' l
  12. *  G# }" P, q5 z+ o- k
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/! K( A0 E$ @. T" R' H1 Q  s/ S
  14. *0 K/ G" `6 b1 c* e: ^! H
  15. * This program is free software; you can redistribute it and/or6 i6 P, y0 M- K' X' F; A
  16. * modify it under the terms of the GNU General Public License as
    9 S. `/ p* `- M: X+ W3 o
  17. * published by the Free Software Foundation version 2.
    6 P- M6 l8 K' e, d" q$ z- R( S% N
  18. *
    + C, k; d- E* X  f; S
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    7 r4 f  ~7 Q9 d/ N3 H/ z
  20. * kind, whether express or implied; without even the implied warranty- ]. w( o1 H' M* n* s" x
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    . v3 B" z' \; }4 I* v+ |
  22. * GNU General Public License for more details.
    2 n. r% Q( U1 ^' Y5 c, Y! I* U
  23. */( z2 b! J: {0 K% h0 c
  24. * X5 V" P2 K5 A# Y0 ~
  25. #include <linux/module.h>! z3 E" A; G: C- x) u
  26. #include <linux/init.h>
    ' k8 g. @1 p- n1 N  R2 t& O
  27. #include <linux/errno.h>
    , s; j: r+ p% Z; x2 [' j
  28. #include <linux/types.h>2 e, h& _/ U3 q0 T3 L% \
  29. #include <linux/interrupt.h>
    + Z- {$ P, e5 q' I% ?9 n
  30. #include <asm/io.h>
    9 b7 f& _# V% z- F* p; c
  31. #include <linux/moduleparam.h>0 a9 ~1 K, L" L
  32. #include <linux/sysctl.h>
    / a9 I, c* j  ^# \. G
  33. #include <linux/mm.h>8 Z& N3 ]; }0 |6 c
  34. #include <linux/dma-mapping.h>
      J; t& v( w6 m- Q
  35. " C7 x" S3 [; R; D8 |4 ~( j
  36. #include <mach/memory.h>
    ' ^. J$ ^2 H$ H
  37. #include <mach/hardware.h>8 a; J$ H+ l- z9 a* T5 ^
  38. #include <mach/irqs.h>
    , p0 d1 o  n3 \# g$ j
  39. #include <asm/hardware/edma.h>. W* D$ V, p% _

  40. 5 X* i8 P+ Y4 M: i+ `0 @) Y  K
  41. #undef EDMA3_DEBUG/ ^: w3 j9 o( u
  42. /*#define EDMA3_DEBUG*/1 T1 O; I0 o/ u: P

  43. , S$ v% F: ?1 s3 D* |
  44. #ifdef EDMA3_DEBUG
    * E- }& X8 O* O0 q, c( z' B3 O" b
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    0 W3 k; j9 K6 @' H5 T& r$ ?3 B
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__); y) l1 h( j4 Q& J0 s- r
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)) A/ f2 v. I0 D9 P# @% D. _: v) W2 W6 y
  48. #else
    # [3 R! J) f) E
  49. #define DMA_PRINTK( x... )3 ]( C$ ~+ g9 o" J, |
  50. #define DMA_FN_IN
    : n- c- J- b5 u' A# o2 Y# x
  51. #define DMA_FN_OUT
    ( `* W: w4 `9 q3 w# d
  52. #endif' `) c# T+ Z; c" i# ?
  53. ' u+ G, k" W- R7 g$ ^
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    & \% E" |$ ^9 y$ W
  55. #define STATIC_SHIFT                3/ A3 G" ?$ M6 W: i
  56. #define TCINTEN_SHIFT               20
    $ x1 p6 a% [3 q5 s0 u
  57. #define ITCINTEN_SHIFT              211 v4 w1 J0 c  W* q7 Z- ?  `
  58. #define TCCHEN_SHIFT                22
    ; _* K- f) Z8 F# P1 Q9 |
  59. #define ITCCHEN_SHIFT               23- c! I- E, G2 c8 K1 e

  60. ' ]* [. m5 f: e3 E  W
  61. static volatile int irqraised1 = 0;
    3 E* z# U3 l! S2 e& ~  B# `
  62. static volatile int irqraised2 = 0;1 X& {/ r* ^- N; m1 p  `- {! @2 @

  63. % N2 V* e. x* C. Z8 r
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);% N% N( S2 N/ Q7 k1 P6 f  [
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
      h3 K6 Q/ U6 o; P, T( M
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);( d/ S3 d" ]1 d; ^( _& b! o

  67. ' _9 X' u/ M5 D/ k( Z9 q& V" ?$ ^
  68. dma_addr_t dmaphyssrc1 = 0;4 n; m! a0 U$ v; M6 \7 c# J
  69. dma_addr_t dmaphyssrc2 = 0;( v" t  r/ c3 [* H3 M
  70. dma_addr_t dmaphysdest1 = 0;% \0 |0 o# `  T" N& H
  71. dma_addr_t dmaphysdest2 = 0;
      k$ n2 E4 `9 r, l0 g

  72.   Y+ k# b' b, }
  73. char *dmabufsrc1 = NULL;
    * N' B+ l* k- e" n; \5 s" ^9 A
  74. char *dmabufsrc2 = NULL;
    / `8 h, _2 X2 N  v6 n9 ~
  75. char *dmabufdest1 = NULL;
    5 @% b3 S- O" X( a% l3 X
  76. char *dmabufdest2 = NULL;: a; m3 `7 r9 w3 j* ^0 u. c9 R4 }
  77. 3 J3 A1 p- `0 I1 R( B9 I" G& |2 f
  78. static int acnt = 512;' s/ y2 T  L* [* `) K3 F
  79. static int bcnt = 8;
    1 B! m5 Y" d0 @
  80. static int ccnt = 8;
    # f+ I( W2 O1 A( _9 l- D
  81. 8 w$ l/ ]7 i. |+ u+ {$ x0 x; {1 x
  82. module_param(acnt, int, S_IRUGO);
    1 c7 n0 a0 m( L* _) a# I, n4 H: e4 \
  83. module_param(bcnt, int, S_IRUGO);
    6 O) O9 P6 e- Q' d! b
  84. module_param(ccnt, int, S_IRUGO);
复制代码

$ @5 j1 b  U, |! |8 k& X
6 q: v" C0 q) h1 _, n      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用4 V: Y6 |  [9 E# @7 t
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。! g/ r* V1 \* @
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
8 Y# e7 @: j0 I4 b, d8 f
4 D, y% u  r7 o
+ u( \& T- `( m+ H7 D" a+ m( l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-13 19:45 , Processed in 0.040138 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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