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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
* d" O  i9 X6 f2 W' s4 |
  1. [code]EDMA sample test application
    8 N- W0 a" }7 r
  2. /*; J, W/ H: \) t; a: B# U
  3. * edma_test.c
    1 r& J) @. [. U0 I7 K! \# I( ~7 y9 r
  4. *! ?8 z7 X# ^$ P6 T+ T
  5. * brief  EDMA3 Test Application
    # _" ^; t2 L$ ?) K: g" U1 u' X6 |2 ~
  6. *' a& d9 d! W- w' Z- X& D
  7. *   This file contains EDMA3 Test code.  G, m3 f! d* Y1 ]# q$ ~
  8. *
    4 q. i. t9 ^9 C1 x! Q& O- B* x
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    : k' k7 J2 |' O1 P% p
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    0 T  H. H5 O9 Y% ?# p5 e
  11. *         TO CHANGE.4 @* m& w) z/ f. R. w# c' a  ?2 l
  12. *
    9 T2 a0 a# ?: k# H- i
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/, t+ c# w/ P; N3 z" ]
  14. *4 A) C, x+ z4 O( C) `  j6 V  N6 a
  15. * This program is free software; you can redistribute it and/or
    ( u5 r5 e2 S5 }  q' }9 y$ `
  16. * modify it under the terms of the GNU General Public License as
    0 q( n; }3 m0 G: F, y
  17. * published by the Free Software Foundation version 2.
    ( H0 T- o. F# r4 O& u1 `* v
  18. *) j# c( l" R! p( o4 H( T* l
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    6 }6 \' Q" {  k# v) y4 ^
  20. * kind, whether express or implied; without even the implied warranty
    " ~0 _4 ?$ S2 U) O+ s& [' s
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    ' K2 m: O: v: F4 E* K5 Z2 F5 H
  22. * GNU General Public License for more details.8 N& v) \0 w4 h. }
  23. */3 P# _' K! h$ [5 ^7 ?4 }

  24. 8 s, X) w2 r7 E- C; k( Z# J3 Z' ~
  25. #include <linux/module.h>
    4 q+ v. F# e. a, m
  26. #include <linux/init.h>9 A! {0 Y8 T$ V( u( [
  27. #include <linux/errno.h>% c2 R( [: M5 W4 N9 t
  28. #include <linux/types.h>" s; o) S1 C, J- |' H3 L* I
  29. #include <linux/interrupt.h>: J( _9 s3 c1 ?
  30. #include <asm/io.h>; W4 }9 q5 K& u2 t3 S" R+ |+ x7 c
  31. #include <linux/moduleparam.h>
    3 J" A, z5 \5 _7 x
  32. #include <linux/sysctl.h>- @# o' p- L: Z* n" p! K5 u
  33. #include <linux/mm.h>9 W! u' e1 V" Z3 c4 @/ d  p  y0 G
  34. #include <linux/dma-mapping.h>+ Q- i. ?! `% I& F* [% \

  35. 0 p* [' }9 u9 A! x0 W
  36. #include <mach/memory.h>
    ' k6 v  Q) ]' W9 Z% }
  37. #include <mach/hardware.h>
    ! _' }7 j: z1 Q& P" Z
  38. #include <mach/irqs.h>1 v5 Q6 E% ^. }* _; H, N
  39. #include <asm/hardware/edma.h>
    ! M8 {, @8 h; I8 o
  40. / L2 x% \$ h- D5 E, q
  41. #undef EDMA3_DEBUG6 R0 z6 E% ^7 E0 f5 q4 }, V8 t% M) _
  42. /*#define EDMA3_DEBUG*/
    ; w1 l! M" w& W* E
  43. ) _0 z. p8 Q7 T9 f, l; L
  44. #ifdef EDMA3_DEBUG- p6 N7 t4 L7 B* t8 N4 Z2 l
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)* b- B3 M, Y( ^& A" D+ c
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)1 T+ E6 n0 H4 k/ ?) w7 ^4 B
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    2 |$ J. l( d7 e+ i& s8 W
  48. #else
    ) p  q! d) M+ K7 P: \9 ^5 r! s
  49. #define DMA_PRINTK( x... )
    , Q! Z7 [2 _6 ]) j* a; _4 Q
  50. #define DMA_FN_IN& p% l% J2 t, I/ G) S
  51. #define DMA_FN_OUT
    * z. }" Z" J; q& ~! |- R. G
  52. #endif* q& x: r. O% C
  53. % k0 B3 V7 F1 f- D# [' N
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)% m6 h  J; |2 i, X$ D/ G
  55. #define STATIC_SHIFT                3
    ( m4 w; Y2 d4 c0 I9 ]* l, U/ g; J
  56. #define TCINTEN_SHIFT               206 Y8 ]! |! s' Z! C0 ]! ]
  57. #define ITCINTEN_SHIFT              21# k8 ~3 Y  Q) R- d: k
  58. #define TCCHEN_SHIFT                22# Z3 C  y& ]/ ?8 h+ L% U& o
  59. #define ITCCHEN_SHIFT               23" o5 T- `7 i( c0 q  H( ]

  60. , x% Y5 `6 Z* v9 _
  61. static volatile int irqraised1 = 0;3 U7 X& G; o/ y" T" |( |
  62. static volatile int irqraised2 = 0;
    ! }8 ?- I- @8 y$ F4 p, _4 J

  63. # L' d# ?- T( q6 i8 i
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ' A2 u6 U9 T/ o  k, ?; E, p
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);7 \* A6 a  Y5 ~' q: E7 [' k2 u) {9 {# D
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ! a! d2 ~/ t& x/ H: P
  67.   B: L7 c1 N8 P( b
  68. dma_addr_t dmaphyssrc1 = 0;! G0 [- f& o9 l
  69. dma_addr_t dmaphyssrc2 = 0;+ r. d! {( I! x( O: c1 H- k
  70. dma_addr_t dmaphysdest1 = 0;! J: S3 |9 @6 b- ]% f
  71. dma_addr_t dmaphysdest2 = 0;
    ( S3 O! P+ @7 y

  72. ! v: D5 F1 B/ B* Z- k) l2 ^) l
  73. char *dmabufsrc1 = NULL;
    6 c$ j7 A, x, V2 V( M8 R  {
  74. char *dmabufsrc2 = NULL;
    6 Z$ e. k4 q. g! i
  75. char *dmabufdest1 = NULL;& ]2 s$ `6 a; U5 u, \, F
  76. char *dmabufdest2 = NULL;) e# q9 X3 [1 R9 a

  77. 1 F+ i% W/ [& I3 |0 H* S
  78. static int acnt = 512;0 o* u8 _4 d) c$ p5 D
  79. static int bcnt = 8;
    : _9 z; p/ [6 _4 a0 T
  80. static int ccnt = 8;
    5 M# _/ e2 s; `# ]" A' Y
  81. & m, P* A/ w% X3 {2 ?: m
  82. module_param(acnt, int, S_IRUGO);. I- @4 l: \/ ]8 r1 @. E4 R
  83. module_param(bcnt, int, S_IRUGO);$ x. P" ]/ O6 j: v+ o+ k6 E
  84. module_param(ccnt, int, S_IRUGO);
复制代码
0 B6 C, p% F/ k7 R, D

5 \# p9 u# x, M9 d( V; O. E; o      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
/ m/ v+ ]5 t! ^8 \" \6 Marm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
2 D" ?0 w( ]8 Z     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
$ L7 o0 q+ N1 L. p: m. n. Y# A; C& q. ?
, Q5 b3 x/ ^: B9 e3 H# L- z5 X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-14 10:31 , Processed in 0.039541 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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