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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 $ p( i5 U, O' w
  1. [code]EDMA sample test application& U( T9 h, Z+ b5 G2 ^! r% b
  2. /*
    + U3 Y3 X6 N; X6 k/ k
  3. * edma_test.c/ \' J8 x$ z5 u6 h+ j; P
  4. ** P2 S) G7 |: s9 }4 M3 z7 ~8 P
  5. * brief  EDMA3 Test Application+ F: K% C$ j$ Y) w
  6. *$ h0 y" _" T' y5 ^1 e
  7. *   This file contains EDMA3 Test code.
    ! e/ e4 H! W6 y8 m  T; O2 R+ U6 C
  8. *# V* x9 b  K) l3 Z. W! I& v, |
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE/ W5 G6 }9 s8 i( x( i
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    / u) `  S5 Z" e$ E$ b1 k; N
  11. *         TO CHANGE.
    ) \7 H( ~3 G/ m$ f9 O0 v2 m: V
  12. *
    7 v9 z, T5 E3 F& V4 \  M
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    7 \5 ~5 G" G; _& C; M1 u
  14. *
    2 ~4 X" o4 u9 Z& @( }0 j
  15. * This program is free software; you can redistribute it and/or
    " Q- b; I8 G/ k, ~& c8 F; A
  16. * modify it under the terms of the GNU General Public License as& A" G* E* @9 f: i) X9 ~% k7 M
  17. * published by the Free Software Foundation version 2.9 J9 o; T/ d! V  T' m# r0 O
  18. *
    5 i! W5 Y5 _  N- m
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    ) f9 }+ c. _* [0 L# u- s; A
  20. * kind, whether express or implied; without even the implied warranty
    % n! p) D# W* ^4 h
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + `. s& @2 w/ p) C* C+ p
  22. * GNU General Public License for more details.( o! H# ^  P# z; D7 c
  23. */
    1 {! i7 L: p# Q" |* n9 P3 [5 X

  24. + Y; n9 X' K3 @2 C9 B3 f8 T+ r
  25. #include <linux/module.h>; y; n/ r  ?% T, O, F* Z
  26. #include <linux/init.h>0 d0 u. t. S% y) N
  27. #include <linux/errno.h>
    , y8 Y, L2 J) Y# Q7 H2 w9 q
  28. #include <linux/types.h>
    , o+ o# @0 U+ z2 q, r% H6 ^7 B( E
  29. #include <linux/interrupt.h>; A- k, J( U5 B$ G
  30. #include <asm/io.h>, u; Z7 n( ]1 m& Z# Z( |! N) d
  31. #include <linux/moduleparam.h>4 ~* w& v1 r2 I2 x- C9 O, `
  32. #include <linux/sysctl.h>
    0 R1 S7 m* u0 G5 r8 m/ k
  33. #include <linux/mm.h>
    ) z+ z; X4 b8 ?7 x3 x* J& H& h
  34. #include <linux/dma-mapping.h>9 |) u( }; o, E/ |$ e) h7 i

  35. * I: K8 l3 \8 }& Z8 }* l9 z- g  V
  36. #include <mach/memory.h>& @6 g. H+ U  V6 Y/ p
  37. #include <mach/hardware.h>0 X. a  k) s7 K6 p- d
  38. #include <mach/irqs.h>$ u, a0 r( j1 U  o- S3 q* @( d4 I2 J- \
  39. #include <asm/hardware/edma.h>6 Q1 G! Q9 h; Z2 \6 n. X

  40. ' H* u9 v# }; ]9 A% ~
  41. #undef EDMA3_DEBUG
    3 K$ H. W' y$ B$ k7 |; E
  42. /*#define EDMA3_DEBUG*/
    1 L! T) J: W3 e* }. R7 t2 ~) @. V1 V

  43. ) B8 S6 |+ ?0 Z8 [/ Y# ?$ V; n
  44. #ifdef EDMA3_DEBUG
    ( l+ N2 i" r3 Y! y6 s  S3 c
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)+ a8 A: A, {$ j4 i6 l
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    * z2 o* ~! R! X0 d
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    . ?. c) {3 y  t* T
  48. #else- y: e. W6 S' D/ C" Y  A* v
  49. #define DMA_PRINTK( x... )
    , g7 W. E* e( V
  50. #define DMA_FN_IN0 S9 U( P7 E, G$ ^
  51. #define DMA_FN_OUT
    1 J3 G& a8 G$ Z9 J0 m
  52. #endif2 [  ], V1 Z+ s3 C6 F- F
  53. 8 @# Q$ Q1 a. A& K
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)* p" O0 @4 d; ~4 g! V3 n
  55. #define STATIC_SHIFT                3
    . N5 `' `; T# E6 f1 i0 c+ e8 X8 o
  56. #define TCINTEN_SHIFT               20
    4 i) b! F- w" ?3 G
  57. #define ITCINTEN_SHIFT              21
    ! ^: G  a  ]5 m. m
  58. #define TCCHEN_SHIFT                22
    0 ?1 T7 b. w( G. ~
  59. #define ITCCHEN_SHIFT               23' _7 e! O3 \% V, V

  60. 9 ]% d2 i2 n4 U" ?' X# n
  61. static volatile int irqraised1 = 0;
    2 T# l/ ]7 w0 n% I5 l- r
  62. static volatile int irqraised2 = 0;
    % g! u  z) I2 D" N( d& b% M
  63. ; y  k- O$ i% \8 B, l
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    # y& _& E1 B) o
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    , l0 z  G7 w# w* i5 X, m
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);2 H5 B5 A; K- U5 ?/ d

  67. ) w! ^0 I* ~) |0 }4 j+ h  s
  68. dma_addr_t dmaphyssrc1 = 0;, M8 q' T7 A3 |; d6 b" o; F( k
  69. dma_addr_t dmaphyssrc2 = 0;1 C& E9 O' N- N
  70. dma_addr_t dmaphysdest1 = 0;
    : T, Z, v# ]: ^4 o/ v4 f# f: n1 O+ C
  71. dma_addr_t dmaphysdest2 = 0;7 H$ {- L( A" A

  72. 0 {9 a3 g2 |1 [9 `
  73. char *dmabufsrc1 = NULL;
    ) U) S6 t" Q  H: C7 e
  74. char *dmabufsrc2 = NULL;
    9 {  K  v8 e0 b/ b
  75. char *dmabufdest1 = NULL;, k' u7 S, p6 [" r2 Z
  76. char *dmabufdest2 = NULL;( v$ O* N5 V* W$ j
  77. 7 C8 K% k+ p. _
  78. static int acnt = 512;& V. d8 B9 W3 K* |& t( ^' V
  79. static int bcnt = 8;6 S% e( R3 m; ]4 D# v
  80. static int ccnt = 8;
    1 `7 q3 `! B* d/ P* l0 {7 a
  81. & t/ O: _+ E2 N! j
  82. module_param(acnt, int, S_IRUGO);% q# f0 B6 p( X; h+ Q0 H& @4 m  g
  83. module_param(bcnt, int, S_IRUGO);
    1 {2 o7 n) m. ]
  84. module_param(ccnt, int, S_IRUGO);
复制代码
) |8 |3 C+ {4 e: _2 L0 Q9 b
( _9 R, `- _2 R/ v& _% t
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
' e$ v0 h% A% M% Z7 l) Carm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
6 s0 Z% D; Y4 z$ `7 B     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。: }* e5 u, |2 R' }: I! v
8 u) x; T$ [% v3 m
! }2 b8 n/ g# H2 H3 g, K$ A" [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-3 23:40 , Processed in 0.046698 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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