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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
7 E( Y" M& P: T$ p
  1. [code]EDMA sample test application
      v5 J6 D( J8 g  H) Y  s
  2. /*
      e* [4 ?& t* M$ f
  3. * edma_test.c
      I' G' P5 q5 Z' J4 ~9 ]: `( q5 d
  4. *
    ' \. M( ~- \+ s5 I' u1 X
  5. * brief  EDMA3 Test Application4 }/ [2 V/ G: _
  6. *
    3 }: v# T% r/ v3 Q
  7. *   This file contains EDMA3 Test code.
    0 d- i! ]( B- i0 M5 r6 x7 @( Q6 o  D
  8. *
    ' X- R# I  a) e5 V% D0 e: Z2 S1 d
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    % V" _4 D0 K) \9 l- W0 v/ _
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT, z' r* B2 B9 Y6 c+ E5 H4 Z
  11. *         TO CHANGE.& u4 }2 _7 Z$ `' \
  12. ** v+ W" k. N& l" V6 [# R* t2 X! R' N5 F" _
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    5 j' u" D  c4 ?& T0 U, E2 R
  14. *' N% S# K/ }7 ~* \4 v  |3 a8 y
  15. * This program is free software; you can redistribute it and/or. s1 d2 c* a7 j3 n* P" {6 R
  16. * modify it under the terms of the GNU General Public License as3 S& V8 ~4 t: \  L
  17. * published by the Free Software Foundation version 2.% D5 d, e0 P$ H$ k( H
  18. *
    8 k/ c# A+ N/ W  J% D% @' P# \
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    4 s2 L, s6 W  m4 }2 }& c- ]
  20. * kind, whether express or implied; without even the implied warranty
    7 q: z! a1 E4 a6 G3 s% w
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the" ]) f+ _8 K; R7 C& q) N; ^# L9 b
  22. * GNU General Public License for more details.
    - f8 k" \) t* ^/ q: j) `
  23. */0 T# L  [6 z$ E9 r3 n" |+ q9 ]" g

  24. 2 t$ K/ W6 J4 S6 M( C. W1 g) t
  25. #include <linux/module.h>8 k% c, K2 {, p& f3 _
  26. #include <linux/init.h>- P+ x% g: P  d- N( e2 L
  27. #include <linux/errno.h>
    . h( X2 }! w5 |: Z* n& l  W
  28. #include <linux/types.h># Y4 h+ k* v( f
  29. #include <linux/interrupt.h>; w1 {8 z, H" M1 E* k/ E
  30. #include <asm/io.h>
      T, E+ e' O, b% Y, R, Z) B
  31. #include <linux/moduleparam.h>" n' p! D; _2 }$ W, T6 f
  32. #include <linux/sysctl.h>5 D* n- O, s8 u
  33. #include <linux/mm.h>
    % {7 W& S4 }/ g' I
  34. #include <linux/dma-mapping.h>' k6 V) `; o7 W/ i# q

  35. & D0 y' l: @$ D5 K0 V  R) m
  36. #include <mach/memory.h>
      U. F. ^$ D" Z) C7 R! J/ C
  37. #include <mach/hardware.h>
    ; G, X  M" G% K7 ?2 U
  38. #include <mach/irqs.h>
    + C! D4 b' g5 W
  39. #include <asm/hardware/edma.h>& r, L- D7 B7 @- ?) P# P7 r

  40. " A/ Z5 {$ N3 ?$ R
  41. #undef EDMA3_DEBUG
    7 Q! B# N8 Y/ d5 U. j4 t2 ~
  42. /*#define EDMA3_DEBUG*/! k$ C% \; M/ m' ^

  43. ( @  y- i: q0 P* P( Y' L
  44. #ifdef EDMA3_DEBUG$ B' ?+ z1 `; M& i5 h+ T% l
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)4 T) s3 m1 o4 v7 `- n
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    0 @1 q. K9 ~5 A
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)' m2 I4 ~) V& S" I# [5 C
  48. #else
    " w& U3 o$ x! \* K; S% ^
  49. #define DMA_PRINTK( x... )% U) C$ I: o$ i7 {- B& Y& p/ k# S
  50. #define DMA_FN_IN
    $ l, r, B$ ^6 w, a1 }: D: U
  51. #define DMA_FN_OUT$ M: i5 j/ L& s. f+ k" C
  52. #endif6 S) k  R3 l2 g) B

  53. 3 L) \- h. F, {0 a
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)# w  X( v: D, c! y4 w' N% u+ e
  55. #define STATIC_SHIFT                3
    ( q7 S3 i8 N, N# \+ f+ l/ |( U
  56. #define TCINTEN_SHIFT               20
    3 k, R, r. O, X) @5 D+ c3 \9 S- W
  57. #define ITCINTEN_SHIFT              21
    / |1 b1 Z* F6 D& a" l
  58. #define TCCHEN_SHIFT                22
    # B# {; f# }0 F# J4 G
  59. #define ITCCHEN_SHIFT               23
    , E4 V- I1 i" R2 f- h8 D; Z
  60. % S7 f* D. A6 H1 H2 Y( b" y8 t
  61. static volatile int irqraised1 = 0;
    $ \3 E* _: i, _( Y1 V' E( K
  62. static volatile int irqraised2 = 0;: p* y8 ]5 r/ @
  63. 1 T- x4 Z9 T+ t: }1 Y0 S$ f
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);/ {5 R) P' Z2 d6 j6 r8 k* |6 I
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ; g* U+ R% C8 X% [5 e
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ) f7 @0 N- ~+ G3 X) H/ h

  67. ( L' G; r4 E3 }+ Q" h( V0 r
  68. dma_addr_t dmaphyssrc1 = 0;4 s- a( V" ?' E7 K/ \
  69. dma_addr_t dmaphyssrc2 = 0;( m9 v8 M$ B8 o& o+ v2 c
  70. dma_addr_t dmaphysdest1 = 0;/ J  Z5 {; c% I% V3 |
  71. dma_addr_t dmaphysdest2 = 0;
    ' @* c& d+ m. x# H9 V" m% c

  72. + U0 t* ^8 x- x  ]( O' t
  73. char *dmabufsrc1 = NULL;2 F8 \# f- q1 \6 w  Z: b) A1 V
  74. char *dmabufsrc2 = NULL;
    9 b4 B' D+ ^; N5 X, ], n
  75. char *dmabufdest1 = NULL;2 N/ }" R4 ~$ I" W
  76. char *dmabufdest2 = NULL;
    " U9 Y. l7 Q4 v; z

  77. , G* P( z2 A. I* o4 o1 Y3 X% g' x
  78. static int acnt = 512;4 ?6 ^# f3 b' ]1 j" M. m/ N
  79. static int bcnt = 8;
    : l$ K4 |5 l' x
  80. static int ccnt = 8;, w+ F2 B3 j9 U6 t5 q
  81. 8 s  V) z6 t/ s  Y
  82. module_param(acnt, int, S_IRUGO);8 ?. G7 l+ b4 i/ r
  83. module_param(bcnt, int, S_IRUGO);
    8 y% h* X1 n5 a) X6 V/ i
  84. module_param(ccnt, int, S_IRUGO);
复制代码

. e* o# x6 |1 J9 T7 N5 v. M) i* F
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
- R, g; Z3 f* q8 \# ^- h  warm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。1 Y2 P% x9 ?4 M% o- ?
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。. r& x6 `0 ~; f6 V  [
$ Y' v1 u( H/ U) M! T

+ ?1 p$ G$ c- F: d& v/ v9 h2 d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-13 12:15 , Processed in 0.045622 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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