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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
/ Q3 d! i6 U4 T) y8 Z% J* _# o
  1. [code]EDMA sample test application% A& y& _' U1 h- _3 K' R4 ~/ m
  2. /*
    ! Y2 K, _& u  E/ E& L$ m  I
  3. * edma_test.c
    0 {) A! I1 r# h% w( h3 e/ @6 e2 E9 ~
  4. *# H" s0 N5 ]" D
  5. * brief  EDMA3 Test Application
    ; W0 H  _- N4 V1 x) t+ R0 h" m6 V$ o
  6. *
    8 X  Z6 M/ p: a- c0 B5 M7 q% Z9 d
  7. *   This file contains EDMA3 Test code.% q9 N8 q. m( B% J, V
  8. *6 u. C. W4 \6 _8 D8 R4 q
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE, p  y# P: Y4 Y* Y$ }8 X$ m2 a
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    + N( _, _5 K' j; L
  11. *         TO CHANGE.
    ! D9 T4 D, H: s& H/ [
  12. *4 I4 R2 n8 Y' {3 @$ p/ |
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/  }0 C8 i( ^/ r! w7 @7 y' m& B
  14. *
    ( |! [* t$ M8 ?: ^$ T6 }( J
  15. * This program is free software; you can redistribute it and/or
    6 C' ]# N, Q& @
  16. * modify it under the terms of the GNU General Public License as
    9 h  E+ N3 N4 I& n' m* @
  17. * published by the Free Software Foundation version 2.. a9 I8 K$ S0 s& l; r, b4 R! E
  18. *
    8 Y8 E& G* j4 W, P& t5 o& U
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any, C* w( c$ e+ m" F+ u
  20. * kind, whether express or implied; without even the implied warranty4 e3 ]) m( O+ s' z# ~  i
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    - G3 t2 N" v# I( Y% J) M1 p
  22. * GNU General Public License for more details.
    , y. ]6 {! F" f4 I8 g% p+ _6 L' c
  23. */
    / J% Z% `7 h# |

  24. 3 L: U1 b6 c+ F; l; A  j
  25. #include <linux/module.h>
    1 Z# s) A5 v- R; G/ ]' ?. _
  26. #include <linux/init.h>6 M  h1 G. K4 u- N: Z% K
  27. #include <linux/errno.h>2 G/ x$ M# Q4 e6 q
  28. #include <linux/types.h>  G. {1 J) M, k1 L
  29. #include <linux/interrupt.h>5 Q: ~- ~/ m5 M, a- F+ K5 @9 x. u
  30. #include <asm/io.h>
    * g+ ~' h* K  F" M
  31. #include <linux/moduleparam.h>
    ! B% q; i" y6 W
  32. #include <linux/sysctl.h>! y# m/ N0 C  p+ z
  33. #include <linux/mm.h>
    : d& h7 W( R2 m' I) l# q* U
  34. #include <linux/dma-mapping.h>: @# l9 I& J& p+ m2 ~2 U8 }
  35.   v7 `7 A, T" _4 i' b
  36. #include <mach/memory.h>+ N( t6 l: M; R
  37. #include <mach/hardware.h>, X( D; a3 D3 T9 A" R" k
  38. #include <mach/irqs.h>
    ! P" R7 C) d8 |6 H0 w# P
  39. #include <asm/hardware/edma.h>
    / z0 |- R! p/ c$ U

  40. / ^& R/ |1 T$ h0 f0 u! _
  41. #undef EDMA3_DEBUG
    ; ^6 p2 H; L8 A  F: J  [
  42. /*#define EDMA3_DEBUG*/
    & M3 c0 s8 `& w; A8 R

  43. ! ]; E! U; c' [
  44. #ifdef EDMA3_DEBUG. e4 F. t' S. |. Y' L
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    ! E: x$ h2 \8 h4 ^' C, o
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    3 y1 `4 ]  e7 ]( `/ G: z9 D% R! K
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    ! x; U4 s2 E8 x! A* M6 e
  48. #else; Z/ S: a1 \3 K3 m# R4 a) W
  49. #define DMA_PRINTK( x... )( }4 u1 T, j5 G3 y6 T7 j5 b9 L
  50. #define DMA_FN_IN1 I4 x  L1 ?: s# @# a
  51. #define DMA_FN_OUT8 {  W6 Z6 [9 N5 [; C
  52. #endif" F7 H5 ?7 R# y1 D; s5 h2 t

  53. 0 i+ X+ X0 D/ Z4 m* ]
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    " v! C3 ^* i8 [, Z% q
  55. #define STATIC_SHIFT                3
    3 Q- ^. W/ {1 w( T
  56. #define TCINTEN_SHIFT               206 |& U( C5 z% O5 w/ y; O
  57. #define ITCINTEN_SHIFT              21/ k4 \/ g# {/ \0 K8 F+ j( R6 Z
  58. #define TCCHEN_SHIFT                224 g. R' e1 |' Y+ L2 z
  59. #define ITCCHEN_SHIFT               23
    6 k( N1 ^; t! U1 R7 D) r; o. e
  60. 2 P" e, K- K- y. ?6 m: A
  61. static volatile int irqraised1 = 0;% h  ?, X! M0 e4 [2 U) @3 N
  62. static volatile int irqraised2 = 0;0 m! q3 c, V/ d* b6 L1 s

  63. 0 y2 X0 b: i, T: V! S& p
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    1 }1 E* ?9 Q+ ^
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);8 J1 w' s7 a# b3 c. A
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);3 H7 \  A3 J- E9 b
  67. 8 Z1 v1 L9 X! @. J+ X% G
  68. dma_addr_t dmaphyssrc1 = 0;9 r7 ~) ]! z  M- [: B, v
  69. dma_addr_t dmaphyssrc2 = 0;
    2 W' {# J5 [: s( j1 _( f
  70. dma_addr_t dmaphysdest1 = 0;
    ( I# P, {$ y4 \3 I3 @
  71. dma_addr_t dmaphysdest2 = 0;
    * F5 _6 h8 e* G: ]! A  ~4 p! f' I: u  p
  72. 5 J" o* h( t7 R0 m6 w: u, u- v
  73. char *dmabufsrc1 = NULL;
    ! X% K* L6 }7 [1 r2 T" U
  74. char *dmabufsrc2 = NULL;
    9 M( g, q4 b" Q/ F$ M8 ^# s0 E
  75. char *dmabufdest1 = NULL;
    2 T* b  ?+ t  c2 W: n  e7 Q: Z) K4 \
  76. char *dmabufdest2 = NULL;3 I7 x* g' d5 x% E; p9 @7 T$ Z
  77. , c$ E' j' a$ I
  78. static int acnt = 512;
    3 }. Y/ V& F0 v' E' A, w2 g; G$ B
  79. static int bcnt = 8;
    ' B. R; _" Y  j  c- i( g
  80. static int ccnt = 8;
    - L4 g1 P$ w0 L# D

  81. / G- }& v4 ^* i
  82. module_param(acnt, int, S_IRUGO);
    8 W' v- [; I( V5 b* s% \1 b
  83. module_param(bcnt, int, S_IRUGO);
      H5 l1 x4 H" j
  84. module_param(ccnt, int, S_IRUGO);
复制代码

' |3 E( X1 ~. }) [2 r- [
  ^8 w2 O6 _, u      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用& n. J: s2 G. O! E7 `4 |. p! w
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
. m; D- @& q5 {     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。" ?0 ]1 E6 X3 e; n5 q/ H
, n% c4 e( a" W9 x
) k, S% H$ g" d" a6 u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-30 00:35 , Processed in 0.057859 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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