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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 $ R; |4 H) s9 ?2 d, Q
  1. [code]EDMA sample test application  u( d: w% Z) _1 y* h
  2. /*$ `) Y- p2 h6 }3 \- A
  3. * edma_test.c8 _$ D( m6 r. |& c9 K8 N
  4. *
    ' e# J5 h+ |1 F9 ]! X- p4 ^
  5. * brief  EDMA3 Test Application1 u" v& Z/ v: N4 R# F9 U' E% L
  6. *
    4 p7 P5 c) F5 M
  7. *   This file contains EDMA3 Test code.+ s+ f' E' O' d0 M. P6 u5 _5 I8 D
  8. *
    6 ^! W6 A; c, D6 S
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    + R0 f7 p9 N1 [: W) G# \
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT5 f, {& p2 D( F8 F/ }2 I6 R) a: {
  11. *         TO CHANGE.: E- ^& o& n$ ^
  12. *
    ' _1 H9 }! K/ ]% P
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/$ k* a/ h3 d% s9 ?! j
  14. *; S% f9 p5 i- r1 {# n
  15. * This program is free software; you can redistribute it and/or/ E! i) U7 q/ y4 L, Y
  16. * modify it under the terms of the GNU General Public License as
    + u3 e8 @; U3 C- P6 J
  17. * published by the Free Software Foundation version 2.
    6 J5 o( @" {6 V1 ^* c' k- L5 L
  18. *' j2 k# }' @+ F: @% W
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    , V7 b. X7 _- C% y1 I6 \1 S; h( C) N
  20. * kind, whether express or implied; without even the implied warranty( ]7 l8 `- V, l0 n( s2 ]5 \+ o; t
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    2 o6 j& L) S3 U- e
  22. * GNU General Public License for more details.. U4 _4 }5 D1 }4 D
  23. */( Z; u& L$ Y( G5 k& ]8 R5 ^# Y% x0 w
  24. 3 b3 V" Q* Y1 H& v
  25. #include <linux/module.h>
    0 m% |' S2 t/ K0 G' c/ ^
  26. #include <linux/init.h>' ^; r! Z# V8 |! t- k1 @
  27. #include <linux/errno.h>
    ( c+ J7 b+ g! W, I! r
  28. #include <linux/types.h>" w9 f0 _; Y& E- _9 M
  29. #include <linux/interrupt.h>
    & m( z' u1 H& j0 s6 _+ {
  30. #include <asm/io.h>
    ; Z  B: z! Z9 E# R: N
  31. #include <linux/moduleparam.h>
    . I, N, w7 r! k( a- K
  32. #include <linux/sysctl.h>
    3 A! f: B; b7 z5 C* ~
  33. #include <linux/mm.h>, M: Y! |3 y6 l3 _8 A; k) ]6 v5 A9 b
  34. #include <linux/dma-mapping.h>
    4 k2 E, ^$ C# L! h% u" Q
  35. $ C+ |2 _0 S8 k' u) A
  36. #include <mach/memory.h>
      }, A. K- W+ F& A
  37. #include <mach/hardware.h>/ T% R! C% ]% Y
  38. #include <mach/irqs.h>* E' r- G3 t& Q! o
  39. #include <asm/hardware/edma.h>
    $ @2 o$ U) G, |& x/ M: g$ Q8 D

  40. " R& r8 }% G2 V4 s
  41. #undef EDMA3_DEBUG# d; p2 [3 X7 ~1 Y, O# @5 T6 h
  42. /*#define EDMA3_DEBUG*/' J' u* b/ L7 e# S2 [1 P3 k
  43. 7 f) O" |# ^) \- F* W4 `; N7 X+ ^
  44. #ifdef EDMA3_DEBUG6 f  s- X6 ]" H, F! @
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    - `% X. Y  O4 |& C1 I
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    + o$ f; ?  {: K$ h, {0 D  B& q
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    % y" z. h4 o, m
  48. #else
    5 Q3 R3 o8 A5 N  R$ ^. p2 _. {
  49. #define DMA_PRINTK( x... )3 [2 o3 D# [; ], F
  50. #define DMA_FN_IN% u8 J4 c" Z) H7 F% S
  51. #define DMA_FN_OUT; `- ^$ A  B7 N, g1 j5 _! m3 J* Z
  52. #endif
    1 N( H% E% @- O) d8 _% l  I  O& R* O
  53. ! h: Y+ Y+ J% B) t' q; y6 F; P* u
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)( b0 g" }: ]4 A' Q3 O) h; G
  55. #define STATIC_SHIFT                3
    2 b; ]2 Q. q9 \: u. Z
  56. #define TCINTEN_SHIFT               20
    ) z6 _; G) L! E2 e% d
  57. #define ITCINTEN_SHIFT              213 k- l9 y* _! b* v3 `6 p
  58. #define TCCHEN_SHIFT                22/ N2 j) h5 x# `1 l) B* u# F4 H. b
  59. #define ITCCHEN_SHIFT               230 I# e' A' {/ z" S

  60. , o8 m; ~5 D& p7 Z8 {+ t
  61. static volatile int irqraised1 = 0;
    1 p, [( z; C$ \  X
  62. static volatile int irqraised2 = 0;
    ( \! m; |0 a% h! ~4 D0 d7 }5 O. [

  63. % B# e+ y8 }7 K$ x
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
      s8 v/ q7 m1 c+ u" [! z; [4 A0 L, W
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    % U9 s- x( s4 v9 y
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ' h7 y- }% X9 H0 O/ p2 P1 U

  67. / o/ d' a% b. ^$ e1 ^2 z
  68. dma_addr_t dmaphyssrc1 = 0;
    & G. h# O# O  P) ?3 L3 b- j
  69. dma_addr_t dmaphyssrc2 = 0;* Y# Q! z2 a6 b( P% C2 |# m
  70. dma_addr_t dmaphysdest1 = 0;
    1 F; A" u  H& f$ j. z+ h
  71. dma_addr_t dmaphysdest2 = 0;- W. ]; S6 D; e  X1 X" F
  72. 9 E" E6 |; R5 o6 t# c
  73. char *dmabufsrc1 = NULL;
    ( F; x4 z- l) F# t+ v+ v
  74. char *dmabufsrc2 = NULL;
    ' c" s$ i% A8 Y( k
  75. char *dmabufdest1 = NULL;
    . O' A5 O' p( T& D1 w. {. w. l
  76. char *dmabufdest2 = NULL;
    3 _7 b$ |6 q8 m$ m8 l

  77. 5 v! T  c* F+ m9 _1 D+ L3 w
  78. static int acnt = 512;, Z; b4 u# K8 W
  79. static int bcnt = 8;) K6 [; r( z- C; ^4 ?  q
  80. static int ccnt = 8;% |- d% l3 [" ^5 j
  81. 0 i5 W/ o' R, @* Z& ]+ f( q( s$ ~2 w
  82. module_param(acnt, int, S_IRUGO);# _( n% p3 H9 j0 E# ]9 u
  83. module_param(bcnt, int, S_IRUGO);
    0 K9 {+ j1 m0 S  W! d
  84. module_param(ccnt, int, S_IRUGO);
复制代码
: }/ S3 W+ d4 Z9 i- D

, C# P* o0 t% k- Y      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用1 R) n+ U- c6 b
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。1 N3 a, |( J! r' U6 i
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。7 K5 f2 D4 Y7 X- N
: i% n' s* H9 y) T4 X8 c

/ q; O& m3 w+ a4 |% _; R2 @
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-18 02:16 , Processed in 0.041028 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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