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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
/ t& f6 y6 p0 k$ r/ }+ u: W
  1. [code]EDMA sample test application! r$ g- r7 B- R5 k6 g# R# q
  2. /*
    # s5 _/ {0 A7 f6 \
  3. * edma_test.c" Q. F  x/ v' y( [: ^
  4. *
    / {; M$ j5 C$ i/ ~
  5. * brief  EDMA3 Test Application
    1 L, q% O2 V* U; y$ P* X
  6. *
    ) L. K0 @7 h: j# a% V, I3 [. H
  7. *   This file contains EDMA3 Test code.2 o7 P2 C4 G( K" b9 N
  8. *
    6 W0 u" }, K7 a+ }* T# {5 d
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    ! i! f" E) p- d* m
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    9 b- O" a+ ?8 T+ M$ f. J
  11. *         TO CHANGE.
    0 Q$ P% ]3 F' p; P, `* t" i$ ?9 ^6 A
  12. *: x- T! X8 n% F' G8 u6 M
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/) X) |" S2 j; P2 _4 W% d' p2 d% Z
  14. *& Y, C; }7 k. D! p! y8 a
  15. * This program is free software; you can redistribute it and/or/ Q& L$ A. ?1 u
  16. * modify it under the terms of the GNU General Public License as
    * r& c& R( x; c3 \
  17. * published by the Free Software Foundation version 2.& O; E& f) O# _, l2 T" z& z' J
  18. *# X6 Q. D+ R8 v% f1 k8 @# s$ Z
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    $ G: c8 [* j- d+ `- a' |
  20. * kind, whether express or implied; without even the implied warranty/ o! s: l8 {+ I% V' p, a6 o  d
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    3 L3 h! R- ?0 d4 F$ z( o
  22. * GNU General Public License for more details." j( O9 q$ l0 _+ w9 ]0 r( j& H7 ]
  23. */8 A8 u2 Y! z8 ~9 M3 {& d- c
  24. ; ?+ C4 x- C' ]( O; D. h/ V7 c, c8 p
  25. #include <linux/module.h>: O# B: C6 @" k: h) }/ [+ W
  26. #include <linux/init.h>
    ! L* }+ Z+ R. k7 ?
  27. #include <linux/errno.h>" Q# W8 q8 W9 `, y
  28. #include <linux/types.h>2 b$ A  y! T7 U1 h' P
  29. #include <linux/interrupt.h>/ \' q) v- e6 U% Q/ Y8 x* }% ~
  30. #include <asm/io.h>* ]4 a* O7 h6 t6 R7 v
  31. #include <linux/moduleparam.h>% P) f+ u* R; F& m( P3 i2 y
  32. #include <linux/sysctl.h># [0 U; Y. u' R
  33. #include <linux/mm.h>( r% {; X8 o8 x4 k
  34. #include <linux/dma-mapping.h>7 q4 D5 m# _- k, T
  35. " ~2 F3 R: X/ ^* W0 d9 z
  36. #include <mach/memory.h>6 I$ p( u; e4 P7 w4 j# U; r! s" x
  37. #include <mach/hardware.h>" }# [  y  T$ C5 U9 s
  38. #include <mach/irqs.h>
    ( ]2 g, M( l% f; @
  39. #include <asm/hardware/edma.h>% r: h" I. g2 K$ _2 Y4 i8 x
  40. # t4 T, M- s7 R4 e! j; b- E! i
  41. #undef EDMA3_DEBUG, `6 {- t2 s6 W2 X
  42. /*#define EDMA3_DEBUG*/
    ! E+ Z9 B  F  _+ w
  43. 2 a+ ?1 O: b% ]8 e
  44. #ifdef EDMA3_DEBUG3 V1 n. z" r( w/ t6 e
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)) S. j" Y2 G+ E( M3 o
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    , ?5 a5 ?# E) ]# r% B( i
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    1 l4 m& n1 \7 H5 d6 z
  48. #else, p. ~( G4 v# C+ N
  49. #define DMA_PRINTK( x... )6 Q+ k  h, @# m. c2 j9 D1 m- O, o
  50. #define DMA_FN_IN
      |# l  a0 O# f- {+ G+ U1 e; b
  51. #define DMA_FN_OUT
    - s: ]! ^8 ]0 a; v* G) e
  52. #endif" T7 {& O8 Y4 e6 m
  53. ; q) t" ~) [$ h2 z3 l% M' H& y( s( }
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    ' d2 k2 k# s6 {" G  k4 s1 K
  55. #define STATIC_SHIFT                3
    , ^) u6 m  `! E2 X0 m" x1 H
  56. #define TCINTEN_SHIFT               20, w9 {9 P, l+ v. m* U
  57. #define ITCINTEN_SHIFT              21
    $ y3 ^- l7 Q3 I# H% n; v9 F
  58. #define TCCHEN_SHIFT                22
    6 h( B0 u; E9 _5 n5 k+ ?. L$ |
  59. #define ITCCHEN_SHIFT               23
    # e2 X1 s% W8 @" Z7 p, ~, K

  60. . |1 F/ E5 [- _! r7 H
  61. static volatile int irqraised1 = 0;( m! v4 D5 t, \" g4 X/ k1 C7 p
  62. static volatile int irqraised2 = 0;
    , a; d5 W% N* ?9 ^% k

  63. + P( k# ?- _6 c: R3 c& J
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);/ g+ O* B  l) `+ u
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);9 Z6 ^" C0 e, b) \4 d+ m0 e) J
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);  Q0 Y  |% K# d# b
  67. / z# [% v' d+ w
  68. dma_addr_t dmaphyssrc1 = 0;* d, O* u' g8 P% u$ I
  69. dma_addr_t dmaphyssrc2 = 0;
    : H0 e6 l! \) z) I& O
  70. dma_addr_t dmaphysdest1 = 0;& ]  }+ N5 u0 U: N1 W3 P2 Q
  71. dma_addr_t dmaphysdest2 = 0;
    & W0 Z6 V8 l8 k1 L. b3 O1 C  L
  72. ( K0 L1 s6 V5 B- S4 v% z' y
  73. char *dmabufsrc1 = NULL;/ s& u( W: K& ], [+ `/ \
  74. char *dmabufsrc2 = NULL;' Q9 B8 k3 X0 Q2 j9 \3 y9 Q
  75. char *dmabufdest1 = NULL;
    2 d7 t( u; X! k# @
  76. char *dmabufdest2 = NULL;
    8 R  r: B1 l! J2 S) t3 \

  77. 1 e# m) J( K9 H1 C, q/ l
  78. static int acnt = 512;' g) [) l- ]3 u! X$ N: y  p
  79. static int bcnt = 8;9 R; {: f+ g9 L2 U9 a3 H8 w
  80. static int ccnt = 8;6 f' k" h% |$ u5 A% a# n

  81. 1 _; C0 {: C' e7 |1 X; C) w
  82. module_param(acnt, int, S_IRUGO);
    8 x1 R7 z4 K7 w4 `0 I" U" u
  83. module_param(bcnt, int, S_IRUGO);* x1 a) B) ]' ~# x; R
  84. module_param(ccnt, int, S_IRUGO);
复制代码

% c2 ]/ u$ D9 F, e! ^
9 x" j7 i3 C6 f( z" S3 B      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用& B5 x( c$ v4 N3 A+ m8 _
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。" k: R/ O# d1 w& }: o4 f4 a
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。9 N. P9 L9 R! B) a8 w/ @/ `4 ?

6 \( O/ k$ f, H- A5 W9 I8 V3 [" r
3 O5 H7 v: w9 R; V( J8 [$ x0 I
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-24 03:43 , Processed in 0.054038 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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