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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
/ w2 h2 m! y/ ?$ `. I* w; q
  1. [code]EDMA sample test application( h" |- [1 W. J* ]' U' w
  2. /*
    * R9 X) z* x( e: \3 u
  3. * edma_test.c
    0 ~6 t* N$ c* M5 u; t
  4. *! {7 S/ O/ P6 l! r# K6 c5 Z$ `
  5. * brief  EDMA3 Test Application+ y, [- L2 x( g0 X' }
  6. *8 o; a: ^3 s, s% I( r% q4 B
  7. *   This file contains EDMA3 Test code.6 n5 D) A3 q/ }  u
  8. *
    * N: @0 }: \! Y0 R1 d# j
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE# h5 Z4 Z- j  B- E0 I0 C
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    + h1 _/ }' o  z8 d* u1 u
  11. *         TO CHANGE." K, g( |' v) D9 [7 b  D
  12. *
    & t. E0 w; }0 Y2 A9 _
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/0 P, e0 G' _5 z
  14. *
    ) W0 ^5 |( Q. G1 I8 F
  15. * This program is free software; you can redistribute it and/or# I9 C- S" e/ i' ]3 w
  16. * modify it under the terms of the GNU General Public License as% q6 y# o& }) u& u5 n. M7 B
  17. * published by the Free Software Foundation version 2.
    4 L9 o! C& e: S, j6 n
  18. *
    3 `" t4 O  q) }+ L0 n) ]; b
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
      v2 {7 E7 N+ O2 ]7 t) W( \- n
  20. * kind, whether express or implied; without even the implied warranty1 m9 `6 N9 R) J5 ^( A
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    6 z/ B1 Z0 k4 x7 ?: [/ g
  22. * GNU General Public License for more details.
    4 w" {5 U: I3 X! A. D! x
  23. */1 Y3 q2 p  ?; w8 Y
  24. ( i+ B, h; i" T4 h9 x1 i
  25. #include <linux/module.h># d0 D' A2 s  D3 d
  26. #include <linux/init.h>
    1 ?  N( R- U) T3 U$ u+ Q- |/ G
  27. #include <linux/errno.h>
    0 M/ f1 h3 [* k$ r) g5 i5 J
  28. #include <linux/types.h>
      o8 O' O: H2 {0 @3 t* A
  29. #include <linux/interrupt.h>
    " Q; e# _1 Y4 k! F# I# e6 _) q
  30. #include <asm/io.h>4 M' u. ?1 ~. t* J& Z, q
  31. #include <linux/moduleparam.h>
    $ V( }8 q; y4 [- a/ `7 Q
  32. #include <linux/sysctl.h>4 V9 e6 W, T1 g5 E+ I$ Y% B9 X9 n% [
  33. #include <linux/mm.h>5 `6 q( l9 c; ]1 Q6 B+ [% R1 _  t  I( }
  34. #include <linux/dma-mapping.h>
    + L3 k& k' z+ {3 E2 _
  35. ) U! [& k6 e6 F0 O3 ^
  36. #include <mach/memory.h>
    ; \4 a# g. o5 ^# ^' f6 o) T- X- w+ X
  37. #include <mach/hardware.h>$ x( m( T! f. U  c0 x
  38. #include <mach/irqs.h>5 }5 P3 g; Y( i5 g, p$ ~
  39. #include <asm/hardware/edma.h>& B( H4 X: D! e) B; o8 i

  40. - N1 A. ^+ O3 r% [. u* G! K/ s4 o
  41. #undef EDMA3_DEBUG  y" C/ `7 s( l; L2 n% D1 k
  42. /*#define EDMA3_DEBUG*/6 B0 H9 D7 [2 _% j4 P2 D
  43. 0 @& j/ a# |3 {: @8 B
  44. #ifdef EDMA3_DEBUG% O/ _* U* k8 _% m7 v
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)& a* I6 E5 ?  e1 c
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    0 p- B# E" a' r
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)# y) f0 p3 q8 @! ^
  48. #else* C$ w' h3 W, J: S+ [7 I8 {4 K" n
  49. #define DMA_PRINTK( x... )
    $ A8 f# ^; j7 W3 |- A  {
  50. #define DMA_FN_IN
    2 _/ S9 G4 N( k! D
  51. #define DMA_FN_OUT$ B( s* F# ?3 U/ Q/ x
  52. #endif% z# E& D5 Q2 n0 V2 \: f
  53. . D# ?$ D* S" j1 J+ S
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    ' N6 ^! h) A6 N. J
  55. #define STATIC_SHIFT                3  K3 y  s7 i% P+ H. \; h
  56. #define TCINTEN_SHIFT               20' M4 d" y2 i; ^% e+ Z
  57. #define ITCINTEN_SHIFT              21
    , Y# i# L) y2 r/ g5 b8 B
  58. #define TCCHEN_SHIFT                22
    0 O- z! S0 u, P9 c- O, ]
  59. #define ITCCHEN_SHIFT               23
    " G4 ?7 B* [, ^( [  j& f1 x

  60. . r# g2 y) w/ T3 Q/ \1 [
  61. static volatile int irqraised1 = 0;( x  n: s- H' E# X+ I1 x6 O
  62. static volatile int irqraised2 = 0;, i+ @/ ^# I/ {! _

  63. 9 @3 l. q* E' s: C3 ]3 `
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
      x' J5 N3 R6 u' J9 E
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);# R2 R# E) J: Q. j5 \6 a7 F
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);4 }" ]) e; h+ g& x. @6 d
  67. ! H- Q7 Q* K' Q4 j: K
  68. dma_addr_t dmaphyssrc1 = 0;
    ' A3 [5 A# B* \5 j& [  N
  69. dma_addr_t dmaphyssrc2 = 0;
    / Z' c9 ]' P) d# }0 N
  70. dma_addr_t dmaphysdest1 = 0;% v9 R; y' N& e" s% ~* C% z
  71. dma_addr_t dmaphysdest2 = 0;( I5 @/ K) `) ?

  72. + y% `1 l  x8 [9 b$ q% Z" Z
  73. char *dmabufsrc1 = NULL;
    . V% v- B( T3 e' u& m/ b
  74. char *dmabufsrc2 = NULL;2 B" H& a1 I8 L! ]9 A
  75. char *dmabufdest1 = NULL;
    : w9 X6 j8 C6 m* d+ H4 z$ }! P( D
  76. char *dmabufdest2 = NULL;: o' F- D' }% m/ g6 \2 T6 w! [

  77. - w& ^, R, l$ m2 R" p
  78. static int acnt = 512;( m- f: q/ A( k6 V# U; |4 ^# _
  79. static int bcnt = 8;
    ( B0 k& S9 w+ H; [# F- g1 s: y9 ^* I
  80. static int ccnt = 8;+ J* A7 x6 h+ u+ x0 \
  81. * S8 p; E7 _5 A/ ^& x4 K" l
  82. module_param(acnt, int, S_IRUGO);
    4 X  W$ l; r; |3 D" V
  83. module_param(bcnt, int, S_IRUGO);
      {6 v6 t. z0 {
  84. module_param(ccnt, int, S_IRUGO);
复制代码

4 s* ?* E) h  V! V: A1 j+ n
" O) U) j; f# l7 `      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用" i8 h! S9 H" C
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
0 e; i) x1 L5 h2 |. @* o     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。0 }& y/ X( J6 s% {

9 X6 J3 P, {! n# u% [4 O4 z# I5 x* j
* m* R* ~5 K8 k  ?4 m
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-8-3 05:41 , Processed in 0.041464 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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