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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑   `* ], x% m& U1 `5 X; g/ N
  1. [code]EDMA sample test application
    2 ^( G4 S3 {' H9 r" h- x( Q( r- `
  2. /*% k# ^5 K6 X6 E) L
  3. * edma_test.c: o5 T' q. E" v% k6 I' ]
  4. ** c* N. ^. a# Q$ d8 x
  5. * brief  EDMA3 Test Application
    7 g6 }$ B( }8 c) A& L' e
  6. *
    6 u& l+ D. k* ?, V* E
  7. *   This file contains EDMA3 Test code.+ h' |0 r: A8 J) \: V
  8. *- g1 ~7 p. B9 @& P2 c
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE7 ^6 \; t* f# N
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    ( k" V3 ]  T) A# x' S4 W1 C- W# e
  11. *         TO CHANGE.
    ( d$ q# l+ o0 |; c2 L& l! ^
  12. *( n: [/ p$ J) f' l9 Y, c! {: Q
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    $ j: ^, X& H5 K
  14. *
    * N0 `2 e, u( z/ h' `9 d) L& ~
  15. * This program is free software; you can redistribute it and/or9 U0 J$ r" u- ~1 T) ^) p8 [: d
  16. * modify it under the terms of the GNU General Public License as9 p( U/ p" S) g3 F; k
  17. * published by the Free Software Foundation version 2.: t) G8 o, b$ ^. h# s. O; ?( l4 G% K
  18. *. Z# x6 ]) \1 E% C( b: }0 m
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    ) ]9 w+ M- I2 J% k5 l- q: f
  20. * kind, whether express or implied; without even the implied warranty
    * k) q) Q) `8 H' B# C
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    4 W5 B5 N  M0 p, L3 M$ f: t
  22. * GNU General Public License for more details./ Y3 H. d; A$ B* j
  23. */& G) q. d& F! T+ A8 D2 d
  24. - J9 p+ B+ P5 {4 W: Z
  25. #include <linux/module.h>/ T! Z0 B, D( }$ z
  26. #include <linux/init.h>! j' S/ ^) m+ s, h! a" u
  27. #include <linux/errno.h>
    ( ^  W& E; _7 A: [  Z7 G
  28. #include <linux/types.h># `4 ?- j. P# ]* r. a8 O( x$ b
  29. #include <linux/interrupt.h>
    ) V4 I0 |! a3 _7 y+ }4 n4 {
  30. #include <asm/io.h>) `1 O) |: ~* c$ B$ b
  31. #include <linux/moduleparam.h>
    # G' x/ v! R/ T3 [3 u
  32. #include <linux/sysctl.h>. V# p8 h8 F) U( B  x8 B) B# u( j
  33. #include <linux/mm.h>
    1 H3 d" Z0 l5 c8 b+ r( e
  34. #include <linux/dma-mapping.h>6 _8 j/ o' e. k9 L: E1 M

  35. 8 Y7 ~% L, B$ T, n% A
  36. #include <mach/memory.h>8 g: V" Y9 M* }
  37. #include <mach/hardware.h>9 c9 O, w( v6 w; n! G1 e3 o8 [/ u
  38. #include <mach/irqs.h>+ l( A) H: P7 S7 W, a
  39. #include <asm/hardware/edma.h>* g- R2 H0 H. ]0 A+ d9 |
  40. * H& X+ p9 h- O: x1 O
  41. #undef EDMA3_DEBUG
    1 w3 B: d" f% |* `7 D
  42. /*#define EDMA3_DEBUG*/
    - H! L  _1 b3 ~( H$ y" S
  43. - W) `% r8 n* k
  44. #ifdef EDMA3_DEBUG% n$ K3 Y4 U! A/ c4 a  F& r9 u! k
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)* y8 h/ S, @. p( H/ K0 a
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)" T5 A& k' \" M0 H2 p
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    4 |" @' _; W7 n+ A
  48. #else- f9 D3 |) k$ ^0 v/ U
  49. #define DMA_PRINTK( x... )
    ; m1 q* E: S; S
  50. #define DMA_FN_IN
    7 A) {9 A: t0 }- z9 U
  51. #define DMA_FN_OUT+ j2 |3 Y" f8 A7 d' j
  52. #endif
    " F% ]$ g0 {# e$ O' P
  53. % _& _( ]% A+ f
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    3 O8 X+ C$ I" H7 P* V+ I/ w1 F, o6 S. T
  55. #define STATIC_SHIFT                3
    $ s: i8 m6 @8 e; |
  56. #define TCINTEN_SHIFT               20/ r5 Y) N7 i, t9 V
  57. #define ITCINTEN_SHIFT              21
    * ^5 v" G' |% _! W: B: y0 g9 C
  58. #define TCCHEN_SHIFT                22
    $ [& W2 P( ^' D1 F9 I/ R! j# m
  59. #define ITCCHEN_SHIFT               23
    & w. F% c' ]3 Y4 i+ n% m. n( I2 m, K
  60. $ X  v1 M; J/ L! |
  61. static volatile int irqraised1 = 0;& ]6 T7 L( F1 F7 C# a
  62. static volatile int irqraised2 = 0;" ^5 v) [, l# v6 }" J- Z# r4 |

  63. 8 ~3 Q; a: u) r
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ' v$ C( |* I* d( N, _
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);+ V  m6 s. O; C' w& a8 `
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ( ]6 w* Z: K! m0 H. p* b

  67. 0 J+ R& f0 u1 F2 J
  68. dma_addr_t dmaphyssrc1 = 0;
    - r7 u& Y" V3 _; j7 F6 Y
  69. dma_addr_t dmaphyssrc2 = 0;
    ' s  _  m$ t. w/ e
  70. dma_addr_t dmaphysdest1 = 0;, `- P* d% z. C- J9 |( g+ n1 Y
  71. dma_addr_t dmaphysdest2 = 0;/ Y# O! R. B9 G. ~; g
  72. ( F0 w5 @0 _; _* _2 P4 n" ~8 k
  73. char *dmabufsrc1 = NULL;
    & z* Q$ c' D- ]0 N2 A# s
  74. char *dmabufsrc2 = NULL;
    ( G2 R9 p7 \: m+ |" F: d7 I
  75. char *dmabufdest1 = NULL;( C5 B4 D( K$ U& u# F; w! a2 U7 j
  76. char *dmabufdest2 = NULL;# `. G" Z5 }9 n9 }7 w+ k+ f9 @+ o
  77. 6 W5 B# V" B1 J3 b4 M3 {0 r
  78. static int acnt = 512;& O5 `/ K; A. ]
  79. static int bcnt = 8;
    + T4 o. H  T& b% `3 U
  80. static int ccnt = 8;+ b3 ^6 n' n$ q$ v  H

  81. ; H+ G- F" i' F9 z" o0 b
  82. module_param(acnt, int, S_IRUGO);$ ^/ Y' s) s+ E; N$ F9 o' a- d8 R1 ~
  83. module_param(bcnt, int, S_IRUGO);2 T- y5 O7 Z$ ]& C* Q) X! \
  84. module_param(ccnt, int, S_IRUGO);
复制代码

+ x9 f4 W* E1 Y$ V& L7 F
# \5 V% G, O. O4 }      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
0 O( O3 R3 c0 Karm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
4 ~9 n# E6 b2 @5 a7 A4 k2 w0 n     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
* S2 j4 V4 z+ C/ x
' i4 U8 m4 I0 a' y2 u& s) c7 Y% O( a- h# U( B: g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-28 14:29 , Processed in 0.046059 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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