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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 , x$ r( _) h1 n6 h
  1. [code]EDMA sample test application
    2 k; i; s7 j+ n* I# g  i, N, I6 s
  2. /*
      A) D# c) o& T& S% z" F, p  p
  3. * edma_test.c
    - ^( j" U0 e; F* }8 [; Z9 i3 K. a
  4. *4 t# K! f2 v; S
  5. * brief  EDMA3 Test Application' F- k" S5 d8 _/ s! _- V/ t3 u
  6. *
    9 D/ M) h; h! P# n- e; B
  7. *   This file contains EDMA3 Test code.
    7 C" L% G2 p& M' J
  8. *
    8 @7 _5 Z+ R1 U; l# l4 J/ t1 k
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    & i/ B2 E% x3 r8 d
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    ' s. e( N  i: k( _, N" a
  11. *         TO CHANGE., F, E  H* d) c2 b1 i& z6 J
  12. *
    % x) w9 Z: z- G2 |4 }8 b
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/. _9 F) h9 i) }) s7 y) W2 I
  14. *! k& a5 R% z& t, _
  15. * This program is free software; you can redistribute it and/or; \9 E3 v/ B& H  C9 W  q
  16. * modify it under the terms of the GNU General Public License as
    ( M& ~8 d* N; [$ s
  17. * published by the Free Software Foundation version 2.
    ' B5 @9 h% \! O9 S/ u) d
  18. *
    ' r( E0 U( d. W0 }
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any; x% C! P- ]* l- c# [8 w- s  l
  20. * kind, whether express or implied; without even the implied warranty
    % v  v( e1 z, G  H
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    / q% G8 K) N; ?: ?! u" d, r: j
  22. * GNU General Public License for more details.
    7 Y/ u5 C5 u3 F8 Q9 l
  23. *// r* ^$ ~9 p: ?0 J  Y

  24. % e$ K: T# }% Z" _& r4 |
  25. #include <linux/module.h>$ H5 e# q) X, E
  26. #include <linux/init.h>
    5 v3 \/ e1 H. G' L! q4 n( z& i& B
  27. #include <linux/errno.h>
    ) q6 D- Z* t) ?' K/ v
  28. #include <linux/types.h># ?5 N2 t1 t4 @- i" n
  29. #include <linux/interrupt.h>
    7 O+ N/ z  ?6 }9 @8 \7 Z0 D
  30. #include <asm/io.h>
    6 {9 f* w, `& {0 u- F
  31. #include <linux/moduleparam.h>
    9 r$ j  K5 q! c7 M! w) S! o& Y
  32. #include <linux/sysctl.h>- S$ K  O6 x" u1 g' v0 T
  33. #include <linux/mm.h>
    ' X% P& d7 Q, P. w
  34. #include <linux/dma-mapping.h>( _$ q# b% C9 h" l
  35. 6 d$ \/ P' Z% Y4 M5 b! }
  36. #include <mach/memory.h>
    7 q- m/ |+ c9 z1 K
  37. #include <mach/hardware.h>
    ( P) C  A& D3 R1 U
  38. #include <mach/irqs.h>
    1 `3 _6 {6 R1 r5 W
  39. #include <asm/hardware/edma.h>9 }( L6 q1 ]: r3 Y: W
  40. # y8 |" R* i4 {% s
  41. #undef EDMA3_DEBUG1 B0 ~; {1 z/ a. K) h' k# N4 l& ^
  42. /*#define EDMA3_DEBUG*/4 }# j2 U2 d8 y+ a
  43. % N8 V3 _4 v- B: G" S# c
  44. #ifdef EDMA3_DEBUG
    : I; b* s5 h3 F3 S9 `9 C# ^
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)$ }4 V2 w9 o3 g5 Q6 k4 m/ g
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)/ ?* u% {/ E: F# H& l" x( _2 q$ n- C
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    3 r8 G% s! x/ B0 ~
  48. #else7 J/ e$ `1 h8 r: n) N% m* S
  49. #define DMA_PRINTK( x... )0 [3 o# h( U% F0 N/ I5 q) v
  50. #define DMA_FN_IN
    & R3 T6 u, `- x9 R0 ]
  51. #define DMA_FN_OUT$ o( U7 \7 p( q( w6 |) m% ~
  52. #endif
    3 i8 X2 D' x) X9 R' |) z

  53. ; Z( u+ A; f& T) {/ Z3 G: k
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    : \7 i3 D* T" P3 c3 M" {0 v5 p0 ?, U
  55. #define STATIC_SHIFT                3& A5 [1 c, y, l3 ~
  56. #define TCINTEN_SHIFT               20
    ( i2 v' _+ H: F- A: a. F
  57. #define ITCINTEN_SHIFT              21, d. |6 C$ a/ x5 G% ~
  58. #define TCCHEN_SHIFT                227 X& ^& w) j2 R+ W1 Q4 X" y
  59. #define ITCCHEN_SHIFT               23
    7 _+ u2 X  {; e: _7 J& L
  60. + {6 R9 m  [- k% o: k
  61. static volatile int irqraised1 = 0;  N+ K- `3 j9 ?' V6 b
  62. static volatile int irqraised2 = 0;
    " L: N$ j' A& F7 q- o# {2 ]

  63. & W3 A5 @7 Q- j$ [% M
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);2 C; Z- T( Z9 }8 [$ i  W
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
      }+ {; ?( u" r% C! `* K; L7 E# f
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    / S) q4 L" `5 g
  67. 9 s  x/ X% N$ `6 l
  68. dma_addr_t dmaphyssrc1 = 0;
    ) G4 Q- G  B0 L$ I; l9 J/ O
  69. dma_addr_t dmaphyssrc2 = 0;/ e0 s4 d) A) t' o
  70. dma_addr_t dmaphysdest1 = 0;, O8 E8 l( [* s  s; i+ G
  71. dma_addr_t dmaphysdest2 = 0;+ x0 C2 J( K2 Z; O7 I! B
  72. 0 p( x7 h0 ^2 |7 G
  73. char *dmabufsrc1 = NULL;
    4 Z6 k3 e9 Q6 l
  74. char *dmabufsrc2 = NULL;
    * J0 o; v& ]' @, `+ a
  75. char *dmabufdest1 = NULL;5 R/ o0 E1 I- ^" ?
  76. char *dmabufdest2 = NULL;0 v: z. ]& z; k* p1 m1 i

  77. ' a/ Z- W+ h! ~9 j5 o
  78. static int acnt = 512;
    % i: `3 x6 |8 Z: p
  79. static int bcnt = 8;
    - x( A2 `: {. u
  80. static int ccnt = 8;( N% K& A) F& h

  81. / @" @6 A1 C/ i; N9 q
  82. module_param(acnt, int, S_IRUGO);
    0 F! I* l7 G$ X
  83. module_param(bcnt, int, S_IRUGO);/ w% ~/ o! O" F  m" n/ u& X2 n4 b
  84. module_param(ccnt, int, S_IRUGO);
复制代码

) J# J5 D- K5 X) l- A5 k. F
) k% o2 f. A! g7 u3 j      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
, S7 V- N/ x" U- h( qarm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。! |; h4 a+ s: q; [9 {5 o
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。3 ^$ U/ D0 w+ k) x

1 A/ ~- ~* L8 L2 J5 q
' S: B% I# S( A$ v) R+ k, p! @
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-6 01:32 , Processed in 0.038769 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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