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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
( M  p9 R% R$ U
  1. [code]EDMA sample test application$ f6 @9 J* H3 q1 Z; M
  2. /*
    " s* [/ W2 ?5 m" H
  3. * edma_test.c
    & O! O  Y1 r* P5 X% F. p8 d) M" l
  4. *3 N/ y# O0 H2 R
  5. * brief  EDMA3 Test Application$ E( J9 b8 J8 F# Z
  6. *' c7 W4 k6 ^/ e5 m* v" V2 s
  7. *   This file contains EDMA3 Test code.4 ], Z- B% z7 q) L& j  k9 z
  8. *
    , Z& G' r, X; P$ M9 u
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    - }5 E1 ~. h; ~" q
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT' j" ?" o5 ~2 @/ [% m
  11. *         TO CHANGE." t, s! S% k9 G9 j# K. K- ~" @: f* l
  12. *, i- b+ f% Q3 L; J% f0 V7 Z
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/- G. `% ^, r; ?& e3 H) D0 v7 G
  14. *& Z$ b" k* Q6 \
  15. * This program is free software; you can redistribute it and/or
    8 E$ ]9 j9 ?* }1 L# C
  16. * modify it under the terms of the GNU General Public License as
    1 t! A& d3 s' k; ^$ Q3 f
  17. * published by the Free Software Foundation version 2.% L4 m) z3 }3 t4 j, @" q# S) P& [; _
  18. *
    0 Y( p: {( C8 _6 j+ f2 h
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any+ j$ p" }! _; w2 r0 U. ]- _
  20. * kind, whether express or implied; without even the implied warranty
    7 b# l5 b1 o( y8 b4 |
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    $ F4 ^( V6 Y' b% V6 E: h
  22. * GNU General Public License for more details." Y  T3 N: f$ [1 X, s7 ^8 Y
  23. */
    6 z+ b6 D: W% b5 \

  24. ( e; U7 F* G; @9 F" H1 L. [1 E
  25. #include <linux/module.h>
    , ]/ Q+ d! O( P
  26. #include <linux/init.h>$ z. Y  I9 u+ ^* G; d
  27. #include <linux/errno.h>
    + J7 }$ o6 ?# Y* J  j( @: V* K
  28. #include <linux/types.h>
    % T1 y8 o  b6 F5 s, l3 R
  29. #include <linux/interrupt.h>  X9 p: ]" M! Q5 W7 r: z2 j
  30. #include <asm/io.h>  N5 T8 w" a# I( X" m* {6 p
  31. #include <linux/moduleparam.h>& i/ e: D5 `- d' i
  32. #include <linux/sysctl.h>* }6 x+ o( n. O% v4 P; O. y7 G
  33. #include <linux/mm.h>6 `$ l8 d# a4 C& t1 g' O& K6 A4 U: \9 ]
  34. #include <linux/dma-mapping.h>
    ' X' z* Z" D9 K4 l8 }

  35. 7 V: H6 s* _2 c  i" q) r/ p8 Y0 T
  36. #include <mach/memory.h>+ E; U( A5 W# r6 J, D& D9 n
  37. #include <mach/hardware.h>3 L  B. H  G$ `3 z: I/ c. ?
  38. #include <mach/irqs.h>
    7 Y+ B# a" \8 z" X' w! q7 Q7 H
  39. #include <asm/hardware/edma.h>6 G5 w; M! ]# e3 J7 a8 f# q/ O3 i
  40. 9 m6 K' W! P( R
  41. #undef EDMA3_DEBUG
    2 E/ Z/ t3 N5 T5 O6 Q/ {
  42. /*#define EDMA3_DEBUG*/0 |: [+ m9 F% X0 O7 ^

  43. . {3 `/ l" B. z! }" n' q" N
  44. #ifdef EDMA3_DEBUG7 T4 j5 F* g/ P& k8 H1 Y/ T- _- r
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    , u. a- H( _$ H( u
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)6 ~( V: M  o% E8 i
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    # C+ P/ V/ z1 j9 c; g" b, [
  48. #else, l- `- p! a+ P
  49. #define DMA_PRINTK( x... ). }& B# i) K0 g
  50. #define DMA_FN_IN
    . _7 E8 m3 P% l3 m
  51. #define DMA_FN_OUT0 v6 C2 I( e2 Z, T! _) U
  52. #endif; v1 ^+ E- B9 K( O6 N7 b6 u0 w8 n
  53. ! X/ d; T% t5 O$ d
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    % p+ J1 z, A7 e& I
  55. #define STATIC_SHIFT                3
    2 L# i( t. w3 t2 a5 `& h% s
  56. #define TCINTEN_SHIFT               20
    3 j$ r! j/ Z1 w2 ^, P. _
  57. #define ITCINTEN_SHIFT              21
    2 I  r" |# k9 v( j
  58. #define TCCHEN_SHIFT                22
    6 E' r" X! _: O. l+ e
  59. #define ITCCHEN_SHIFT               23# H, N) s4 i+ f

  60. 9 r" j7 F( B' K( X! f6 C
  61. static volatile int irqraised1 = 0;7 G  ^  U7 T/ X; y& i
  62. static volatile int irqraised2 = 0;8 k- i- b/ j- q$ w- H# A8 F

  63. * N5 R; R& E- D! G
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    - i  z( C1 `& W( y0 M
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);/ T7 T+ \3 U1 {
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    : h" \% b# U) ?2 c

  67. " I( r! }- n6 O5 y4 m: d4 ]# e  P
  68. dma_addr_t dmaphyssrc1 = 0;
    ! q* N, Q/ q" H1 O  S1 D
  69. dma_addr_t dmaphyssrc2 = 0;% O* V) ^% E- W3 W$ k( m
  70. dma_addr_t dmaphysdest1 = 0;
    4 ~' m8 @, Z5 J2 x
  71. dma_addr_t dmaphysdest2 = 0;7 t% ?* S8 ?% u; i

  72. - |5 ~9 c; n, _: I* X, U5 w6 L
  73. char *dmabufsrc1 = NULL;
    3 F: [4 N. N$ ?" W& d# x8 g
  74. char *dmabufsrc2 = NULL;5 n0 D% ?5 B2 ^
  75. char *dmabufdest1 = NULL;. v8 E. ^: }4 [/ _
  76. char *dmabufdest2 = NULL;
    * ?; S5 m+ y2 h

  77. ( G) B; E; b. N$ f
  78. static int acnt = 512;. p$ L2 F" ?6 S6 C
  79. static int bcnt = 8;
    ; d6 k* N0 ?5 Y% T4 j/ X
  80. static int ccnt = 8;
    2 |- x$ u% u9 K. |( {* N  v

  81. ' z: a; N. F) l- E1 O
  82. module_param(acnt, int, S_IRUGO);
    , ?' \" X7 j* I, V* C6 J
  83. module_param(bcnt, int, S_IRUGO);% J$ O9 a' P3 x7 @( O) I1 G
  84. module_param(ccnt, int, S_IRUGO);
复制代码

; Y, x  h) k6 R/ m# S+ W0 ?9 \( R7 r" `$ @2 V2 w; i
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
4 f; \0 F0 o+ Harm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
, T  H1 L  l! Z8 r     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。% C0 B1 [0 O/ A& b' f2 @
$ F& P! v$ F. q9 o  J7 i) X

/ C7 u: y% P: Z1 K% m! @9 I
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-7 19:54 , Processed in 0.044162 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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