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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 - F7 }! E# h5 t) k1 B$ N0 F8 o
  1. [code]EDMA sample test application
    * @; h7 Y2 r. u: V; L( H
  2. /** J- @- A7 [+ o& s% G7 ^5 P& m1 \
  3. * edma_test.c
    9 Q5 j! u- U) y8 T- J
  4. *+ k1 x  |. V6 h; y& k- i
  5. * brief  EDMA3 Test Application
    8 r- ?/ H0 X) ]% {
  6. *+ z3 M1 a8 b7 I9 @+ w  r" `9 _; n
  7. *   This file contains EDMA3 Test code.6 L1 k+ D" w  h4 u  ~6 a
  8. *- @. ^% X* q8 o
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    9 F6 A2 n# K7 W1 y' ]# k! w
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    0 |3 b8 B" `: t' ?7 Z
  11. *         TO CHANGE.6 s  F) w3 V9 V- G0 X1 L
  12. *
    % x- o% \# J" q9 x! g; L4 Q
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/8 ~3 P% @5 H% {% v
  14. *
    : O. J+ I5 [% D1 w+ q5 v( A
  15. * This program is free software; you can redistribute it and/or
    + r  f: t9 D! i& J7 ^: T# f
  16. * modify it under the terms of the GNU General Public License as
    * L1 |3 n9 o+ n8 H* j5 p# n
  17. * published by the Free Software Foundation version 2.4 X" L3 ^2 S# p0 O; g7 C* t4 B( B
  18. *# o( ^! I. Q4 Q$ Q# e
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    % n* E3 P: H( p0 m
  20. * kind, whether express or implied; without even the implied warranty
    & K& m7 [! h: T5 g# [. A
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    ! @3 c' m1 x2 I& Z% Y
  22. * GNU General Public License for more details.: _; T& |4 a) J7 g, T' O! R' V
  23. */4 C) ~" X7 n$ o9 C% g. h
  24. 2 A+ F1 K+ Y! v3 a7 X
  25. #include <linux/module.h>
    5 R& `2 V8 }/ u+ ~. A) d* C
  26. #include <linux/init.h>3 Y( Z4 u0 s+ d* G
  27. #include <linux/errno.h>
    4 ^  J" H! x6 D
  28. #include <linux/types.h>
    ) D0 H4 _, Y2 }/ N
  29. #include <linux/interrupt.h>
    0 h/ A9 [- X9 z1 M$ ]
  30. #include <asm/io.h>! J; F+ G# r" @: {& ^
  31. #include <linux/moduleparam.h>
    . t! o4 r8 r) M7 E% G
  32. #include <linux/sysctl.h>' E# ~+ E1 W( B- R' ]% N# V6 g
  33. #include <linux/mm.h>
    2 F% K$ Y6 J# ], s3 Q
  34. #include <linux/dma-mapping.h>
    , z% y* V( E- ~, Y$ |4 b
  35. 9 j; u5 i! C! R8 [, j+ i
  36. #include <mach/memory.h>
    1 J% O- `/ `6 k5 i' \- J
  37. #include <mach/hardware.h>
    ! B2 p: S0 V* k3 z, R: H
  38. #include <mach/irqs.h>' Q* D" G. Y2 n3 `2 g+ z
  39. #include <asm/hardware/edma.h>
    # @) a0 _/ a3 P9 D

  40. 6 e7 d' D6 T) W; V
  41. #undef EDMA3_DEBUG0 ^5 x. X$ y& e
  42. /*#define EDMA3_DEBUG*/9 R2 r( w4 f$ J! A4 m2 w3 D/ [

  43. 2 o% a  V/ p$ l/ {
  44. #ifdef EDMA3_DEBUG( V$ z1 A6 i! d
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    ) P! m) F  {9 t- m- z* C( G
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    ) ]+ H' B6 W; T
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__), s5 S% R! ]" p" W4 I. {( L% i% y
  48. #else/ a2 |3 `$ A% l! s
  49. #define DMA_PRINTK( x... )! R& w8 V+ Z/ z6 q) ?3 n) }# F
  50. #define DMA_FN_IN
      J& n3 ^' v+ K6 [& Z; z
  51. #define DMA_FN_OUT
    + r/ f7 y) Z9 J2 ~1 g
  52. #endif
    . o' V) M+ g# ~: @# R! A

  53.   b# D: O& D# b- }( E- K' n( n
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
      W! l- R( c0 M0 A! F! I
  55. #define STATIC_SHIFT                3  R, N6 Z0 Q# n8 d+ P+ I* k
  56. #define TCINTEN_SHIFT               20
    - n  @. F; ~0 Y& R; z. m
  57. #define ITCINTEN_SHIFT              21
    3 _. o- |6 T- J# g; ]7 Q
  58. #define TCCHEN_SHIFT                221 j0 d. o1 S9 u4 I1 _/ z
  59. #define ITCCHEN_SHIFT               23
    8 I! K6 U% X4 F9 n6 B7 W  R" o
  60. : ^7 P# Q2 |+ N
  61. static volatile int irqraised1 = 0;
    + P0 L! d2 g: q5 G2 k3 ]8 L
  62. static volatile int irqraised2 = 0;
    3 x: u* U1 P5 L  Y3 ]# P

  63. & h! U: R6 c" P' O6 ?
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    9 i$ u) v" z, Y% j
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    : |- o+ c* X1 n9 s. U
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);/ H8 u, Q& ^7 L" z  T

  67. / I4 s7 f' J. g/ X
  68. dma_addr_t dmaphyssrc1 = 0;
    & l8 ?: V0 b" D5 q7 ~* ]
  69. dma_addr_t dmaphyssrc2 = 0;
    ; p4 l, A3 a9 X6 `* {) j; K, o
  70. dma_addr_t dmaphysdest1 = 0;
    + S6 z% E" J6 K7 X# m, O
  71. dma_addr_t dmaphysdest2 = 0;
    9 Z1 B' V! J7 ^% {6 |" h
  72. 1 l2 `/ z4 m  N2 d- }
  73. char *dmabufsrc1 = NULL;+ S* P6 q0 ^$ M' Y
  74. char *dmabufsrc2 = NULL;
    / ^) r/ V- a9 G! {- g! @
  75. char *dmabufdest1 = NULL;- d9 F" V1 s& K
  76. char *dmabufdest2 = NULL;2 Y! {+ ?; W6 E9 A

  77. + Y3 d, b3 {% G4 D
  78. static int acnt = 512;
    . K& ?% q! ?6 E. y, ]
  79. static int bcnt = 8;# E- q' ]. W* i
  80. static int ccnt = 8;
    ! Q+ y7 g% B& d; e/ F

  81. , L6 R- |( {. w; {
  82. module_param(acnt, int, S_IRUGO);9 ?9 b9 i! O8 T& \
  83. module_param(bcnt, int, S_IRUGO);
    + H5 Z; M7 R: C3 c9 m# i2 N6 }2 p
  84. module_param(ccnt, int, S_IRUGO);
复制代码

, G8 f( z3 M) U$ l! T: M
, l$ h  a7 J' A      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
$ a8 t& l, {' w1 Oarm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
$ @7 t' ^2 s# j+ Q     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。0 V* x9 T" Z3 g; N

: R- s% h( t/ U+ p1 _" X( Z" O, t. c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-23 05:21 , Processed in 0.042061 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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