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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 ; {/ a8 B3 b! Y6 s# q( b% q/ z
  1. [code]EDMA sample test application
    ' _: T% ~! {# d% Z* t
  2. /*9 s: z# |, R- u' x6 c! ~, {
  3. * edma_test.c
    0 n  l' G+ ~% f# W& [( p/ _
  4. *' Y$ S1 D1 q& B& {) o
  5. * brief  EDMA3 Test Application( o9 Y1 Q4 a5 z0 R- A5 v* k
  6. *: }0 _% O( K% k6 S1 n! R
  7. *   This file contains EDMA3 Test code.  C  ^! @. j, x6 Z7 i: I( O, N' y
  8. *
    $ O. g& u& K3 f! N
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    ; n+ _8 w/ g* g* _- C
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    1 e2 L' o" L9 H# }9 U; A
  11. *         TO CHANGE.0 `! F$ K" S7 l& S2 J, m& _
  12. *1 d8 F" J& L0 A7 \+ W& @
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    ; j3 `- C' B0 ]2 F% b
  14. *8 y! p4 U% U; w3 B# ^
  15. * This program is free software; you can redistribute it and/or
    ) i# L% X. f- h$ [
  16. * modify it under the terms of the GNU General Public License as
    # \! j2 {" U) T& e4 o
  17. * published by the Free Software Foundation version 2.7 V* j* R) J% C  m4 o/ C4 l
  18. *
    , e. }/ F9 C% |, \. ^
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any9 o. I7 Y5 T6 c2 n- D
  20. * kind, whether express or implied; without even the implied warranty
    . C; `2 X( ^, d$ ?
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  {! a* G& ~1 v; J- b# |# b1 J
  22. * GNU General Public License for more details.
    5 G; m- D+ {2 Z7 t4 Z- l( Z% A
  23. */  k9 S, o3 u% A* }, {: x' |
  24. 3 g' ~# J1 q( E/ z* s1 Y( e" l/ N$ A0 }
  25. #include <linux/module.h>1 `8 R' w) z+ x9 |
  26. #include <linux/init.h>, {; {+ j# u0 B- H0 K' C
  27. #include <linux/errno.h>4 N0 I7 M4 a) Y/ Y1 ^" s3 D; o
  28. #include <linux/types.h>0 ?! z& @# W6 I2 C$ j2 m
  29. #include <linux/interrupt.h>
    . j' V- S7 U$ ~4 v7 a
  30. #include <asm/io.h>8 E9 R9 b- v* @) I
  31. #include <linux/moduleparam.h>
    : E% Q! Z6 H5 H" [  S7 h
  32. #include <linux/sysctl.h>% D! n8 r* u) `' ]/ _/ w
  33. #include <linux/mm.h>9 ]6 L7 T9 U8 l: p, S
  34. #include <linux/dma-mapping.h>
      @4 o' i! X- p) ~

  35. " D1 I% e; D: l2 i/ Z* N4 s, R0 O. s
  36. #include <mach/memory.h>0 R: p, @. x, H
  37. #include <mach/hardware.h>
    0 I5 h4 B4 e8 Y, @1 D/ z. A- B0 }
  38. #include <mach/irqs.h>8 }* a" a8 }2 L( s+ f; S
  39. #include <asm/hardware/edma.h>
    " M+ l1 m3 D5 K. P$ b9 f1 A5 `' o
  40. # l+ E2 u2 _3 N0 A% p* m
  41. #undef EDMA3_DEBUG0 Q- F6 D, a, v, f% M4 O7 T# ^
  42. /*#define EDMA3_DEBUG*/: }/ g8 z' g/ m! J

  43. $ @9 |8 s' B; H( }7 y8 `; K  M. E, J0 ]
  44. #ifdef EDMA3_DEBUG/ ^! Y, Y. u% a6 P  [; ]
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    " D7 a; s/ ?+ N. W: o# k$ \
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    % g8 s8 }$ [7 l2 n
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    6 K- {  O2 u, G/ n3 O. o
  48. #else4 T) n1 U& P2 H  I- ^* o7 I% B
  49. #define DMA_PRINTK( x... )1 H& E' E2 u# w& p( d( _
  50. #define DMA_FN_IN
    5 Q  x$ C- {7 g
  51. #define DMA_FN_OUT
    . _% a" l  U- U" I
  52. #endif2 C4 o; z/ ~0 \  L  C* F" L
  53. & |( ^: \1 M+ ?3 g
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)- D0 D: X) v) k8 U0 W8 B0 V) P2 ~
  55. #define STATIC_SHIFT                3
    9 A7 ]" G* {' w" i# }2 z, P6 d+ R
  56. #define TCINTEN_SHIFT               20  g: Z5 {4 }" F4 O1 x
  57. #define ITCINTEN_SHIFT              21  Z# e1 o9 C/ K  o' x0 y
  58. #define TCCHEN_SHIFT                22% A5 `; x  D( F7 \# E7 A: P
  59. #define ITCCHEN_SHIFT               23. f4 K: u0 x- e4 h3 {7 K: W  P
  60. ) I4 \; n4 t  q
  61. static volatile int irqraised1 = 0;
    + z/ k* X$ {) T/ x9 M- }
  62. static volatile int irqraised2 = 0;. t9 ?. L% {/ @7 I
  63. / [8 L7 Z6 C& u
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);  ?% O; Z. |- [+ t) @9 {& ]# |8 x
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);  B: [: t+ e% u, h4 w% W/ z
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);3 r6 f0 c) u1 }8 N, H, @
  67. 9 _" B/ S3 T& V' o6 n
  68. dma_addr_t dmaphyssrc1 = 0;
    2 ~2 ]' l1 I( G/ P# ]
  69. dma_addr_t dmaphyssrc2 = 0;) w( e% E  w, T1 h' e! Z7 n
  70. dma_addr_t dmaphysdest1 = 0;) o5 T6 ?8 T- J: [1 ], a) D8 p
  71. dma_addr_t dmaphysdest2 = 0;
    , a+ Z* z  C/ B- Y  V! |

  72. # D# r8 q9 J1 \1 z* |
  73. char *dmabufsrc1 = NULL;4 W  @6 [) N" n# P1 E! I+ Z1 O
  74. char *dmabufsrc2 = NULL;
    9 w' f3 b1 g$ W4 f: W5 h: q7 u6 n
  75. char *dmabufdest1 = NULL;
    : S3 \; c3 x- V( H' V- F3 U
  76. char *dmabufdest2 = NULL;
    * ]0 K4 G5 R) G+ E$ j1 R2 o

  77. ) l  q+ h# i: \4 n$ h% C. b) K
  78. static int acnt = 512;6 v* M! G4 x7 C1 k' |. `# P+ n
  79. static int bcnt = 8;+ x8 B) v0 N, Q3 y) ?5 ]  y2 a
  80. static int ccnt = 8;
    9 w/ I5 k5 p0 s. ^2 b: x
  81. % C/ M9 X6 r! G; i$ v0 C
  82. module_param(acnt, int, S_IRUGO);
    6 r3 D! o) m* O& o# r
  83. module_param(bcnt, int, S_IRUGO);
    5 K. E6 Q# ?; B$ c& E2 s
  84. module_param(ccnt, int, S_IRUGO);
复制代码

8 v' |. `. r; F# {% ^# Z1 m( o* j" e* I: R2 [
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
2 t) h6 A) D; a" J- Q& C( Earm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。  v* g3 `+ W- h8 G* a  j
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。% R* H3 J, M1 p& [4 u2 `
  q$ L: M, c, x# z9 m
, |* x+ ?5 X4 z! Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-20 04:22 , Processed in 0.039046 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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