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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
) k8 O/ k( B1 E. e- d
  1. [code]EDMA sample test application
      k; \$ `$ D4 d2 I4 o1 {
  2. /** G2 M$ A1 g& ~
  3. * edma_test.c
      Q" ^! m1 [* V0 N
  4. *, B1 l& ?/ G+ B- v" F9 o
  5. * brief  EDMA3 Test Application
    & q& k  s! i3 s/ f
  6. *
    $ h' J: [8 Z0 S
  7. *   This file contains EDMA3 Test code.
    ( E2 C- j- F2 ~5 I7 k
  8. *8 g! ]% R5 [& }; e
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    0 U2 r3 h) a* z) X  c  @* \7 a
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT6 ]2 Q2 `. `7 ]' @" j4 H
  11. *         TO CHANGE.) P% l) l! D$ Z& @  E% }
  12. *2 z) G: J! l" h7 _% l& P( x
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/( u4 B, w6 Y" v1 Z
  14. *6 R$ b3 m# {" s: B1 c" d6 B0 |
  15. * This program is free software; you can redistribute it and/or
    . m8 r' c. h5 J  N$ q6 w- b
  16. * modify it under the terms of the GNU General Public License as" N1 j' e- v9 Z* M$ o3 Z
  17. * published by the Free Software Foundation version 2.
      C+ H# t! M, H/ O
  18. *5 _: N  p4 E6 U
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    ! B2 F7 M$ X; p" M
  20. * kind, whether express or implied; without even the implied warranty
    $ i# j# r, f( n( f
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the& S3 [, H5 h  @  ^, @5 o+ P+ O
  22. * GNU General Public License for more details.  z- k' k: O) V4 i' f8 r; d9 B
  23. */
    ! ^! @, x& p2 |" o8 s2 @  ?
  24. : Z& E8 ]& m' ~* B- b) C
  25. #include <linux/module.h>& J, K8 p3 }: a0 e/ q$ Z* |) e
  26. #include <linux/init.h>+ _1 R7 ]: R$ G, A- E
  27. #include <linux/errno.h>) Y% D6 |+ g6 _6 L
  28. #include <linux/types.h>
    ) q  ?* w" O% [% y9 B$ M) `
  29. #include <linux/interrupt.h>
    ' m/ b1 f# d8 k+ F
  30. #include <asm/io.h>4 _; b- S$ a  w9 W+ A2 ]
  31. #include <linux/moduleparam.h>
    - F7 G1 u: L3 E  b8 {# H. H# g7 c  v8 }
  32. #include <linux/sysctl.h>% O) ~- Z- @$ ~; C& V
  33. #include <linux/mm.h>$ Z5 `' G  J# N0 m. ^& z/ g( p& [1 v
  34. #include <linux/dma-mapping.h>
    % s: |$ N" y! j

  35. : F% i& N3 M0 K5 Q, |
  36. #include <mach/memory.h>
    * U7 \! X9 f- z) q# L
  37. #include <mach/hardware.h>
    2 z7 t. S. f  t  n5 G
  38. #include <mach/irqs.h>/ ~/ `8 r* P: p& N* i5 t
  39. #include <asm/hardware/edma.h>9 A7 P4 q4 X4 G# J% e3 t' O# f, H

  40. 0 W+ V! i& Y% K
  41. #undef EDMA3_DEBUG. B* M. j: [& S1 ?; ~& B0 f& Q! N
  42. /*#define EDMA3_DEBUG*/3 Z- }. B8 l; i

  43. $ E% i. \2 V  v! ]; k8 X0 h
  44. #ifdef EDMA3_DEBUG
    / w7 w  p) c1 v3 N! I1 E
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    ( J, a5 X' H* d6 h/ F) s
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    + L) ~& Z- Z. ?
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)2 I% E6 G. Z; E# O% f2 o. a8 ]
  48. #else
    2 S4 E( k3 d9 D- Z2 ?5 F3 M  q' [
  49. #define DMA_PRINTK( x... )$ s8 u; b' h" x1 N" B
  50. #define DMA_FN_IN- K& F0 v! t% {' C( k: U) d
  51. #define DMA_FN_OUT
    ( x( ^, ^+ b- v2 V
  52. #endif
    " R4 q  i# n3 {. o

  53.   a' }: Z! k6 ~& a* ^4 `, M, R
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    : L: x2 K! F) e0 M7 d
  55. #define STATIC_SHIFT                3
    ( P& E5 s1 j6 g% y) t8 y
  56. #define TCINTEN_SHIFT               20
    ' T, D  ~; t( D3 s+ V3 u) t
  57. #define ITCINTEN_SHIFT              21
    8 n1 p/ Q# N+ z/ G3 d
  58. #define TCCHEN_SHIFT                22
    - j) A' H+ u/ @% l
  59. #define ITCCHEN_SHIFT               23
    & a9 g9 H" K" \0 e) |6 F+ J+ F$ L
  60. 8 J* O$ L$ c) o5 s) z* d$ Q3 x4 |
  61. static volatile int irqraised1 = 0;% ?" _4 q" y. i; J; I
  62. static volatile int irqraised2 = 0;
    ' ^6 w2 b0 O% d0 b( ~+ [) Y
  63. * b" a" p" m0 M. u
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);! `* U1 c. F: ]. N- I) p4 B8 F8 |/ T, F
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);; _) b0 N5 y3 V, A
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);1 `; U* |6 @$ B; F
  67. % t2 t, ], e2 B  E' ^
  68. dma_addr_t dmaphyssrc1 = 0;( s3 b1 y) ]0 W/ w4 {
  69. dma_addr_t dmaphyssrc2 = 0;: Y: C# K: X. `! A
  70. dma_addr_t dmaphysdest1 = 0;% w5 \9 h( s/ @0 ~- d' _/ A
  71. dma_addr_t dmaphysdest2 = 0;* n$ _2 w2 h% p0 D+ w
  72. ; ~' S/ N" U$ t8 e6 c# Y6 O
  73. char *dmabufsrc1 = NULL;
    2 I' U0 ~4 B' Z9 Y$ S
  74. char *dmabufsrc2 = NULL;
    : v) {2 B: S) p3 e% C+ M0 ?
  75. char *dmabufdest1 = NULL;; P+ `; _* O4 n
  76. char *dmabufdest2 = NULL;
    + q* e, e7 `# S% ~7 |9 j

  77. 2 V3 W$ P8 A* V) Q7 Y: O* {
  78. static int acnt = 512;3 D) m% c0 Z$ R& m, a4 f9 f; F
  79. static int bcnt = 8;
    - Y3 k# m: h0 C
  80. static int ccnt = 8;
    8 ~( [: b7 C' X& T8 [6 i

  81. " d, \9 S$ t& L* k
  82. module_param(acnt, int, S_IRUGO);+ W6 D: f. |' J; [, q
  83. module_param(bcnt, int, S_IRUGO);
    ' b" R( P6 Q& h$ d1 v) U
  84. module_param(ccnt, int, S_IRUGO);
复制代码
" |* {$ o7 B5 W0 B8 [
5 W7 Y9 n! v4 \. v5 }% U; L9 s
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
+ {( n7 X0 g: E! i1 Darm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
; S4 ?# @' Y2 Y9 Z- {8 z5 k# Y: \     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
. \  e' l+ v  k+ O4 S) ^6 h3 n( ]2 ?- _8 [/ i$ z

  D5 r/ M" y9 G+ I: C1 @9 ^* e
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-15 23:27 , Processed in 0.039204 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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