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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 8 E& m8 {/ q: i3 H, w2 G) j) ?
  1. [code]EDMA sample test application- y+ U! Y0 S: V
  2. /*" @/ ^9 e% `# T  t0 s- {
  3. * edma_test.c
    ( z# t5 q' y7 d" w8 x  z" V
  4. *
    : i( c) T: T1 z5 d
  5. * brief  EDMA3 Test Application( d/ b1 M8 |  m$ r9 H9 k  g; C
  6. *
    - D1 K/ D- W: z6 B
  7. *   This file contains EDMA3 Test code.5 D7 S) C4 L5 ~1 ^" K
  8. *
    0 z$ F# {; U& P( N; D  _  _% W
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    7 B7 q4 j2 x: r8 h9 a' i& p3 H
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT$ t+ X5 c. K$ W) k
  11. *         TO CHANGE.
    0 `2 ?. c& Y7 m1 c. X) J
  12. *' U% [/ S6 I0 @* J8 t
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    ) D5 B$ O' V% ]
  14. *
    9 W1 }' k! G" h8 P: G& T
  15. * This program is free software; you can redistribute it and/or
    0 T- u# R( t- `# A. ]
  16. * modify it under the terms of the GNU General Public License as
    6 V% \  S1 p0 B! R/ |* Q6 f
  17. * published by the Free Software Foundation version 2.
    # K. d6 A4 X# n6 N+ j- O" B
  18. *
    % C* [+ l$ M6 i
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any& I1 o$ K4 M( |2 v
  20. * kind, whether express or implied; without even the implied warranty6 h1 B! B  j  k# f
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    " T& p2 e; L" a8 I- j& m/ l
  22. * GNU General Public License for more details.
    - z- ?( C6 {3 O
  23. */( j" N; X9 h! K

  24.   K. h; {" h2 [0 a
  25. #include <linux/module.h>
    7 p% u7 a* q- Y8 m  t% }, E7 J
  26. #include <linux/init.h>- M/ t  @8 C0 C
  27. #include <linux/errno.h>; h/ E+ F& D4 p+ A" A. W
  28. #include <linux/types.h>1 ~1 P, _) J$ R% O! ?# F
  29. #include <linux/interrupt.h>
    $ J; ^! z7 n5 ~
  30. #include <asm/io.h>2 o4 C0 t6 M+ E* {8 L
  31. #include <linux/moduleparam.h>* W' O8 P, a. h3 |+ _2 Z
  32. #include <linux/sysctl.h>! C' }( D2 \2 ?) `; l4 g, U; s% b
  33. #include <linux/mm.h>
    # ~" d5 j$ Z) Z; w4 ^8 d
  34. #include <linux/dma-mapping.h>4 c6 Y4 {( _+ B: @+ J

  35. 0 y( C4 A4 |( A; H+ B- Q
  36. #include <mach/memory.h>6 Z, D! O: t# T2 u- }) y7 k
  37. #include <mach/hardware.h>
    ' u$ {4 [( D7 V: s5 c0 x$ H
  38. #include <mach/irqs.h>
    " T1 n; p0 i- N" F: f" p! S- q
  39. #include <asm/hardware/edma.h>- v) ^  K9 }% s" [7 I; P% F/ @& h

  40. 2 p9 V( X9 V4 m
  41. #undef EDMA3_DEBUG
    3 ~; `5 W5 K0 u. T6 `; ^1 w! C
  42. /*#define EDMA3_DEBUG*/% i$ [3 |. f' ]; A* Z, Z0 N6 w+ `
  43. " H: I" d+ V! n6 A
  44. #ifdef EDMA3_DEBUG
    - v, V& c; _. n
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    4 R  R7 J, `: M
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)- D, y; ~4 N1 f: O# k: |- u! T$ J' P
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)9 @3 F$ d$ L% Y5 S! K* j
  48. #else5 o6 |$ _& h' `6 o2 O
  49. #define DMA_PRINTK( x... ); Y' i$ f- V& e& D7 j5 d
  50. #define DMA_FN_IN9 c1 z, z5 q2 l$ o! R
  51. #define DMA_FN_OUT
    - t( Y# r4 e0 i5 M3 r8 G7 A
  52. #endif2 C# A2 h- F% H8 j2 ?
  53. $ v% l- K; A( E: x
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    - D+ R7 ]* s3 H$ h. D
  55. #define STATIC_SHIFT                3
    7 Y0 x# N; a2 |  w
  56. #define TCINTEN_SHIFT               20" K' U6 D4 p1 b. d( ]" u
  57. #define ITCINTEN_SHIFT              216 L* c" z# ~8 r; z3 @
  58. #define TCCHEN_SHIFT                22' J' Z+ Y! b6 L3 Y: Y1 V
  59. #define ITCCHEN_SHIFT               23
    6 L+ B/ ^, U4 C! A

  60. 2 r) L' H- o* a7 e# O+ [
  61. static volatile int irqraised1 = 0;
    1 M" Q+ |* a9 h( T  Q9 n
  62. static volatile int irqraised2 = 0;2 @% L' t, ?/ J; t7 z( U

  63. 7 R& W) k- ~8 o+ B
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    4 k2 m* [1 P* ^0 ^
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);3 @5 d$ j& h& ]# H, t- M) \+ S+ v
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    1 w/ z8 M) w4 d

  67. 1 J0 f/ e/ S6 I! z+ P
  68. dma_addr_t dmaphyssrc1 = 0;2 h; |; L  h' `6 Q: _- q( \6 ?
  69. dma_addr_t dmaphyssrc2 = 0;' Y2 o3 A! b+ P7 |
  70. dma_addr_t dmaphysdest1 = 0;
    0 W& Q, P. K$ h
  71. dma_addr_t dmaphysdest2 = 0;
    6 F, M& P2 f4 E( M+ z
  72.   e: a, u, _* m0 D$ U7 m& c" Z# C
  73. char *dmabufsrc1 = NULL;: h$ w) `1 T+ q& N/ \
  74. char *dmabufsrc2 = NULL;( Z* E. C) \6 O+ p  X. r/ [
  75. char *dmabufdest1 = NULL;
    ) B, }; K) @' o9 h
  76. char *dmabufdest2 = NULL;
    ; n7 j- ]* z$ f; f: i% {2 m8 t
  77.   m3 u2 ?  E4 m2 V3 p
  78. static int acnt = 512;
    0 V/ d, b, f2 o( Q4 I2 V
  79. static int bcnt = 8;
    3 x5 R- w" c/ E6 A- ^
  80. static int ccnt = 8;
    ) _1 \% a; |: ~' B* ?0 A
  81. / L7 |1 k1 v/ Z4 v5 T( }
  82. module_param(acnt, int, S_IRUGO);
    5 B& B% O( t! y7 z  d2 I( R
  83. module_param(bcnt, int, S_IRUGO);
    " S0 g7 i0 l* B
  84. module_param(ccnt, int, S_IRUGO);
复制代码

- N6 H* g- V9 `% q" `) u3 A$ g
  E; B0 S0 ], W/ b. V4 j2 k; U      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
2 [) E" h% r) B( xarm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
, Z& j( [5 N% d6 R  m. P, m  A     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
& l, H6 ?+ D- x; d/ `6 b) h- F
6 f. o3 p6 l( d( J* L3 G0 t" q- J7 Q) c  l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-25 18:15 , Processed in 0.040072 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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