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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
7 t9 ~1 W! g8 b: N/ Y% v6 c* X& X, K
  1. [code]EDMA sample test application: M9 w: |/ h$ S  e" P" d5 H1 ]
  2. /*
    ; y/ i7 X# Z$ D
  3. * edma_test.c
    0 L8 E/ E6 O; l3 r, h
  4. *9 ]' F0 R( o7 R; C: {2 G) g. @+ b2 \
  5. * brief  EDMA3 Test Application
    & W/ k+ i, b8 @; V( k
  6. *
    : O, ]9 K! T2 W
  7. *   This file contains EDMA3 Test code.
    - o/ R, G, U! T6 A5 g- ?- \& a
  8. *
    0 ?9 K0 g  E. d+ Q
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE0 c3 {$ N* V' J* [3 I7 g" f! p
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    : p7 T, a( ~. ?! c: ~
  11. *         TO CHANGE.2 h, |! m. Z% y: ]: U, K4 q
  12. *5 y/ C) |8 ~, \" F" }
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/, J: R- `4 _% i: y& O) q# j
  14. *) m+ H) {0 W0 D' H9 q# y& \5 d
  15. * This program is free software; you can redistribute it and/or
    9 J5 I% Y% k$ E" K1 l5 @; }1 ~1 O
  16. * modify it under the terms of the GNU General Public License as6 Y3 W0 K1 ~/ R8 u
  17. * published by the Free Software Foundation version 2.
    6 B1 S+ Y- n4 }9 Y2 F2 n9 b/ U
  18. *
    6 C2 n6 v( P8 i+ x2 [- J8 U
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any5 w, b, T" v4 W) ~) O* m
  20. * kind, whether express or implied; without even the implied warranty6 v; l$ o$ O/ K. b7 K
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the1 e4 `! m$ @9 t+ d+ [& P8 E( i
  22. * GNU General Public License for more details.
    7 M6 Q, A& S: x8 |/ N+ T
  23. */5 ]( `6 x, z- o# ~, G
  24. & _" a1 u/ M4 p8 m/ g$ j# \
  25. #include <linux/module.h>4 F# Y/ c, u. L$ ?
  26. #include <linux/init.h>4 H1 F% d' E3 O  f: n$ f
  27. #include <linux/errno.h>
    # s4 e( k" ?8 B' O8 v* ^+ w" a; X9 @
  28. #include <linux/types.h>. A, O; Y1 M6 B4 H* Z" F! c
  29. #include <linux/interrupt.h>
    , y1 k& h- N# I4 H. Z% @% i- v2 b! d
  30. #include <asm/io.h>; z  I1 r. F) Q- n, f
  31. #include <linux/moduleparam.h>
    7 ?8 a0 K; ~2 l4 O9 |  X5 d/ J
  32. #include <linux/sysctl.h>, Q9 d0 F8 ]$ _- m1 h
  33. #include <linux/mm.h>; t# i. i9 V9 W+ n# E& z
  34. #include <linux/dma-mapping.h>7 U) `# r* O' Y% g6 B

  35. - p3 r9 ?0 U; H6 U( S1 ?; V$ a" V
  36. #include <mach/memory.h>
    ' X3 S  z: M* T& h" j8 N3 ~
  37. #include <mach/hardware.h>
    + P# K. _/ N9 d) W: X7 |3 f* k) A
  38. #include <mach/irqs.h>( V. B# a9 p* J" A! o
  39. #include <asm/hardware/edma.h>: b% S& ?9 O$ m6 C' g

  40. ) r8 b! Q6 w7 s" P, s( Z
  41. #undef EDMA3_DEBUG
    % L  i+ v" b2 D# f
  42. /*#define EDMA3_DEBUG*/! F6 j" ?7 Q+ z9 l- u% M% @) y9 p0 c

  43. # j$ w7 u6 q* ~3 X9 u
  44. #ifdef EDMA3_DEBUG7 v. b  v9 x7 D, z$ \! ~
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)1 A" Q* Y4 _- Z
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)! n# s3 x' _% D6 D! E- o* C
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__): M. `  ?, Y3 }( E& G' G, e
  48. #else3 `7 b7 b# Z4 E
  49. #define DMA_PRINTK( x... )& D& q- U, p& |: A7 _
  50. #define DMA_FN_IN  N" h" S  E7 E# j) W" m4 A$ ~4 U
  51. #define DMA_FN_OUT! O) y2 Z3 ~, @! |" y2 L! @8 r6 o
  52. #endif, p$ z6 Z, }2 q& [$ Z( W! A% o9 A

  53. ! e9 N+ {# u: P* C0 ^2 X, h
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    & l* |6 R9 ^4 s+ p. s8 h
  55. #define STATIC_SHIFT                3
    ' Q% ~- R) U: ~  t5 C' ]
  56. #define TCINTEN_SHIFT               20& J' F2 ]& u0 g; D, A8 M' s" j, `
  57. #define ITCINTEN_SHIFT              21
    ( z9 @; @, M/ k- q* V
  58. #define TCCHEN_SHIFT                22  a& R7 ~$ N+ G- L
  59. #define ITCCHEN_SHIFT               23
    9 `+ p) c+ f6 i4 a8 F
  60. ( A& n1 k8 b2 I. \* K& o" D& D: u
  61. static volatile int irqraised1 = 0;6 I4 r9 p$ v( ?, K2 T
  62. static volatile int irqraised2 = 0;
    . |+ {- B; o5 D- Y6 S8 y- y% d

  63. 1 _7 A8 C4 X% i' H2 o
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    - i- r) k! P3 y1 v' F
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);; O7 w" K1 K3 u! |( o7 H2 N9 }6 [" d
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    4 J# ]& q! J0 ~% S

  67. ) A* t- y8 K* m- x
  68. dma_addr_t dmaphyssrc1 = 0;
      k( N# {/ x7 d# k* Y
  69. dma_addr_t dmaphyssrc2 = 0;1 U$ d3 w& V; B0 F# y8 P/ R
  70. dma_addr_t dmaphysdest1 = 0;
    1 z7 W/ U+ D2 O# W  t
  71. dma_addr_t dmaphysdest2 = 0;+ J. |8 _! @' v. F

  72. 6 ~; @/ ]! W* H# C! @) \  _
  73. char *dmabufsrc1 = NULL;8 }  [8 a8 l7 R0 c, L
  74. char *dmabufsrc2 = NULL;
    ( G" h$ \4 O& X& X( o8 a
  75. char *dmabufdest1 = NULL;
    , ^: I2 V( K  R  I* E
  76. char *dmabufdest2 = NULL;
    1 i2 ]3 ^0 G! S/ a3 i

  77. " j# j- v0 H4 a
  78. static int acnt = 512;
    : y; N8 U" J8 w- O
  79. static int bcnt = 8;' J2 n+ w& m! j+ H
  80. static int ccnt = 8;! ~4 v( B; D1 f1 ?) K" p4 b$ T

  81. ) j4 {0 @( v+ ]. I. p2 X
  82. module_param(acnt, int, S_IRUGO);4 M0 M9 P! m. ?8 ]3 C3 _
  83. module_param(bcnt, int, S_IRUGO);
    + z6 g" |) k5 I9 _. C! n
  84. module_param(ccnt, int, S_IRUGO);
复制代码
. R" d' l# t. P% W! r8 _$ R+ i

% A1 c. E. C9 B$ S! g# z      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
1 j  E1 A: s% zarm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。( R* ?. h+ L4 m  [. O0 |
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
: R- h0 @0 a+ j2 j
: C0 c: O4 A& a, L9 t! y6 W3 Y7 D
; ~0 I6 k& ~; X) _/ j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-6-19 20:48 , Processed in 0.041171 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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