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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
0 }' g) a5 }( I# P8 p# Z/ C
  1. [code]EDMA sample test application) U! ]/ f6 p' ^( t
  2. /*
    7 k& {0 o$ i, k) d5 |! D
  3. * edma_test.c8 Z% w) d7 E9 \" q, O
  4. *) L6 v; U6 r# u' ^( u
  5. * brief  EDMA3 Test Application" ~7 H; w$ @% ]/ Z( R1 P! p1 _
  6. *
      g1 C% ?+ u4 P4 r, {- e
  7. *   This file contains EDMA3 Test code.5 X% w3 p6 S4 c  A, V& |3 u
  8. *
    4 A0 ]% Q) D* W( `' l7 R
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE! G0 Q! [2 {4 n3 m  t
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    / c, I7 g& |1 {! P
  11. *         TO CHANGE.8 D& l$ e8 d$ J/ T" Z, i1 L
  12. *. l# j3 `  `; t# m- x
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/. K* w4 g8 D8 n* g) W; M* @
  14. *
    ' f( N" s5 H1 h
  15. * This program is free software; you can redistribute it and/or; J8 z7 K* ~, @4 l, @0 v
  16. * modify it under the terms of the GNU General Public License as
    5 e9 E; {" i) h1 e
  17. * published by the Free Software Foundation version 2.
    3 y) w8 d% p3 y% _" h( f0 Z* K
  18. *
    , r9 H, w" E1 X
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any) _' d2 J; F( E
  20. * kind, whether express or implied; without even the implied warranty
    ! Q- Q' {% K  ~1 B: @5 ?+ p
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the, ~& p  `: w! X7 T' E* d/ l5 ]
  22. * GNU General Public License for more details.
    " A$ Q0 _8 \, C+ c3 i" j* ?* d
  23. */
    " p" x; g4 v8 l  c

  24. $ m" W4 X& u0 O& g& O, R
  25. #include <linux/module.h>
      X" j4 S  ^8 E
  26. #include <linux/init.h>
    ( f. w3 L- Q! r8 \
  27. #include <linux/errno.h>
    & O% ^4 a$ D$ ?) k4 D
  28. #include <linux/types.h>' k1 k: `3 |& t' Y" |0 x
  29. #include <linux/interrupt.h>
    . v1 ^. t- \# @1 B- _
  30. #include <asm/io.h>6 N" C  R! ^, r1 o
  31. #include <linux/moduleparam.h>8 L  F4 j! |; b& K
  32. #include <linux/sysctl.h>) Y4 t" J( p6 e; o
  33. #include <linux/mm.h>3 J; \% Q9 n: M1 J3 S- Q# y
  34. #include <linux/dma-mapping.h>8 q, d: M: r8 V( Q& s# x6 U+ L

  35. 3 A4 m' G) q' {- C& a
  36. #include <mach/memory.h>$ z) f& X# h* B7 n" Y& h
  37. #include <mach/hardware.h>
    3 J7 E" Q/ i. z6 ]- r3 L
  38. #include <mach/irqs.h>
    0 A0 F( G/ b3 q) u2 H, \, L
  39. #include <asm/hardware/edma.h>
    . D7 q  ?' [; {( ]9 c% J

  40. - |% V- R# h& E/ K
  41. #undef EDMA3_DEBUG0 S7 _: v: o& \* p
  42. /*#define EDMA3_DEBUG*/, J% k$ z! o9 P( f/ j; v
  43. 6 U2 i) |  w9 y
  44. #ifdef EDMA3_DEBUG6 `. z! Q, ~4 @1 }! c
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    + T6 S8 z+ Q; p7 G
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)/ K* f6 t2 K& k3 v
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    ! m. v0 b$ u% y8 i( e
  48. #else9 P! V1 i4 Y! B' A
  49. #define DMA_PRINTK( x... )
    6 F7 Q% |1 A. q1 \' n0 f
  50. #define DMA_FN_IN% J$ h- M2 L8 Z$ O
  51. #define DMA_FN_OUT
    " x* R/ K- k, M0 F* g& }
  52. #endif$ Z8 ~' K, a; P4 b( E' ?

  53. ; n+ n! }( ~3 N# A
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)2 R& Q+ _' g7 c. @
  55. #define STATIC_SHIFT                3, N" m( r/ L- [, g3 o0 u6 M
  56. #define TCINTEN_SHIFT               20
    : e6 h( N6 Z4 G8 |
  57. #define ITCINTEN_SHIFT              21
    " ^& w/ [  B/ C0 E8 y( Z9 u9 n
  58. #define TCCHEN_SHIFT                22" Q! _5 |4 i. U2 H% A/ h5 k0 K: s
  59. #define ITCCHEN_SHIFT               23; _, x7 _/ }! x; d! {0 q

  60. - a+ {- N# f* H) U& C( h
  61. static volatile int irqraised1 = 0;7 _8 D, }4 d$ _4 R5 Y
  62. static volatile int irqraised2 = 0;
    # W/ W' d. Q7 }' l
  63. 8 w1 ?, a$ N! h( w; t
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);$ ?3 R$ G2 V4 A  n+ o
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    3 O& W) b" |% d5 \/ H
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);# u+ V3 v: ^( ?8 {$ F

  67. 8 r$ S1 f+ Z9 U% l+ Y6 B5 {. u
  68. dma_addr_t dmaphyssrc1 = 0;0 @5 @: E1 L* d3 h
  69. dma_addr_t dmaphyssrc2 = 0;' x3 p- |" }. v) y8 E/ `5 g
  70. dma_addr_t dmaphysdest1 = 0;
    . M+ P4 F9 \4 y$ Q; ~) h" o
  71. dma_addr_t dmaphysdest2 = 0;
    : ^4 C9 d/ Z( o! W, d! i2 h

  72. / O! r% n. ~) g; \; T' u8 o% d
  73. char *dmabufsrc1 = NULL;
    + f5 J; w. v/ I# F/ ]4 A7 S% m
  74. char *dmabufsrc2 = NULL;9 Q- a4 b8 I  k6 H
  75. char *dmabufdest1 = NULL;
    7 ]! B! K# e4 I' x6 d1 m2 d
  76. char *dmabufdest2 = NULL;
    0 H# s: S) G! L- J
  77. 9 o6 A: e% E. N! {7 [6 O/ N
  78. static int acnt = 512;3 j+ Z2 |0 N3 }1 `% f
  79. static int bcnt = 8;
    3 Q! C2 w4 `0 g, `" v& q9 d# p
  80. static int ccnt = 8;  [' A6 m$ b# q  v2 ]* b) E

  81. 0 M2 |8 n. Q8 T3 M* `0 u
  82. module_param(acnt, int, S_IRUGO);
    8 W3 G  {" R! \/ `1 l7 `2 B
  83. module_param(bcnt, int, S_IRUGO);( T: V$ m3 l- m  D' T* ]' K
  84. module_param(ccnt, int, S_IRUGO);
复制代码
- O8 P3 ~# p2 @- U

* {' i+ P4 [1 z3 T- R$ F( P      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
2 n" Y' ^( a7 i  U7 k0 L, @3 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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。' o; G$ H1 @3 {" L; V
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。, q3 i* I* _4 M& z9 N
) H& v# I/ h6 n+ s5 |$ z& k3 e* t

4 E5 F8 }$ x# `* m' U/ Z0 o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-18 05:30 , Processed in 0.040274 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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