OMAPL138如何在Linux下使用EDMA3驱动 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
5 F& n, q& L1 `' N" ^" U0 C& f
  1. [code]EDMA sample test application9 s( H: w9 {; \
  2. /*
    & m9 \+ j- t. J; R- c' ~
  3. * edma_test.c
    1 P9 k/ |5 f0 F& ^6 f
  4. *& ?$ Y0 k* o6 z* n' m( U# p
  5. * brief  EDMA3 Test Application2 ~" w9 B/ l. t! r
  6. *4 ~4 C9 @' C; x6 X/ s
  7. *   This file contains EDMA3 Test code.- c# C" ?0 K. B2 }
  8. *+ H* Y- {4 b6 |+ g
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    . v' S' W0 B* W. x5 v% @) V
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    5 }" d) H6 s& i4 q6 G/ A/ l
  11. *         TO CHANGE.
    2 w8 ^& ~5 ?3 }/ A4 Q
  12. *
    * |' E1 G% V& g! \) h% i! O
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    : B& H( y1 s4 F0 D: ~5 a
  14. *( O* Q$ V& q0 |: O4 {* A8 r( v9 Y
  15. * This program is free software; you can redistribute it and/or
    ( o  I5 i: q2 a- n
  16. * modify it under the terms of the GNU General Public License as
    * f5 ^) A* b  B1 \
  17. * published by the Free Software Foundation version 2.6 S9 E! F' ^- g1 o3 y$ H- u
  18. *  V$ Q5 V' J6 R4 I, C. C
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    % S+ p1 Q* |$ m5 S
  20. * kind, whether express or implied; without even the implied warranty
    - |6 \5 R7 Z# y/ D3 h6 W  n7 m- E
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the1 ?6 G+ f- N0 {1 V
  22. * GNU General Public License for more details.
    0 B7 Y* r9 [8 n3 r% {' T/ f
  23. */) P$ w4 N# h! U4 I! D

  24. 2 `$ Y) G! I: N
  25. #include <linux/module.h>2 B. Q7 j3 A9 R$ q. ?  m# H0 Z6 E
  26. #include <linux/init.h>
    9 ]. }7 F, M& v- i, y6 ~- N  _
  27. #include <linux/errno.h>/ G; d( T2 S8 _
  28. #include <linux/types.h>, D9 d) U% G) S/ U( r6 R* u
  29. #include <linux/interrupt.h>
    * Q6 P, s) g6 Q' [8 t9 ]6 n( e
  30. #include <asm/io.h>
    3 K+ |# x& _( Z2 f% Z- L: Q' {1 @5 d
  31. #include <linux/moduleparam.h>  S- p! r! [9 J% w) @( h* j& L
  32. #include <linux/sysctl.h>
    * f  d& ^# l+ H+ m- O: {
  33. #include <linux/mm.h>
    2 E; }3 `8 Z  t: X& v! A! D( }$ _
  34. #include <linux/dma-mapping.h>
    : v- Q% N  X$ e* w% }" D& C  V

  35.   g) w  K! v" n8 \
  36. #include <mach/memory.h>
    ! b/ q0 G" w" H! o8 O6 D
  37. #include <mach/hardware.h>$ `2 ?3 q9 ?' b2 Q& p/ D0 A' D2 `
  38. #include <mach/irqs.h>
    , @+ w) `7 A8 f
  39. #include <asm/hardware/edma.h>
    ( R& g: `1 W% R/ ]" Y, _
  40. $ O2 u, M( B& J/ u8 u% N
  41. #undef EDMA3_DEBUG
    6 r' q+ d$ P& B9 ^/ q' Q) L
  42. /*#define EDMA3_DEBUG*/& f2 q7 l" |! Y( ~# W
  43. & s. B8 o  n* F2 Z( o: n+ _
  44. #ifdef EDMA3_DEBUG
    ) ~+ J3 X- b7 H* Q
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    - @6 D1 L+ z" {' u
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    5 R1 D) `5 S: y: z/ T9 o' Z
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__): w  U- v; K1 }; V9 ?  ^
  48. #else
    2 n2 H7 h5 p% S) k# _
  49. #define DMA_PRINTK( x... )* z- ]  L' B1 {+ }# C
  50. #define DMA_FN_IN
    6 O+ Z! T/ x* |: i9 \% u! |; g
  51. #define DMA_FN_OUT
    , N. l3 Q4 E0 V) A0 R
  52. #endif
    1 ^3 ?* q# U+ ]
  53. + z3 D8 K1 n- L
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)1 w4 T' d; E0 H
  55. #define STATIC_SHIFT                3$ S1 p5 s' c; m  m7 L9 R5 t! `: e
  56. #define TCINTEN_SHIFT               20
    2 k1 M$ x5 z  q6 d) w, |8 q9 V
  57. #define ITCINTEN_SHIFT              21
    . W1 P) R9 x- {* I6 Y' Z; U. V
  58. #define TCCHEN_SHIFT                22
    3 t; C9 Q5 I- e) f' I
  59. #define ITCCHEN_SHIFT               235 C1 R! G0 I8 B( o% B4 q, I% u; g, ]

  60. # s( x9 z7 I' {- u) P4 S  e
  61. static volatile int irqraised1 = 0;: B- _4 N+ X0 S+ N; ~
  62. static volatile int irqraised2 = 0;+ c( f" x/ T# a/ e" _5 N
  63. 8 `$ d" m% j& @- T* c
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);$ I' H& K, U0 {. s  V, @3 F% }) M
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    & D1 _+ D/ F! h0 i) T! `
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);- Y1 z/ p1 i/ I6 Z# ]
  67. 7 X' a- n) E( [, H& i. b
  68. dma_addr_t dmaphyssrc1 = 0;7 U. s4 j4 ^5 v$ O- P! W
  69. dma_addr_t dmaphyssrc2 = 0;
    ; ]$ o* \, Q$ q0 K: S5 j+ W
  70. dma_addr_t dmaphysdest1 = 0;
    9 ^; S/ V% Y5 e9 ?. L4 _
  71. dma_addr_t dmaphysdest2 = 0;
    5 x& g& [7 L* M2 _& l

  72. 4 i$ {. y3 o6 z. U6 m
  73. char *dmabufsrc1 = NULL;8 ^" |6 X  E  n( I
  74. char *dmabufsrc2 = NULL;/ f  \/ k( n- Q7 e4 d8 r7 H
  75. char *dmabufdest1 = NULL;- a$ Z1 [: p$ z6 f. T
  76. char *dmabufdest2 = NULL;
    ; R2 `( j! H) K, T' o- x' F6 F

  77. . b0 L6 [3 C- U3 N
  78. static int acnt = 512;1 H% O7 q& N* ?0 _1 a1 i
  79. static int bcnt = 8;
    ) k5 I% ^+ p; K( [* @5 Z
  80. static int ccnt = 8;
      X9 M1 s. A0 u0 J
  81. ! R! q. S9 C8 o$ t# r. ^6 D
  82. module_param(acnt, int, S_IRUGO);4 o) r+ Y, _- v
  83. module_param(bcnt, int, S_IRUGO);* U% \- v0 {5 {' e( k
  84. module_param(ccnt, int, S_IRUGO);
复制代码

9 `$ E  {4 ~5 c' u, |5 w! H! B0 a- q5 M" b  }. _6 X1 E
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
6 i! r) C4 E7 V& ?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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。7 `9 ~3 d+ T9 d& c" [+ O% J
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
$ i5 j& i  J$ Y; r$ K3 h& z) y
# L  h4 a7 ]2 a# n! ?. u& p9 V' f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-16 18:16 , Processed in 0.042887 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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