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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 , \8 Y9 t* m% o
  1. [code]EDMA sample test application3 i+ E& y' _! b3 [
  2. /*
    1 v* K3 `4 v% d; a- U) h, R7 }
  3. * edma_test.c. W$ f* A  v) ~# f# ~+ t: J& u
  4. *
      ~( |1 A  ^( @
  5. * brief  EDMA3 Test Application% u* w. r1 B0 q. V
  6. *+ V- q' a! W6 ~6 u
  7. *   This file contains EDMA3 Test code.
    2 Y9 [. a4 P; a5 ?" R
  8. *& j. j5 m" a2 a9 m% e
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE# `4 o( {1 s: O
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    : R1 e- V! g4 p4 d2 P! ^
  11. *         TO CHANGE.
    7 w( n" S4 H+ |/ B$ R0 s
  12. *
      L- f( C/ D+ K2 K  K! p2 S
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    3 d- H+ H, |+ f0 p$ [4 e7 W4 C) z
  14. *
      U% e- ?5 \: [$ Q# F
  15. * This program is free software; you can redistribute it and/or2 {2 q- m" v+ C+ M' T) p7 `
  16. * modify it under the terms of the GNU General Public License as: z& M  x2 T: t# T: j
  17. * published by the Free Software Foundation version 2.
    2 z$ K- e7 j5 L% W) B
  18. *2 o' _6 e+ l1 G2 q
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any0 Z/ x9 ]9 F9 E4 R6 ?+ @5 U
  20. * kind, whether express or implied; without even the implied warranty- C9 q% I# z/ V! U5 A- n+ m
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    2 I( g, v, K3 e8 y% }
  22. * GNU General Public License for more details.! \9 ?$ \( r0 h; q" ?$ p
  23. */
    7 h3 J; X' f: H1 Z

  24. # x, }: B$ w/ o' D1 I& a! M1 q" O8 ?# x. Y
  25. #include <linux/module.h>( ?% ~+ d4 b: f$ c4 j) }7 @, D
  26. #include <linux/init.h>
    * @+ N, c) B, @1 h
  27. #include <linux/errno.h>0 H' a$ e. m7 `2 d0 }4 V
  28. #include <linux/types.h>
    ( g, {! C# L6 J8 I) o' O
  29. #include <linux/interrupt.h>% d5 H5 q, {" s& b4 w
  30. #include <asm/io.h>6 P9 @, x" R& ~" x0 [6 l0 K' Q
  31. #include <linux/moduleparam.h>
    + f2 C2 D! a) ]  g
  32. #include <linux/sysctl.h>9 t- d. V2 r5 T, s" X
  33. #include <linux/mm.h>
    - z/ w# |/ o3 g* G) ^0 r$ R
  34. #include <linux/dma-mapping.h>
    0 z; Q% S3 O; M9 O

  35. 8 @/ \8 z8 S9 A' r8 H: F
  36. #include <mach/memory.h>, U: F/ k0 A# z/ n
  37. #include <mach/hardware.h>+ X5 A( _( h, `. O  Y. E
  38. #include <mach/irqs.h>6 G$ {8 }$ r/ T. g6 U7 y" c# b/ D
  39. #include <asm/hardware/edma.h>
    % A$ T; {' w2 w. v9 f! N  k! U

  40. 0 m  l, W' @$ f  Y& O/ H
  41. #undef EDMA3_DEBUG7 C1 l9 }+ g- R% {: ^/ N0 m1 M7 O
  42. /*#define EDMA3_DEBUG*/2 Y7 u  b$ R$ q% t$ I: q' P- l
  43. 6 K# L4 `, |8 q; B7 Q
  44. #ifdef EDMA3_DEBUG3 k) ?& m  x4 i& D8 N3 N1 @
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)7 n  r. L7 C; Z4 @
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__), b( A  V$ J: i  R* Z+ _( C
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)  `5 E& Y- R: S5 l$ R5 `# k2 _1 Q
  48. #else8 Y0 [3 M0 y9 a# w& v4 O5 d" P/ u
  49. #define DMA_PRINTK( x... )8 I4 h; {; s$ Q$ i; T/ O
  50. #define DMA_FN_IN8 e. Y  O9 K) O+ ~0 e
  51. #define DMA_FN_OUT6 e8 x/ z; z# g& ^. x
  52. #endif2 S  B3 Y- x$ b  v: u& S6 Q% W
  53. ' R( A1 y1 {! _6 I/ y5 s
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    ( P% B6 V: W1 U7 W9 o2 v
  55. #define STATIC_SHIFT                3# c6 e8 e5 N; E' X- F$ Y% l
  56. #define TCINTEN_SHIFT               20
    + b8 d# D7 k4 ~- V* L$ W9 o
  57. #define ITCINTEN_SHIFT              21, \. m! V/ |* O$ n/ i( l1 h
  58. #define TCCHEN_SHIFT                223 ^0 `. f/ d3 V& ?7 o
  59. #define ITCCHEN_SHIFT               23
    * E" h, c) ?7 S- P/ R( z

  60. ! r" {) ^4 z+ X) h
  61. static volatile int irqraised1 = 0;
    ! r* f1 L' E7 U/ k' [
  62. static volatile int irqraised2 = 0;
    % y% s+ |4 L6 Y& o+ `

  63. ; K% t2 R& o& B) p
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);$ c# t; X+ m! c( I
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ' ^0 `' ]6 q  i8 g( Y' h0 m9 F
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    . a8 G  H  }# t" p

  67. 3 W; k" v% T5 I3 _  y
  68. dma_addr_t dmaphyssrc1 = 0;0 z0 |( `' ~1 e9 v2 G0 m
  69. dma_addr_t dmaphyssrc2 = 0;3 p) l2 z9 K" n1 H
  70. dma_addr_t dmaphysdest1 = 0;
    / b: {2 f( H* j+ ]8 k
  71. dma_addr_t dmaphysdest2 = 0;
    ( w- ^; Z& j* I0 F

  72. ' C1 Y1 m" b& X3 w
  73. char *dmabufsrc1 = NULL;1 W- S" s9 K0 a& n6 i7 d
  74. char *dmabufsrc2 = NULL;
    # b( t; a4 `% |# J) `' |8 c, u
  75. char *dmabufdest1 = NULL;3 @! @. m3 N' C, K+ T
  76. char *dmabufdest2 = NULL;
    7 [+ y5 |6 `3 R& T; S' W
  77. * |/ X) E" c! V! Z: y4 `
  78. static int acnt = 512;: z& T# d+ C3 q# L" A
  79. static int bcnt = 8;
    2 B1 `, H+ G" O
  80. static int ccnt = 8;" T$ _9 l% u' K# C& M( O+ Y7 x: S6 A
  81. 1 K9 p8 k( x( P( q
  82. module_param(acnt, int, S_IRUGO);/ x! `) {& e" e: |1 _6 O
  83. module_param(bcnt, int, S_IRUGO);& L1 T/ N4 N+ u1 i' [6 p% `
  84. module_param(ccnt, int, S_IRUGO);
复制代码

3 h/ [( W/ }9 v- x
& ]5 `( Q$ K$ q# ~# ~      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用3 ~1 I7 _7 ~# u2 o( s. j
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
) z6 @( l# z8 I' G     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
5 N  z0 a" B9 e9 f; I" f9 `- r  Z# Z! ~3 P8 Y+ J
4 g- h. T, X6 e3 R: \  X5 \$ g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-11 10:13 , Processed in 0.041266 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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