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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
3 T/ X' W) N" B8 X4 w/ H2 S
  1. [code]EDMA sample test application! T3 [8 v  O9 p& f4 L
  2. /*. g" q  f  W  i: p6 ~
  3. * edma_test.c5 G& M4 S. v  t- u5 M, w/ ]
  4. *
    $ ~) o# R# F8 Y4 X& X5 b
  5. * brief  EDMA3 Test Application
    & W; x5 F% `0 p0 r1 w% n: P
  6. *3 \& @, ?2 Q3 h0 X3 N
  7. *   This file contains EDMA3 Test code.0 }. @8 s# `6 O5 _3 A: ^
  8. *$ ~3 [+ _0 K. q6 b2 N4 W
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE8 |# L# p7 g2 q# u  A4 V
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT* c0 j1 o: z6 G3 a8 j- H7 I
  11. *         TO CHANGE.
    % A6 {" m% s* Q
  12. *. T) u; T: O- S  l9 b1 F/ x1 p
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/. \9 @* h9 `6 q" b, U) s- e$ M
  14. *  {( Q9 G' V" k
  15. * This program is free software; you can redistribute it and/or
    ! b& D0 v# }* r) O
  16. * modify it under the terms of the GNU General Public License as3 B( z% R( ]: i2 m0 o$ d3 I) G
  17. * published by the Free Software Foundation version 2.
    " {+ j) k0 C; v% }& a% I
  18. *
    1 G7 v  }% A% Y" O
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    4 D( m4 f9 J& A1 @0 e3 [1 Z$ [
  20. * kind, whether express or implied; without even the implied warranty% G" P7 e2 v% m! T; G
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    $ ~9 C, z4 g* i+ V7 D' T
  22. * GNU General Public License for more details.6 R+ v# m- k  L7 Q* d$ n0 {
  23. */
      S9 R4 T- j& }0 u' m. w/ c4 y
  24. ! @7 T& [* [) w0 S0 J7 o
  25. #include <linux/module.h>& ?* Y) ^, @$ }/ D3 j6 }. x2 O1 q
  26. #include <linux/init.h>9 z0 O+ n3 B# l
  27. #include <linux/errno.h>
    5 Y! K7 n& H; E; M( b
  28. #include <linux/types.h>
    0 |! t% [: c0 X, L0 G1 v8 J
  29. #include <linux/interrupt.h>
    / l1 ?  Y) D; F; K  ]
  30. #include <asm/io.h>7 Z& F" u7 e" ~! d- W; ]- z4 k" f
  31. #include <linux/moduleparam.h>
    # k5 J, C5 }7 k! n3 Y$ s6 w
  32. #include <linux/sysctl.h>; ]% \/ U6 G; h- M: f! p
  33. #include <linux/mm.h># ~$ n* K4 w4 ]' X! J4 K
  34. #include <linux/dma-mapping.h>4 z+ |  m$ l! v- [0 Q

  35.   y8 ~# F0 U0 o  N2 T+ p
  36. #include <mach/memory.h>8 s6 N& c3 T: T- I, O: b9 R
  37. #include <mach/hardware.h>- A9 G9 l4 p* M8 |3 U
  38. #include <mach/irqs.h>
    5 k; q+ m) ^7 A* P2 R, [( \& \* t
  39. #include <asm/hardware/edma.h>
      o, X( ]4 d% k, F  X' d$ W$ a+ {/ s7 r
  40. 8 ~  ]; w4 `; n7 U# U% T7 r! q8 s/ O
  41. #undef EDMA3_DEBUG
    9 a6 l  i, x' N7 D# a
  42. /*#define EDMA3_DEBUG*/
    & K( W; |1 E: p4 i, E

  43. ( d7 u  c0 R0 S- o
  44. #ifdef EDMA3_DEBUG9 ^) v" m; g3 O
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)5 p" ]% g' }: l
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)- v& l* E7 k$ ~% \( o0 u6 \
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)! L+ g- m8 ^( W' x5 z; W4 ]! P
  48. #else
    : S- K, e# k  t1 X
  49. #define DMA_PRINTK( x... )3 e; r3 z2 @4 ]. I: m% ^* [
  50. #define DMA_FN_IN' T& O1 O" f' E0 ?% m$ ?% H
  51. #define DMA_FN_OUT7 Y0 c( f; }" _+ m3 z/ W
  52. #endif+ N! H' X$ L5 |
  53. ' z  r/ L7 P+ I9 p2 F$ a
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)( ^0 a6 |1 j( q7 k% `/ X
  55. #define STATIC_SHIFT                3
    4 q9 l6 O) ~& f8 l% ]; P
  56. #define TCINTEN_SHIFT               20
    ( Z2 }7 T9 {3 W; t% g1 ^
  57. #define ITCINTEN_SHIFT              21
    ' K! k6 p6 D! ?$ R/ z% Y! q$ x
  58. #define TCCHEN_SHIFT                22% q2 g" M( ]1 t* |
  59. #define ITCCHEN_SHIFT               233 r. O; g# P: A( j( v2 B5 u7 l1 A. a; d

  60. 2 `1 n2 ?. Z7 L2 s
  61. static volatile int irqraised1 = 0;$ h# |5 u% j0 c4 L' {. \
  62. static volatile int irqraised2 = 0;
    . g; p: H; l+ n/ H, `* ^0 Y; P8 V
  63. ( R4 O3 H# I) p% W) P7 q
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);) q3 _5 e' [/ j* R4 i
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);, j# C' b5 g2 [( L1 v3 [8 C6 B+ r
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    + V. C" i( |: t' ~9 J2 ^6 E
  67. 5 O, \) F# b. V) f  P! {: ~3 q
  68. dma_addr_t dmaphyssrc1 = 0;
    - S" e; B" H" ~! }
  69. dma_addr_t dmaphyssrc2 = 0;* Q5 E! @- `. I- n! [0 E
  70. dma_addr_t dmaphysdest1 = 0;
    ; `! F2 l. H( c( l
  71. dma_addr_t dmaphysdest2 = 0;8 X: J+ C2 l' n# `: s' m

  72. 7 A4 \1 m& `0 f2 d" X
  73. char *dmabufsrc1 = NULL;) v4 P: L; P$ {  I! N8 `
  74. char *dmabufsrc2 = NULL;5 o0 o9 a/ J( ~& I/ ?
  75. char *dmabufdest1 = NULL;8 @' \- w& h* G( L9 e
  76. char *dmabufdest2 = NULL;
    ! s- }! C0 k3 ]( {2 l  p. y

  77. - W/ I* i9 h5 {2 d0 O- R9 \
  78. static int acnt = 512;& \7 [3 R  v6 ^8 r8 `$ W1 V" ]/ d
  79. static int bcnt = 8;0 G* \, j" X; K7 y" \; U
  80. static int ccnt = 8;
    % O8 Y9 ]; h. g' c% h
  81. . w- U! U) F% w% n% S1 b5 ~
  82. module_param(acnt, int, S_IRUGO);
    & _- h/ m# V5 i- N, ?% a
  83. module_param(bcnt, int, S_IRUGO);- |) j& ^) R0 D6 c$ b2 s
  84. module_param(ccnt, int, S_IRUGO);
复制代码
" ~) h, [9 h4 c% p/ v) J6 P. X

# F/ A3 c/ A9 ^, R$ A) r, v# K9 h      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
; R; f- ~8 i' n# warm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
+ s" [# _& \4 p6 Q# u( _9 F     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。. ?2 s* |- E. M( p% @, t7 j# a0 |

4 z4 C6 k% ]' U, n, n4 H. y9 N% Q/ @* o3 a  N9 P# f# i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-4 06:41 , Processed in 0.038882 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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