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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
: B3 H0 L. z1 k! T8 L* c% L
  1. [code]EDMA sample test application
    9 _4 B8 S; @' A% Z1 |6 A' ]
  2. /*
    + y% L6 v: `  J5 h. S2 C
  3. * edma_test.c0 B  g5 U9 Q0 _* A
  4. *+ u, V# e  v% ?8 B+ U
  5. * brief  EDMA3 Test Application# S* |2 C6 V0 I- }5 e
  6. *
      K+ {& Q9 ^: p9 t8 \! G7 h
  7. *   This file contains EDMA3 Test code.
    4 H/ K- c- d0 A2 v* O8 n7 C
  8. *
    / Z( U; b3 f' |
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE. ]. l  d. {/ R8 N; m' N
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    1 o  C( c3 S- E6 @
  11. *         TO CHANGE.3 v7 w8 ~8 W, ]; y7 y( m- v
  12. *
    8 O8 y( h) I. }7 H* a1 J  J
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/0 |5 c# X/ X" d' l7 x" h
  14. *+ \' `9 o: B8 }' e" p6 |- Y* h, ~
  15. * This program is free software; you can redistribute it and/or5 m$ {3 g6 t' F  @
  16. * modify it under the terms of the GNU General Public License as
    0 ?! s2 |" @" y3 |* c7 r' x
  17. * published by the Free Software Foundation version 2.# P( q8 \1 ~; {" n
  18. *8 U, G8 z& ]9 Y, A
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any! g: N- w! H( ]( }1 _' e
  20. * kind, whether express or implied; without even the implied warranty3 [, o4 Z  \: |( d9 E. Q
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + N6 y; `" Q) y0 G/ H
  22. * GNU General Public License for more details.
    9 K- M) |. B9 F7 ]. J9 l+ K
  23. */
    $ _- s. x7 u) c) A6 E+ r; d6 |/ x* W" s

  24. & k8 C$ \$ ?2 N9 [
  25. #include <linux/module.h>
    , B& U$ Y9 t8 g0 ^
  26. #include <linux/init.h>, b  p( `2 q$ h$ ~, W6 Q
  27. #include <linux/errno.h>
    ( f! @" Q0 H) P4 K) ~2 @" m
  28. #include <linux/types.h>
    4 _, K6 s7 N$ W; ~9 f2 _
  29. #include <linux/interrupt.h>
    8 K; p) Q* [: ~6 j# C9 ?& J" e
  30. #include <asm/io.h>
    " j& v1 P! I/ E
  31. #include <linux/moduleparam.h>( J0 _: S- D9 g; V/ S1 c
  32. #include <linux/sysctl.h>
    ! r+ H5 C* |" H8 i
  33. #include <linux/mm.h># d! j- r+ C0 F; G
  34. #include <linux/dma-mapping.h>
    # {0 z1 C. m& b# w3 j
  35. ( t0 e, S  @! h6 }, C8 I+ |9 [
  36. #include <mach/memory.h>" x' D( N7 \* t! I6 V2 Z6 H4 i
  37. #include <mach/hardware.h>
    ( f/ t/ l4 j  u0 N
  38. #include <mach/irqs.h>8 k# g1 \* y/ c" _2 o2 i  N
  39. #include <asm/hardware/edma.h>
    1 R5 J* ]/ d: d) B6 N3 M

  40. 8 r6 `: L- R5 }2 a! r
  41. #undef EDMA3_DEBUG
    $ [& X& S! M1 X5 Y' z1 d) x' x
  42. /*#define EDMA3_DEBUG*/
    & B& n% `9 w# N- H# S$ R8 h% y

  43. ! D) }) @( B1 B4 g
  44. #ifdef EDMA3_DEBUG
    " y. g, `+ J# p+ C  l/ O+ F
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)/ y2 a, V$ v1 v7 q
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)' I0 t) M( F( A  C5 q' |/ T
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)# W, `# r  u1 i0 U2 N7 ^0 s6 r
  48. #else3 i- E* B9 D2 w+ C- S( B
  49. #define DMA_PRINTK( x... )
    # A3 p; a- w2 c& f4 r. F% b+ i
  50. #define DMA_FN_IN4 a" z1 W' D- z  E
  51. #define DMA_FN_OUT- @1 K- N6 l& J
  52. #endif) Y6 s4 T2 j, z; ?7 C* m# c& {

  53. + f2 H) [, \5 I
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    & Y- X. B& ^! \7 V0 k# [" H
  55. #define STATIC_SHIFT                3
    0 b/ d( R9 h! E, G: h) u
  56. #define TCINTEN_SHIFT               20
    / E7 q7 b5 ]" {5 B/ \( [  m7 l
  57. #define ITCINTEN_SHIFT              21% |8 Q' d4 X4 J$ W- X7 }7 |3 s
  58. #define TCCHEN_SHIFT                22. d  P8 g# j( i+ L+ S& t
  59. #define ITCCHEN_SHIFT               23, i* U" D) B! D$ [# m! a" d
  60. 0 b: ~* p9 w4 |7 K6 B5 _
  61. static volatile int irqraised1 = 0;1 X$ r' [5 b$ P+ r/ b4 O
  62. static volatile int irqraised2 = 0;
    5 H6 b% O" ]4 y- S) \
  63. ! w9 E/ t# q$ U& [1 m
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    2 Q: x# G( F# _  e( d' z4 U; k3 w
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    # a: o& x# ]" |
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ' d( V% Z  i& v/ N% f
  67. ! x, ~0 ^/ @/ R- F
  68. dma_addr_t dmaphyssrc1 = 0;
    * H' ]1 U5 f5 K* p) L. m1 P* \
  69. dma_addr_t dmaphyssrc2 = 0;! x$ m* p1 n  Q7 r% P- f
  70. dma_addr_t dmaphysdest1 = 0;7 g  e2 c/ m  P4 b1 _6 G
  71. dma_addr_t dmaphysdest2 = 0;/ T5 F# C% [2 U8 I# j
  72. % [8 z/ Q. ^/ @, Y
  73. char *dmabufsrc1 = NULL;. y% N3 r' L0 j. J; `# G  V
  74. char *dmabufsrc2 = NULL;; V: W9 o7 w( ]6 q% o) l* v" _
  75. char *dmabufdest1 = NULL;
    $ p0 u/ b2 x$ ~  X9 G8 K3 I! p
  76. char *dmabufdest2 = NULL;
    7 w6 P$ m  s* K* S* [1 V
  77. # X: \+ ~( P/ _4 y# Z
  78. static int acnt = 512;( ~( d( Z* [+ k& q" w5 `' x
  79. static int bcnt = 8;0 C' h- I" R8 c$ j4 E8 g( f) ~) k) ]) n
  80. static int ccnt = 8;
    : L+ @- @  a9 y6 F: t5 s2 }0 L: D8 Y6 E

  81. 5 Q" w# C" _0 `& k. A" I+ z6 {- ?! Y
  82. module_param(acnt, int, S_IRUGO);
    6 L9 b# D" d& Z, P$ V
  83. module_param(bcnt, int, S_IRUGO);
    5 B# R- M6 _# I4 P3 S$ D
  84. module_param(ccnt, int, S_IRUGO);
复制代码

0 j; w7 {4 k$ M) N- Y
) @- G$ u/ w! \7 q' c      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
8 M0 d1 l8 z& ~$ Tarm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。* Y8 j1 i5 I7 u6 d0 p) {: w' l
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。! r& G1 M/ Z( F! {% ?4 P
8 U! R) t' [- E6 A+ ?: e) ~0 D

+ R  U) z& w; c" @3 ^, P: u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-2 21:45 , Processed in 0.040072 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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