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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
$ t* Q6 g0 t# {6 S3 D! ?
  1. [code]EDMA sample test application
    * p5 J# `8 m. X3 G
  2. /*5 N- V, [) b6 [5 P2 i. {
  3. * edma_test.c$ ]. Y; }' A" _3 Z: g- q, f8 `; s
  4. *8 M- M& E" `- M: I2 I
  5. * brief  EDMA3 Test Application% o: K" `; s  a5 n/ ?+ V
  6. *
    6 K. Q& v! V9 @( i
  7. *   This file contains EDMA3 Test code.- U+ ~* s0 J! d2 X$ z  I
  8. *, ]. B0 J% j+ r
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    4 V( K5 l, |7 A1 R; m) }/ u; t
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
      @" d4 |& A( ?* k
  11. *         TO CHANGE.
    9 X; w$ J$ {: A$ `1 [  `
  12. *5 R2 l  z0 P# m1 F
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    5 g9 g- Y! p- c& V: D5 ~. o# c! X; H
  14. *
    $ g7 c. \/ Z' q+ A+ [) Z/ l, L
  15. * This program is free software; you can redistribute it and/or
    - s, Y) A6 n8 i: L! }% U: {
  16. * modify it under the terms of the GNU General Public License as$ {8 a: K8 ?. h" h& X# c' h( }
  17. * published by the Free Software Foundation version 2.( h$ Z- P4 X+ V& X+ q8 w/ M
  18. *7 X, }  q5 a* r; c0 v8 @+ W7 s
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
      S7 T6 I0 [; B. e" m/ b
  20. * kind, whether express or implied; without even the implied warranty4 Q0 A1 O# `! b( l* |' K" }
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    3 t8 K$ i8 ^, W6 {; r4 W: v; b# j
  22. * GNU General Public License for more details.8 H6 [$ W% W7 z) c0 c
  23. */
    5 {. @/ l% x: s6 s0 _

  24. 7 f8 A) u8 B8 p2 f/ \. U2 D
  25. #include <linux/module.h>
    + H/ y! H- G/ n  O4 f7 U
  26. #include <linux/init.h>
    9 n/ ?/ H5 _* H
  27. #include <linux/errno.h>
    5 y8 C9 |3 _3 S# P, f" p0 X' T4 a
  28. #include <linux/types.h>% w( _4 i0 N. n$ K" A) n8 P
  29. #include <linux/interrupt.h>
    $ X, r* }; T1 A- N3 V8 Q! i9 W7 `
  30. #include <asm/io.h>  [3 r5 v( @8 W/ k% P
  31. #include <linux/moduleparam.h>
    : q- v7 Z$ T% ]- t
  32. #include <linux/sysctl.h>
    ( x% z, A9 X3 p) F7 B! h) k5 I7 \) F
  33. #include <linux/mm.h>
    * R5 x6 D% Q# z4 A. s+ ]
  34. #include <linux/dma-mapping.h>2 |1 s4 \( ?0 b) s
  35. * k* }2 w7 Z: Q& Q
  36. #include <mach/memory.h>  Q( R1 G  K" \" W' C1 V
  37. #include <mach/hardware.h># T. T& k0 Z6 G- e6 H) x
  38. #include <mach/irqs.h>3 n- a5 g7 ^) q5 @- \
  39. #include <asm/hardware/edma.h>: @  B7 Z( `; |; t. c

  40. 0 @! P9 d( V  j$ z  O8 @6 @. C
  41. #undef EDMA3_DEBUG( N+ t5 m2 a3 L9 b# Z
  42. /*#define EDMA3_DEBUG*/
      C, ^# |2 s; o# B; M) N
  43. # K! j: f- [/ t. v; E' \
  44. #ifdef EDMA3_DEBUG
    ! e# L# V9 f- D- d
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    ) O2 \2 C8 ~' l7 D# K) I
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    " H; n  d4 ]; D; \5 |
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    4 X6 m) S% u. C; ]
  48. #else
    6 g, b! R2 E8 b8 G/ o- i% T
  49. #define DMA_PRINTK( x... )# n1 t( K. L# y% W0 F
  50. #define DMA_FN_IN
    / @. }- l9 e& Y$ s, `
  51. #define DMA_FN_OUT
    2 }7 o( @, j+ _8 [6 v$ E% d, w
  52. #endif
    % j, N2 V" }/ s2 g

  53. - l' T! F5 Q; `1 W, n" ]
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    6 Y3 X9 l- a1 T- |- Y0 r4 i
  55. #define STATIC_SHIFT                3
    # D$ I  _/ x( B' l. m. Y$ C7 V
  56. #define TCINTEN_SHIFT               200 t+ o. S2 i% z7 T& v4 n
  57. #define ITCINTEN_SHIFT              21" R6 h* `  b7 A8 T+ f# T
  58. #define TCCHEN_SHIFT                22' \5 w5 ~( H- D  ^) F5 l" v7 d
  59. #define ITCCHEN_SHIFT               23
    ; W6 [3 W% }% v# {- S

  60. : z( S3 p6 f) F  U$ g& y& z
  61. static volatile int irqraised1 = 0;3 a' X; M: n5 s
  62. static volatile int irqraised2 = 0;. m2 v( d, o) K$ `: `. V- K1 \2 ^

  63. " \1 C) C9 V9 o5 Z& W9 q3 g- S
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    , ^  V/ C9 c1 ]$ ^
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    5 a8 n/ H5 j/ L
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);* ]1 p: w& q* v! ]6 @  J
  67. * n6 ?% u! f' s; r- {
  68. dma_addr_t dmaphyssrc1 = 0;" u1 _" t* I$ \: f7 `+ A: d1 ?* ^
  69. dma_addr_t dmaphyssrc2 = 0;7 s9 @2 y: B: ~# J) a( e! L7 O- a
  70. dma_addr_t dmaphysdest1 = 0;3 a9 E1 C6 R4 I) p* J- H2 X, `8 Q
  71. dma_addr_t dmaphysdest2 = 0;
    & G! y" l  A4 v7 [

  72. % P' u& o" N. Z0 X' K3 N
  73. char *dmabufsrc1 = NULL;! a) ?$ w0 k. R
  74. char *dmabufsrc2 = NULL;6 N: p& q7 [2 H; }7 ^4 `
  75. char *dmabufdest1 = NULL;
    . r6 @3 ~: h8 t7 ~
  76. char *dmabufdest2 = NULL;
      m  o& c/ s9 z$ E* I& n" \5 ^

  77. 5 q  {# a3 Q8 c3 @% v6 d5 v7 s
  78. static int acnt = 512;
    % B( `8 T( W: p0 v* r
  79. static int bcnt = 8;. g# k. L8 U, E7 _' T7 f7 w
  80. static int ccnt = 8;
    8 J9 {% l0 C2 [8 H- c4 D
  81. 2 b: \$ a+ G0 K. D" F& |7 \0 p
  82. module_param(acnt, int, S_IRUGO);
    , Y% J. Q" }& X3 E* }
  83. module_param(bcnt, int, S_IRUGO);6 h. t/ H' ]. u/ Y
  84. module_param(ccnt, int, S_IRUGO);
复制代码
# Z, N- c# b$ F4 H1 _$ I# l

* h2 O$ l9 }- }; m) e      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
7 w' {- h1 E' Xarm-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 R& |  O1 ]$ X. F
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
% e* b4 m% l5 e& i
4 N/ N1 Q% D& M! D4 X
. r0 m' m8 l4 L2 m. w. {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-10 03:53 , Processed in 0.074886 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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