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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
5 H7 }  F9 Z) {" j1 e
  1. [code]EDMA sample test application
    / Z( S' s' ]; X, c& N2 N) y: y
  2. /*: V, v6 w* {9 x5 I
  3. * edma_test.c
    # w) S2 z5 {3 R6 d  P4 l. L2 X; w
  4. *
    8 z1 V1 |; X2 o. [5 O5 A
  5. * brief  EDMA3 Test Application2 K$ {- S; d( |4 p/ @
  6. *
    ( i9 m' e* ]  |4 E5 }) B& t/ m
  7. *   This file contains EDMA3 Test code.: j: E/ M% F7 L' y' k. I) z
  8. *
    * P) V% ~: m9 d8 ~: `! b
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE5 t  x8 `7 {& @& q7 d4 h- ?
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT) U' u! N1 q( N$ b; z1 q+ J
  11. *         TO CHANGE.
    ' Z4 d/ P* v5 ^9 V5 P  b
  12. *% R7 h0 d$ ~6 K# \% W6 t
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    " k9 ^' r6 Z# T/ @
  14. *
    * I9 ^5 l& w$ z  u1 t) |( G& }# N
  15. * This program is free software; you can redistribute it and/or, Z& X6 X& d( ?9 I. [
  16. * modify it under the terms of the GNU General Public License as5 L6 g0 s6 I7 @
  17. * published by the Free Software Foundation version 2.1 J1 |6 F: O/ @9 {
  18. *% ^6 l/ S0 x3 K6 H/ \8 D
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any% d) W" }- O1 C
  20. * kind, whether express or implied; without even the implied warranty2 [) E. [0 |0 C( M
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    / {/ @1 ^$ w7 O3 P7 I
  22. * GNU General Public License for more details.
    , |, R' ^3 }8 [8 `
  23. */
    " X4 y% Q9 L& S* R8 O, T

  24. 7 ]2 y; o0 Z3 P' m+ J* _: G0 B) z
  25. #include <linux/module.h>
    9 f  ?- y! ~/ Y* C2 Q  Q9 P7 L
  26. #include <linux/init.h>
    * L. ?1 ^% {8 d( S
  27. #include <linux/errno.h>4 K* V3 O* \4 i# k( |
  28. #include <linux/types.h>
    $ T% c: w" G9 I: {
  29. #include <linux/interrupt.h>% l. g3 v: m5 p7 C* {2 F6 B3 d+ S
  30. #include <asm/io.h>
    ; L! H0 M* i9 H0 \7 K) U: P) J2 j
  31. #include <linux/moduleparam.h>
    - B( }# U1 \, A3 x9 f' X4 l
  32. #include <linux/sysctl.h>
    $ q& D/ o; }5 Q/ ]
  33. #include <linux/mm.h>/ l7 L3 a1 ^% `. Z$ P
  34. #include <linux/dma-mapping.h>" `) A0 j- u. s! ?6 `/ \$ t
  35. % g8 l  {) E. q& ~
  36. #include <mach/memory.h>
      |0 f( q9 }2 G$ G, {
  37. #include <mach/hardware.h>8 r* K. j, S7 g' Q% K) A) }
  38. #include <mach/irqs.h>
    0 B- ~/ r! n7 _$ F3 a0 F5 e
  39. #include <asm/hardware/edma.h>
    1 |+ A& R& K( j3 z/ ]; v
  40. * k" N# u6 c2 y# N2 o+ C
  41. #undef EDMA3_DEBUG, h& f/ {' G( L
  42. /*#define EDMA3_DEBUG*/+ p) {: \5 Q2 c3 s5 p5 }9 k
  43. + f' C: ?* Z8 t6 J4 \2 |
  44. #ifdef EDMA3_DEBUG
    2 N% f+ O: f4 H  {, O) d
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    ; m& f: P+ X5 b! p. W) e
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)8 q8 u8 V5 D0 d  }4 f
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    . f2 o) l: X. P& \: c/ o
  48. #else- l, C9 Q- F5 v2 B1 ^
  49. #define DMA_PRINTK( x... )% [# `! q, i  w) \9 t5 ~. y
  50. #define DMA_FN_IN
    $ v5 J3 d, i" Q$ t3 {* ^' E
  51. #define DMA_FN_OUT! O* y7 v/ g2 K2 y. Q
  52. #endif, {+ U  J) P9 Z$ a4 k( ^

  53. 0 Z5 F' F9 E4 E* T4 f3 R, U/ @
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)' F8 H+ _2 k+ z) H- K+ ~& m
  55. #define STATIC_SHIFT                33 U6 u* o! \' m8 j0 H5 `. I) @! j- w
  56. #define TCINTEN_SHIFT               20( R. o. U( M8 }) S1 B0 t
  57. #define ITCINTEN_SHIFT              213 A' t* c; H( {" g
  58. #define TCCHEN_SHIFT                22
    $ V, B. {+ R# `0 ]: C* V1 _
  59. #define ITCCHEN_SHIFT               23
    $ X) s# @5 Q1 g' A- k# M! o

  60. 9 r4 }- L( Q# K' w$ L
  61. static volatile int irqraised1 = 0;: B; @  p7 b8 K+ k& d/ k& q9 y: ^
  62. static volatile int irqraised2 = 0;
    , \7 ^. J4 \7 d/ _

  63. 2 R" E! U0 X% _* `4 C: }
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);, E% \1 n! Q! M5 x( V" X# S
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);. v4 |1 @7 |: {7 J+ C4 H9 r
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    % m* I* O; Y( {. n

  67. / M# F( b( @% [; n6 j( _0 C
  68. dma_addr_t dmaphyssrc1 = 0;
    + n9 `, p, k& h1 o  c- u# \
  69. dma_addr_t dmaphyssrc2 = 0;
    - U9 z; v9 L/ O/ D/ G' i" J
  70. dma_addr_t dmaphysdest1 = 0;
    : V; o- ], P# g$ [7 J# J. [  i# ?
  71. dma_addr_t dmaphysdest2 = 0;6 q8 Z1 G8 a! N$ f- [
  72. % M& n6 `4 t+ J; Y9 J: M
  73. char *dmabufsrc1 = NULL;8 ?, _" }' E8 Y, ]5 O# o5 Q1 }6 k# }
  74. char *dmabufsrc2 = NULL;! l* `/ \8 }2 P- Y/ p
  75. char *dmabufdest1 = NULL;5 v) W" J- l* t; M! E+ U
  76. char *dmabufdest2 = NULL;
    % L* E! }9 Z$ b) _+ @

  77. 3 @2 f- Z- E' P
  78. static int acnt = 512;( M0 t" `0 Z! S+ p9 C. h$ s
  79. static int bcnt = 8;
    * ~! P* M$ o  t+ r0 P
  80. static int ccnt = 8;
    : c9 r  d7 X) R6 h( T+ m
  81. * }5 @% {9 ~* O
  82. module_param(acnt, int, S_IRUGO);
    $ ]  @6 T# m- x. n6 `
  83. module_param(bcnt, int, S_IRUGO);
    3 a5 f$ Z% O  ]! C- T
  84. module_param(ccnt, int, S_IRUGO);
复制代码

4 e7 f% O* l$ p
1 W% u% v9 W. q% Z! K      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用) j/ z5 u0 F2 g
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。* O* Y8 J1 b4 R
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
$ \% t+ g8 |" ], u) o" Q- F8 |4 r+ H$ E% `. z' K5 J: Y

7 v: U5 p% q( t7 o# f5 ]9 ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-5 21:27 , Processed in 0.040069 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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