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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 , a; r4 c) ~' @9 K+ q1 x
  1. [code]EDMA sample test application
    5 I0 R+ U" }& i% ]" V
  2. /*" t" M$ p9 ]3 h* {: x9 |
  3. * edma_test.c. B, O$ Q, _/ I$ G- J9 i
  4. *2 K$ u; F  x: x3 u
  5. * brief  EDMA3 Test Application
    8 X6 n/ Z1 n; b& }9 t" \
  6. *
    . C, S) f3 @: K) E; N# |- _( U
  7. *   This file contains EDMA3 Test code.
    / a/ b" L! \$ j$ J3 T# |& }* a/ Q: p
  8. *
    . w# |8 X5 @' i7 e  }
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE1 Z" C+ O# ]4 B: _( M& J
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    % g4 X$ h' j! m! x8 K4 T" m' P
  11. *         TO CHANGE.
    ' ]+ X6 i: s2 }" \+ ~
  12. *
    + {0 ~9 H# r* e8 O
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/- e& t' }& q; o( m3 l* l. ~8 A* G
  14. *
    - V7 o7 {3 {5 L6 I1 J) W- `; D
  15. * This program is free software; you can redistribute it and/or. [: t! V, G$ g( Q% j- k6 o9 @
  16. * modify it under the terms of the GNU General Public License as% r* ]2 q& u2 K: y0 P8 f
  17. * published by the Free Software Foundation version 2./ B% e2 s4 c; r+ T/ Q
  18. *( L- w& e- ]2 J
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any- n9 A! S& ^) E# u* w& i/ T, R$ o, J
  20. * kind, whether express or implied; without even the implied warranty' {6 ~/ q7 D/ G; z' G" l
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  z8 J, M' [" b0 }( w  e) \. t
  22. * GNU General Public License for more details.! L# w/ _4 a' L) S  \
  23. */+ P3 A4 w4 z& y# q  H' ?

  24. ; l2 s: v  \0 F+ N, }
  25. #include <linux/module.h>
    9 B( `9 v4 ?* x* j3 J9 F
  26. #include <linux/init.h>
    3 A8 p) Y' k" T$ {; b
  27. #include <linux/errno.h>9 k5 G, f. q& ]  t
  28. #include <linux/types.h>
    ' ~' y' X, H; @5 d: c
  29. #include <linux/interrupt.h>
    3 @# Z8 {' w3 H; Y
  30. #include <asm/io.h>
    , _4 a4 r5 I2 @
  31. #include <linux/moduleparam.h>: A1 J8 d' A5 A3 n
  32. #include <linux/sysctl.h>
    * `( a9 M7 N4 @/ m( C' p
  33. #include <linux/mm.h>
    ( a4 o8 {+ D+ W' g+ l$ D: d! T
  34. #include <linux/dma-mapping.h>4 @. s0 g8 x: F9 I9 f4 f6 T: m
  35. 1 S3 O( V; s4 D
  36. #include <mach/memory.h>
    1 s3 J9 W# E$ t8 d) g) R7 G
  37. #include <mach/hardware.h>
    8 T% k/ N' ^7 X/ c0 k
  38. #include <mach/irqs.h>
    6 o3 c2 C) J3 `
  39. #include <asm/hardware/edma.h>
    8 U$ x4 X6 T* L: G+ v* U+ T; m  \
  40. # S4 c+ |* y8 y9 d& i) W2 i/ A
  41. #undef EDMA3_DEBUG" {/ T! m+ M  G. [6 J
  42. /*#define EDMA3_DEBUG*/4 r% e3 p1 \8 P) k( `; _: B$ j% e
  43. % B  s0 j) w* u
  44. #ifdef EDMA3_DEBUG5 C% F7 d! D& o$ u9 u- g( {) {
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)2 m! n5 I9 f  x1 w3 M
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    3 M, @# l$ c- h( O
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)8 v1 x8 q: G3 _
  48. #else
    0 |5 E: i# B/ y" _' o
  49. #define DMA_PRINTK( x... )" Y; t3 j6 {: c: d, b% M
  50. #define DMA_FN_IN' Y/ t+ ~2 S4 [: q$ U
  51. #define DMA_FN_OUT
    ) I' U9 {) A+ s* P: F
  52. #endif
    7 M3 {- Q1 K# g8 I6 P, o5 i% W

  53. " e; k$ q8 t0 @& G1 K2 S5 F
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    : K7 D3 ]! @3 l" r' d
  55. #define STATIC_SHIFT                3% }8 W4 H: H' M! |
  56. #define TCINTEN_SHIFT               20
    1 k0 i- P  K: Z' }8 s$ L2 W+ A
  57. #define ITCINTEN_SHIFT              21
    4 ^8 S9 N& F% i" U  v, F  c: }
  58. #define TCCHEN_SHIFT                22
    6 @" K* X/ _' e4 ]. V- O- _
  59. #define ITCCHEN_SHIFT               23; P% A% E" R7 x* L7 z- K. V

  60. ' N" Y( a2 O" e9 B, p8 l9 P8 I
  61. static volatile int irqraised1 = 0;
    : V6 X& S2 i+ z, Q$ M& j/ {
  62. static volatile int irqraised2 = 0;
    , S4 z! z5 n) i

  63. ' `$ p" O* F( M( q2 X
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);. p6 t8 \) S2 s, v7 z1 v
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);7 ~$ |) L$ b: z2 R* v8 q1 k' k
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    6 [0 p# u2 I. p: b! P
  67. . M5 j# M' ^3 e
  68. dma_addr_t dmaphyssrc1 = 0;7 x5 O$ I6 |+ v( F7 R
  69. dma_addr_t dmaphyssrc2 = 0;6 M9 O! }$ I' v7 F# ]
  70. dma_addr_t dmaphysdest1 = 0;
    " M, z8 w! Y# }
  71. dma_addr_t dmaphysdest2 = 0;
    " Z' n: m/ u/ Z) {2 t

  72. 2 X- U4 }2 Z! M4 ^- b/ a
  73. char *dmabufsrc1 = NULL;4 E; [0 r1 y( l  X9 l
  74. char *dmabufsrc2 = NULL;/ t4 j! o. o3 d
  75. char *dmabufdest1 = NULL;' {/ H+ F. K9 _9 o" o; J3 Q( N  }
  76. char *dmabufdest2 = NULL;
    6 S9 s1 d& m9 L! ^* \* M$ P: F

  77. ) C$ u# t% s3 M  R
  78. static int acnt = 512;
    3 D# v$ e4 _+ Y0 F# T
  79. static int bcnt = 8;0 }( u% ]4 V; D4 I1 j& @3 i
  80. static int ccnt = 8;+ r7 T( c2 D; d* e8 k
  81. # \& e; |5 J2 Q# p
  82. module_param(acnt, int, S_IRUGO);
    $ `3 b$ n! n8 k; {( J# ]
  83. module_param(bcnt, int, S_IRUGO);
    7 n7 q5 q  y+ P) k$ j9 Y
  84. module_param(ccnt, int, S_IRUGO);
复制代码

3 r0 \, g1 I3 ~5 I0 Q( J8 d8 y, _! a* r
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
7 O6 z* A' Y$ V8 rarm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
. S5 |, v' S+ ~+ u8 }     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。6 [- e4 l3 V* f

/ ~  t$ ^+ D* U9 f) q
$ k/ ^0 ^; N- H, G0 v$ R( N* p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-13 13:03 , Processed in 0.040089 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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