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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 6 c: u" n% }  m2 T* ?
  1. [code]EDMA sample test application& H' y4 j1 @& q( p1 z+ j
  2. /*" B: o2 y+ _% w7 q3 w1 j5 h2 m
  3. * edma_test.c* J! w1 m  Q# }4 B, t
  4. *# r4 X, `4 j3 q; ?+ Z  y  c
  5. * brief  EDMA3 Test Application
    ; d/ t- y9 P# i: G8 Z+ c" F4 d
  6. *
    ' [" U( q5 }8 I( y7 Z: o& a+ q
  7. *   This file contains EDMA3 Test code.
    4 H1 ^* r! A' {* r* M; B
  8. *$ w; j0 R3 P7 }& f0 A. q, a$ ]
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE; S! A1 y* P" t0 A/ [
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT7 e0 `$ o# b6 E9 g" w
  11. *         TO CHANGE.
    $ k3 u. F2 ^  k
  12. *
    * `2 Q# F9 q0 b# h7 V
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    ; K9 E$ B5 Y% s
  14. *
    5 P$ W1 a; D% P, x& a
  15. * This program is free software; you can redistribute it and/or
    6 P( i) d3 i# i% j
  16. * modify it under the terms of the GNU General Public License as
    : B$ Y) s4 z9 N% M: y! b
  17. * published by the Free Software Foundation version 2.9 @( _+ t4 X& o+ M
  18. *4 H+ a3 P3 Q# p7 H3 O
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any5 O) ]2 I; v7 V7 w$ Z
  20. * kind, whether express or implied; without even the implied warranty
    ) e( L8 I6 @, f( S9 a
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the; `& z9 y( ?7 H1 \, ?
  22. * GNU General Public License for more details.
    7 V$ l. G/ z) e" d# ]7 q
  23. */
    9 E! G2 [1 \4 _" y4 E' {3 Q5 F. y
  24. " D  ~* c+ v& [% V2 ^, T
  25. #include <linux/module.h>, G* l4 r! m. w  j* W! T' n# X7 E
  26. #include <linux/init.h># g5 K& X+ y' ]2 }+ |" J
  27. #include <linux/errno.h>) n4 u  ^3 D* r- R2 S" Y& u/ m
  28. #include <linux/types.h>, @" |: S& J! u7 A2 j
  29. #include <linux/interrupt.h>
    + \! |& i1 E7 l1 }# a8 S
  30. #include <asm/io.h>
    ) N% [5 c1 z8 W0 `, @
  31. #include <linux/moduleparam.h>
    9 i( x3 ^5 L: J9 X
  32. #include <linux/sysctl.h>9 ~2 n9 B/ [" R7 R" s3 \2 x
  33. #include <linux/mm.h>
    : l. A7 I0 H2 F6 g4 ]1 J3 v2 h
  34. #include <linux/dma-mapping.h>
    + }! ]3 [/ Y+ G4 G
  35. 2 f: b( P' @- {* ~
  36. #include <mach/memory.h>1 R- e& w/ J- Z6 {! S7 w
  37. #include <mach/hardware.h>
    * {  C, T5 a- V
  38. #include <mach/irqs.h>
    " u' ?  E% L# T' O  C% \
  39. #include <asm/hardware/edma.h>
    - t9 F9 x* o' Y& t7 d4 l. F. l) k

  40. + s6 w: C' t, p' B; u; Z; F9 ^
  41. #undef EDMA3_DEBUG0 I" W) s* n! H  Z+ y6 r, G
  42. /*#define EDMA3_DEBUG*/5 ]0 D# J  o3 ?- C* {3 d( v2 p1 l

  43. * p8 d. o$ _, |4 K
  44. #ifdef EDMA3_DEBUG7 n3 t! k! \' r# w0 G0 q
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    / y- H. z- r5 i
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)5 c; A6 Z1 o  w' {& h
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)( M+ C* ~& L! \- m9 y! K6 j
  48. #else4 ~7 g, X/ s. i! [1 E( z" v
  49. #define DMA_PRINTK( x... )0 B0 k6 C2 g$ A: Y5 U
  50. #define DMA_FN_IN
    0 x  p" R: `9 {0 }: b
  51. #define DMA_FN_OUT- t9 T, l+ [3 ^  e
  52. #endif: f0 a& ^9 c* z% A
  53. 1 B" O  M) b1 Q" B
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)# E9 ^/ `7 z$ |4 U. \  i: X
  55. #define STATIC_SHIFT                3* U* E. D5 Q8 l8 w: x
  56. #define TCINTEN_SHIFT               20. j" ]1 U' R" \4 |1 R& Y3 a7 g
  57. #define ITCINTEN_SHIFT              21
    ; d$ h1 ^; A; s/ f  T. L/ _: u* M
  58. #define TCCHEN_SHIFT                22
    5 W! F& V- ~" C7 A" v
  59. #define ITCCHEN_SHIFT               23; l) F( S) e4 g

  60. ) e  l: q& j7 R2 G3 u1 {; k; |: F
  61. static volatile int irqraised1 = 0;8 u% s$ v* M! t4 ~
  62. static volatile int irqraised2 = 0;
    8 X/ G3 P. |$ S2 h9 l8 ?# i1 g

  63. * N) v9 @. F6 c! D; k6 J
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);, N: p, \: {* g* I% k8 x
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);9 P$ C, S# e; Y- z; @
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);# H+ S" H+ d! K

  67. " y( ^& ]8 {6 E& U$ s1 e- N6 H
  68. dma_addr_t dmaphyssrc1 = 0;$ [2 T: Q' k+ L3 _
  69. dma_addr_t dmaphyssrc2 = 0;
    & b# u3 A( o- A, [4 Y: q3 K
  70. dma_addr_t dmaphysdest1 = 0;0 s+ a+ J8 Y2 r8 p0 @
  71. dma_addr_t dmaphysdest2 = 0;
    ' K8 ^  {6 E  u0 m# K5 {
  72. 5 d3 K' ?2 G3 p% \$ J- S
  73. char *dmabufsrc1 = NULL;
    * s; U. l6 I! j4 t3 M
  74. char *dmabufsrc2 = NULL;
    1 w9 E: Q2 P7 @* i8 I- }# f
  75. char *dmabufdest1 = NULL;
    + `: t9 m, H0 A, e& L
  76. char *dmabufdest2 = NULL;; i2 X' O* {: S5 F+ V" F! e* w

  77. 9 c8 Y3 z( ?  h1 Q
  78. static int acnt = 512;
    % `' H* l" I( T  ?: y9 I6 g
  79. static int bcnt = 8;2 W7 H# [$ d9 Q0 L, m4 E
  80. static int ccnt = 8;
    ( r. i9 ?, S; `0 P9 A, {) F  T

  81. 2 K5 C' e5 T9 d% h5 k
  82. module_param(acnt, int, S_IRUGO);
    ( m7 i7 Y* F! `/ y
  83. module_param(bcnt, int, S_IRUGO);/ \) j0 M. @5 f& h! @. [6 K
  84. module_param(ccnt, int, S_IRUGO);
复制代码
' o; b$ T* v' [! Q7 B9 S; a0 o6 Y

# {! k( K: e9 Y$ |, ?' ~2 H( N      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用1 u+ w. G* P: E. `
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
8 |, m1 A/ @) {1 W# C9 n     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
! h: j. c8 e8 ^+ B: d2 x. Q8 F# V( @$ j: o! d

7 R% H) F# A. x/ V) ^1 U& _0 P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-11 06:39 , Processed in 0.039704 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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