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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 ( U" E/ a. q9 s; b" p  J7 W5 Y
  1. [code]EDMA sample test application
    2 A" h& E, x- |9 ]2 o1 b$ l" K' \
  2. /*% c9 Z3 W! m( ]3 Z0 n2 g
  3. * edma_test.c" B$ H% d. c7 T& K9 E/ j3 d, n; v
  4. *6 L% B% P; Y  K3 h0 B$ Y4 I' Q
  5. * brief  EDMA3 Test Application0 M* I* B; a1 v* y
  6. *
    7 H( {' u% t2 u/ Q, j( d
  7. *   This file contains EDMA3 Test code.
    ; C9 F6 q7 g6 P& J. `$ \
  8. *" K9 n' ^& f! U8 T) y
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE, j( A2 t" H5 M. I) E
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    0 {) t& d2 `% ?6 Q/ }# u
  11. *         TO CHANGE.5 R5 N5 b( D/ w: G. o# N
  12. *( u2 J7 \: r  I, F& H. X. x. ?3 J
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    " |9 @$ E+ x* K5 L: {
  14. *
    2 F7 t) _2 V4 m: g8 J
  15. * This program is free software; you can redistribute it and/or7 I0 V2 F) @) A( u; K  j
  16. * modify it under the terms of the GNU General Public License as" z: i3 Q! e- \, [: {
  17. * published by the Free Software Foundation version 2.
    - c* D5 I, z  y, }! ]
  18. *
    : `' I0 R+ ]9 N' E
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    : @3 w3 s% i( e
  20. * kind, whether express or implied; without even the implied warranty/ s; ^. {* u$ H. B
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the7 D  u( ?! Q# J+ S4 ^1 h
  22. * GNU General Public License for more details.
    + v; N! E( H9 r  J( P$ \$ P9 C
  23. */: n& W. @( @! J5 M! R

  24. / }. ]8 S3 C8 ?% N
  25. #include <linux/module.h>0 s8 e0 c2 H5 C) j+ j
  26. #include <linux/init.h>  C1 M, }6 P' Y: \5 p, Y. d4 w+ i
  27. #include <linux/errno.h>
    7 j  R% Z6 S0 H, |' A
  28. #include <linux/types.h># W5 C# }1 @" [! y* V" @4 N2 U
  29. #include <linux/interrupt.h>. q- K, p8 [& H; i3 t6 F
  30. #include <asm/io.h>
    & L% j% Y  v/ W- U; K9 k8 w
  31. #include <linux/moduleparam.h>( t: b6 S4 X: Y9 S2 w
  32. #include <linux/sysctl.h>
    4 `/ G% p7 @7 W3 E6 w9 C1 G& C
  33. #include <linux/mm.h>
    7 b* ]& r$ v5 m* P4 B  @
  34. #include <linux/dma-mapping.h>. h/ c+ s7 t( F7 C; p4 I9 z
  35. 6 o4 y$ Q2 O; s
  36. #include <mach/memory.h>
    0 [( x$ q1 T! ]- B3 C: A+ h3 m
  37. #include <mach/hardware.h>
    - I) I/ j9 J  w+ c4 W/ G
  38. #include <mach/irqs.h>
    % y2 F4 }+ f6 }4 W% {
  39. #include <asm/hardware/edma.h>
    2 K- C5 p% M0 e' @* V* o2 l+ X5 m# j

  40. * F5 Y* q5 ]: |+ r, g
  41. #undef EDMA3_DEBUG
    9 L& N' K5 v; E* D1 B9 r
  42. /*#define EDMA3_DEBUG*/
    3 u4 p- ?8 `4 z6 K9 @8 z
  43. 8 d7 d# {  ]9 T
  44. #ifdef EDMA3_DEBUG: ^* N2 `4 [1 `/ E' M' {
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    ! q$ ?1 v# h7 m6 y3 E5 N  C; \) C
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    ! z) f- ?3 ^# c- t. q6 t
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    4 G$ z. `9 f3 `( M% E/ L4 w
  48. #else+ O1 d* X4 ?- |0 K2 h1 L" B
  49. #define DMA_PRINTK( x... )4 e, A# r+ O, U& n5 M7 W# U
  50. #define DMA_FN_IN
      e% i' o, ?6 N4 b8 W6 [6 ]
  51. #define DMA_FN_OUT
    ; Q" |, z5 @% D
  52. #endif
    " a1 N; b) a3 E4 U6 j3 S9 v

  53.   A/ H9 W7 e7 ~- ^, Y2 S' n
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    4 I. @" E6 c6 {0 W; S! V
  55. #define STATIC_SHIFT                31 o% v  c3 k4 n2 U4 O8 P3 P% @% U: u
  56. #define TCINTEN_SHIFT               20
    , K& S$ v4 t, p% U4 `  Y0 Z
  57. #define ITCINTEN_SHIFT              21% Y( w7 ?9 e# H$ d5 [. U
  58. #define TCCHEN_SHIFT                22
    ' N2 @  l$ a8 V- |1 T: F
  59. #define ITCCHEN_SHIFT               23$ O4 z% h( K4 h0 o! F3 d/ N# V6 v
  60. 0 q, y2 r0 B& N- @( U
  61. static volatile int irqraised1 = 0;' K& B* j3 w) k# t$ H
  62. static volatile int irqraised2 = 0;
    2 Y1 F* K. m& B  F; w: F
  63. + s) Y% l/ K" B$ j
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);0 P# z" U6 f, N$ J
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    : [" K0 f( p$ [) c' p1 m
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    0 j' w7 g; c1 [" A
  67. 6 f. A/ i& g" b/ O+ X( Z3 H
  68. dma_addr_t dmaphyssrc1 = 0;
    ) h, y5 l0 W7 e
  69. dma_addr_t dmaphyssrc2 = 0;/ N2 F9 N% P1 s
  70. dma_addr_t dmaphysdest1 = 0;9 [9 V; {1 Z/ [" o3 J* n0 f
  71. dma_addr_t dmaphysdest2 = 0;
    / z  M; b- `# s
  72. ) a$ r, b  J* Z5 `$ Y
  73. char *dmabufsrc1 = NULL;* N, c4 W, A: y* d' q
  74. char *dmabufsrc2 = NULL;
    - n! `8 A. T3 a8 C
  75. char *dmabufdest1 = NULL;
    & y( R2 {, q7 ?/ \7 D% ]* J! W
  76. char *dmabufdest2 = NULL;3 u; w3 Z! [& F$ [
  77.   o$ T) \; c* V5 y4 s
  78. static int acnt = 512;
    2 F' l0 y% y! I( U! }% E
  79. static int bcnt = 8;: @. R4 p$ n. y; E$ N" ]& Q
  80. static int ccnt = 8;
    - k8 x! h2 v- x" i. E* x8 p! x! A; K
  81. 0 `% W7 @6 F; C4 e% o: O! o
  82. module_param(acnt, int, S_IRUGO);2 N/ T+ O4 d+ ~' D( D( J
  83. module_param(bcnt, int, S_IRUGO);# H" l( d" u" t- ^; D7 I1 o9 y7 n
  84. module_param(ccnt, int, S_IRUGO);
复制代码
, a* F% g2 v* e  q$ i

4 j' F8 ]4 v7 z! T" w) [) S: k      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
, q- n+ Q( z5 L* n+ N5 U* barm-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 W! x9 T& a* E5 V* G$ P' d
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
* a6 F1 e  J) ?) S. `! \
6 h( r2 m$ H9 Z2 w
( ?- p7 f  [8 F, J" r4 @, e
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-20 04:11 , Processed in 0.038012 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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