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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 5 ~  x& r3 ^1 K5 R. I8 d' g) T
  1. [code]EDMA sample test application
    2 u/ c7 g% N( `2 k4 c3 i8 O( b' P
  2. /*
    2 U) p1 j- S& u) z% H
  3. * edma_test.c
    + |+ J- [$ i8 J9 o2 o
  4. *, Q) Y1 b* o, ]* g( l# T9 E5 N
  5. * brief  EDMA3 Test Application
    : D+ q; B$ ~% D2 X
  6. *# Q% q9 s% X' G
  7. *   This file contains EDMA3 Test code.  i" }+ U5 [1 y- k7 ]& \# ~5 o
  8. *
    , I+ ]8 n* @$ g( F4 E. N
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    + N2 p/ x( E  l8 N$ f  F, T
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    ) V* p3 _6 t" [# y# z
  11. *         TO CHANGE.
    / d. b) q+ r( d/ o+ M0 K2 n
  12. *, R/ V, ~6 A, e% s+ x/ K, o
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    3 {% N* D/ Y4 y0 {8 C9 @( Y/ t8 X
  14. *3 v( ^) l: m6 G/ |* ^
  15. * This program is free software; you can redistribute it and/or
    # x( J7 v5 s  W/ \" \- W7 ^7 k
  16. * modify it under the terms of the GNU General Public License as3 m6 j' m$ v1 [8 T
  17. * published by the Free Software Foundation version 2.
    ! s4 U# y* m# D1 i6 U- H$ Q
  18. *
    / ]$ Q1 U& w3 J, l
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    5 t" t$ h/ r3 O4 V& R
  20. * kind, whether express or implied; without even the implied warranty0 V8 I1 D. ~# G: {0 D, N( S5 ~5 @
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    # S% O% p) O4 [- t- C$ o
  22. * GNU General Public License for more details.
    ' C3 D' L, ^4 V7 x
  23. */
    8 y5 t! H- d7 p6 q0 R/ K
  24. 1 F# o; Z4 R6 e( y4 X
  25. #include <linux/module.h>
    ) `, [" M( i5 z$ P6 \
  26. #include <linux/init.h>: F6 u7 `; [( R: u( P3 }0 e, {
  27. #include <linux/errno.h>
    / b& f9 C+ e3 s1 u, ]- ~
  28. #include <linux/types.h>6 f6 _7 Y! c' u/ ?1 {
  29. #include <linux/interrupt.h>2 m( K/ K) |' _
  30. #include <asm/io.h>
    + e- _- y9 }! E4 p
  31. #include <linux/moduleparam.h>
    5 O& t8 P% h; m- R  H
  32. #include <linux/sysctl.h>
    3 Z5 M5 c: C+ D+ C3 r' d# Y% R. ^
  33. #include <linux/mm.h>
    * x/ E# l. S& r% J6 ^9 i% H, L8 {
  34. #include <linux/dma-mapping.h>
    ! u& X  h5 i7 l! `
  35. : v; |  O# O* _; m
  36. #include <mach/memory.h>
    8 g# D. n, w5 l7 [: \; a* \
  37. #include <mach/hardware.h>( G1 {- A  \# Z9 ?
  38. #include <mach/irqs.h>  T5 E% G: {% ^; }8 ?% @
  39. #include <asm/hardware/edma.h>+ q8 C( L$ c8 x7 m
  40. ' B/ d& R" J6 W
  41. #undef EDMA3_DEBUG
    & z, _( w' c- `1 c+ k
  42. /*#define EDMA3_DEBUG*/& I4 j% I4 K8 \$ X0 u* W  q; M

  43. % K. I7 D3 A; b
  44. #ifdef EDMA3_DEBUG
    ! ?1 L7 i! S) _( g% K
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)7 U- n& C2 v' Y( a! n/ e* F. n: x
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)  o0 U7 V# G: p1 B& F# |% V
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    ! ]3 B( g5 i$ J" R- D
  48. #else3 B1 s2 i7 G+ W* N' [/ ~
  49. #define DMA_PRINTK( x... )
    $ f5 |$ e3 Q/ Y2 K  Q1 v5 Y% m
  50. #define DMA_FN_IN1 |( m, F+ i2 L. u) p
  51. #define DMA_FN_OUT
    : i; k& }% g# X" n) {$ ]
  52. #endif  e9 z. R& b" ^4 k# i
  53. ) e# X# l" D2 w: l7 `" c% L
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)8 }# ~! M( v5 N
  55. #define STATIC_SHIFT                3
    & `9 Z, D4 l: v4 @0 o, \, T2 U3 Z
  56. #define TCINTEN_SHIFT               201 D' x/ I2 [; q5 q
  57. #define ITCINTEN_SHIFT              216 w' f. `" p1 i) E$ H; X
  58. #define TCCHEN_SHIFT                22
    % C: X- K  y) [) k
  59. #define ITCCHEN_SHIFT               23+ L0 U7 S& m3 D1 K1 X; H& _! e/ N7 B
  60. 4 x$ z: H( U$ {! H% G6 Q
  61. static volatile int irqraised1 = 0;0 [& p: `4 j" p; {1 G6 d' w. I
  62. static volatile int irqraised2 = 0;
    * ?% l5 z7 Q6 S. i$ D" [3 b

  63. 0 \. J/ F( C+ h  W
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);& G6 W$ _4 O- x: i7 G
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    + }- k3 `! G8 B0 U# S( c+ u0 a, u1 I
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    # [) c$ X( `: Q& {% _

  67. 4 O+ _" q1 U" Y$ v6 [
  68. dma_addr_t dmaphyssrc1 = 0;
    4 t! b* o$ `: B- ~/ e
  69. dma_addr_t dmaphyssrc2 = 0;
    7 s  d; j5 h3 D0 O' Q0 S
  70. dma_addr_t dmaphysdest1 = 0;
    1 W; F% `0 o' L' I; F
  71. dma_addr_t dmaphysdest2 = 0;
    + d; |, a$ g1 H
  72. & z( V( |+ S* z) H3 I5 _, s
  73. char *dmabufsrc1 = NULL;1 T1 x& B7 Y: Y# }9 X+ O- F
  74. char *dmabufsrc2 = NULL;. t1 y9 z+ `" Y! a
  75. char *dmabufdest1 = NULL;
    2 w6 m( f4 C" [9 @; K  |7 L' G1 i6 E
  76. char *dmabufdest2 = NULL;' A( p, G6 s& v- P

  77. 7 d  i; t4 B- T/ Z+ Z% g
  78. static int acnt = 512;; K( [$ P/ k6 i# n  q( z- N0 _1 K
  79. static int bcnt = 8;
    3 [) d' J: E' X3 V
  80. static int ccnt = 8;
    5 l6 O* |# A2 F4 j' T* E% ~

  81. 5 p$ i' R0 H) P- l- c
  82. module_param(acnt, int, S_IRUGO);- L, O/ x7 B  _9 ^! N% e5 u
  83. module_param(bcnt, int, S_IRUGO);% @- \- [8 m% A; S/ x# I
  84. module_param(ccnt, int, S_IRUGO);
复制代码

4 o* r. B; o+ t: Z
0 Y& ^4 H- C+ e  D- o1 C2 c- |% ^/ f. o      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用* S: m. r2 n- R0 R
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
5 }" l, z1 u% H" j; {) ^     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
) |0 x1 M0 V5 @& w& ~& G$ _5 r. B3 F

; i, V# r* C( H8 @. I5 s# `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-3 19:02 , Processed in 0.037826 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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