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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 7 g1 k# h5 o2 I2 |
  1. [code]EDMA sample test application5 x4 j+ V9 o2 U6 {! n4 J
  2. /*
    2 \3 W; N% h" F0 Z: I8 k0 `: ~
  3. * edma_test.c+ F& |9 O' u: c: c# h6 ~$ y8 S3 S
  4. *
    - ]0 K2 v5 k" n; k5 r
  5. * brief  EDMA3 Test Application! m& v2 Z$ m. _) Y: P2 R
  6. *
    3 p( }* A; y, h: h- T
  7. *   This file contains EDMA3 Test code.  w/ {/ K9 z! X; q, o: I
  8. *5 C& \( ~) N9 Q6 k; [$ f0 f" }& _: y
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    7 w' {% n# ~4 i( m, h
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
      a; I7 @: f2 Q, Z! i2 ]5 H' u
  11. *         TO CHANGE.
    . i: n7 r' V4 n+ W" v
  12. *, j7 I3 A/ D& T
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    3 Q2 q8 _, d' u9 \% T4 d
  14. *
    % l0 h5 P  p) p: `1 l: @
  15. * This program is free software; you can redistribute it and/or
    # n. m0 |  ^: D. a
  16. * modify it under the terms of the GNU General Public License as7 c: l4 k- i+ A8 T9 \. D
  17. * published by the Free Software Foundation version 2.3 s+ t6 P4 _& }
  18. *
      ]. B7 b6 ^5 B0 J
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    " d7 R' O2 j: Z3 X* P# u
  20. * kind, whether express or implied; without even the implied warranty8 z" f; S9 q9 q* P
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the+ ~. g9 A; V: c! K3 \$ Q7 ^
  22. * GNU General Public License for more details.- X5 `6 R8 I' I, c* Q/ \& Z. v
  23. */8 m. j) b9 _1 `  q8 N$ b6 k2 [- M

  24. / R! k) X# D4 X2 Z4 {
  25. #include <linux/module.h>! S7 O2 m3 r6 P: j. y+ P; B1 h; N
  26. #include <linux/init.h>
    + a6 e8 ]! }! \
  27. #include <linux/errno.h>
    - M8 N: b' g( N1 i3 L( ]$ B
  28. #include <linux/types.h>$ }: Y! {% I5 \$ a! z; S: j
  29. #include <linux/interrupt.h>" d) X8 o" t" k/ O( t
  30. #include <asm/io.h>0 ?# ~: o0 c* a8 F) p5 ?. _
  31. #include <linux/moduleparam.h>
    # h- d" U  J2 |) |
  32. #include <linux/sysctl.h># N- m0 y/ B# i, A7 ~+ \; p1 O
  33. #include <linux/mm.h>( c' K3 B9 F* G" n
  34. #include <linux/dma-mapping.h>
    " w  `+ Q) K& Q

  35.   b1 M( ]. s7 b8 c6 Z
  36. #include <mach/memory.h>
    / h8 a' e) }3 N5 g* |" l/ H
  37. #include <mach/hardware.h>5 V! H& Z& {0 ~( {* e! z
  38. #include <mach/irqs.h>
    - b1 c2 }1 ]( H# C* j& R# l7 z
  39. #include <asm/hardware/edma.h>; N) s* [+ c) x7 g; e: n6 M" W
  40. 1 B  k9 \0 m$ d  D  ^' \5 r4 u
  41. #undef EDMA3_DEBUG8 |3 C. T4 Z2 ?
  42. /*#define EDMA3_DEBUG*/  m' w2 N( R  E$ Z

  43. ; X# f$ _% I& `  E$ h. g7 b
  44. #ifdef EDMA3_DEBUG2 U2 x7 w9 h* n  [$ u  V, _
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)7 \- @) ^5 ?. H& h2 `
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__); X9 }9 ^% z1 W/ @7 f5 r0 a" Z
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    : V0 L2 R$ B- i
  48. #else" w$ r5 e% w* O3 N
  49. #define DMA_PRINTK( x... )/ b- N8 \  z$ ]
  50. #define DMA_FN_IN& F/ a' n( Z1 S, M) V' |
  51. #define DMA_FN_OUT
    7 j! \* E+ U, l7 c2 I
  52. #endif
    & }+ d$ T( ^+ v3 A2 @0 L4 {! t- f3 a
  53. : @7 q3 L: J0 ^
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)/ q9 N1 c- k; E' v8 L% Q" G0 W! c4 q
  55. #define STATIC_SHIFT                3+ e) k+ c- G5 k9 `+ n
  56. #define TCINTEN_SHIFT               20, ]: d" I% j5 }- }4 m* c& x9 ~9 q& U
  57. #define ITCINTEN_SHIFT              21
    " u7 |1 r! d7 Q& G' G
  58. #define TCCHEN_SHIFT                22% _5 X0 Q" b" C. ?* h, z  V1 A
  59. #define ITCCHEN_SHIFT               235 V+ t# y4 W- ]( a5 o+ S
  60.   `- f- q# r* K0 ]" ^
  61. static volatile int irqraised1 = 0;9 P. M, \4 S( J% J" k% b& U
  62. static volatile int irqraised2 = 0;
    5 o2 y& S5 f7 D  W6 }3 f
  63. 6 h4 ?: R% y" a2 l7 c
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);: i4 x6 f" q) T7 ^/ T- y/ e
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ! P; [' p* n0 p5 o# U$ p# W
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    4 L/ F) h/ @8 I0 L$ H- V5 C7 Q0 L
  67. " a2 r( R6 S  V! J
  68. dma_addr_t dmaphyssrc1 = 0;+ m& x- x* f0 I' \7 m
  69. dma_addr_t dmaphyssrc2 = 0;6 j  I( ]# i9 D2 ^
  70. dma_addr_t dmaphysdest1 = 0;# i' p4 M. l* R7 B4 F  \3 T
  71. dma_addr_t dmaphysdest2 = 0;. Q: t; S7 z8 K1 E

  72. 3 M3 |1 e" d, s& z4 Q4 J" F
  73. char *dmabufsrc1 = NULL;" N) h$ q; P; Y
  74. char *dmabufsrc2 = NULL;3 I' j* V' `, B  K+ {
  75. char *dmabufdest1 = NULL;
    $ Y' u8 G( x- [7 N! s5 r
  76. char *dmabufdest2 = NULL;& h) X+ O! R1 u! G

  77. , t$ ?- E8 o0 k9 @4 `! c9 D
  78. static int acnt = 512;
    : }3 u* H, H% d! L7 d
  79. static int bcnt = 8;
    1 I8 y' _# g) R% Y& }2 g) _
  80. static int ccnt = 8;
    1 W+ ~8 n' b( o8 S& y# t! d3 q
  81. * x5 p0 [# r! ~" r
  82. module_param(acnt, int, S_IRUGO);0 m- A. P% @: s' t1 s
  83. module_param(bcnt, int, S_IRUGO);
    , m& M* @& p% q. v9 W& D
  84. module_param(ccnt, int, S_IRUGO);
复制代码
6 E. O/ Q) Z  N

  f; Z% F  x, j6 I/ J% d      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
6 t) L: p2 f1 X  r7 _. S5 M4 karm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
$ b. @" a$ o4 \! w% B/ l0 P     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
5 f9 ~* Y6 ]: a8 e8 d- K9 b3 |1 R

( ~0 _# L3 C) s3 }: x# v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-8 06:11 , Processed in 0.043961 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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