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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 ' S% F' ^7 T& g3 z* n) ^
  1. [code]EDMA sample test application
    & o3 P; g  F2 J' R, W2 g
  2. /*& P* r  A6 g5 n* [" f! U& Q
  3. * edma_test.c) Q- J8 V2 R* x) \: e1 H7 `
  4. *
    ; F  W& G, O. u- G0 e
  5. * brief  EDMA3 Test Application7 L7 L1 S0 I  ~- K" {9 ?% y
  6. *& {% G/ d9 u  k& P
  7. *   This file contains EDMA3 Test code.' s; ~0 N  u% x  H# x; a  _1 q
  8. *; y" a. A* p- P- m/ C
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    9 \( J/ R! Z% b2 W
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    9 G1 r( }6 d5 L# j* J
  11. *         TO CHANGE.2 e$ `/ L$ P3 c/ K5 r3 ^
  12. */ S' W0 O( v8 ~, g7 b* b
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    ( Q1 O* @, \$ p, a! C
  14. *
    ; |! B& ?( y! L
  15. * This program is free software; you can redistribute it and/or
      I$ C1 }$ A) ^* A3 M
  16. * modify it under the terms of the GNU General Public License as' d+ |# k# O7 B. v9 C
  17. * published by the Free Software Foundation version 2.2 R& S: \3 T; N, o  y/ Q9 B
  18. *$ T; v+ x# v' r9 Z
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any# ]1 w3 A9 |5 V+ r
  20. * kind, whether express or implied; without even the implied warranty6 Z4 a' F; F& k% j* A+ L
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  Q- @4 P; K% c! B8 x$ n
  22. * GNU General Public License for more details.; b/ ]1 }( X9 o8 W* P% Z+ g
  23. */- L# y6 ~. v: K$ ]& [3 c6 z) _- `, I
  24. # }* n6 {. a+ v0 @+ q+ `) _" i3 @5 i
  25. #include <linux/module.h>
    % C+ q8 U) g3 n1 ]- z! i  d
  26. #include <linux/init.h>
    $ t3 h( E7 p9 R2 v" i
  27. #include <linux/errno.h>
    6 B# \9 x2 E9 C8 b$ [2 U
  28. #include <linux/types.h>$ w5 Z: I/ ?, ?9 X! {5 `
  29. #include <linux/interrupt.h>
    1 j! `: F/ k; }. {. Z+ F
  30. #include <asm/io.h>7 [, G/ N+ u8 N" R5 A' R1 j4 ~
  31. #include <linux/moduleparam.h>
    : \9 g+ y0 \% a$ \7 @
  32. #include <linux/sysctl.h>9 F# e" l0 J& V, @$ e+ v% u. Q* S
  33. #include <linux/mm.h>
    9 x6 U/ K& ]1 j# S
  34. #include <linux/dma-mapping.h>
    9 H! i# q2 G! h; J; m
  35. 0 F$ {6 E% S4 r( y: V+ v
  36. #include <mach/memory.h>
    ) H) t; ]5 D4 T# s2 e" Y5 M
  37. #include <mach/hardware.h>
    ) w3 X' \2 A3 C# K/ m' j, a# ~
  38. #include <mach/irqs.h>0 [/ t/ r; b7 c1 y$ a. g
  39. #include <asm/hardware/edma.h>
    7 ^3 L3 b3 q1 S" u
  40. 5 J8 ^! o8 m  t# E& `
  41. #undef EDMA3_DEBUG
    # d( e! H4 F4 d, }6 s
  42. /*#define EDMA3_DEBUG*/6 ~) T9 i/ P2 A6 s% i
  43. 4 P* T+ }7 N& m4 R
  44. #ifdef EDMA3_DEBUG
    $ a" h0 t0 m# t. x" ~- x$ \9 f
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)3 F4 {% ]# N6 C, |
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    - S: R1 @0 r8 l7 h1 M7 g' U2 ^8 b: ^2 M5 c
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)1 x- V! k, f. ^' l: t
  48. #else! J% q2 n0 ?8 e" Q7 K' e
  49. #define DMA_PRINTK( x... )% N& |+ W/ K6 H% G6 l7 y
  50. #define DMA_FN_IN
    ; `8 e3 c+ f0 b, R5 v2 ]
  51. #define DMA_FN_OUT
    $ I* A' i, {7 A' k& G
  52. #endif
    # E1 c$ ~; _( s6 }+ T

  53. * f; T& d* [0 d1 _) V. ~. o0 @
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
      @0 v% J# M0 V2 c7 B
  55. #define STATIC_SHIFT                3
    . h/ L" }( O# _
  56. #define TCINTEN_SHIFT               20' x* G- a$ _* r
  57. #define ITCINTEN_SHIFT              21" R" |% _$ o% ]* W
  58. #define TCCHEN_SHIFT                22
    ; `$ W( K( y( p" x4 e6 h
  59. #define ITCCHEN_SHIFT               23
    7 x) W4 p6 C! S+ v8 f

  60. 6 M& [# N) e9 E+ }  d& ]4 Q; s1 D
  61. static volatile int irqraised1 = 0;8 c+ a4 G$ e, F; _- {( {* |
  62. static volatile int irqraised2 = 0;
    8 {/ |8 {+ t( X6 R  }6 J  n

  63. 3 t! B* _1 Y/ q; e$ Y
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    8 p$ C1 ]' }8 n; J% x3 M# M0 a6 v0 }
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    2 v, B1 {+ l8 y: [/ `
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    : v, h: O9 v2 L4 _
  67. 4 H4 X# H7 F% ^9 Q
  68. dma_addr_t dmaphyssrc1 = 0;
    / t- O" c& y/ M4 v) e$ M# x
  69. dma_addr_t dmaphyssrc2 = 0;! U# a) J4 ], N+ b; ]1 X
  70. dma_addr_t dmaphysdest1 = 0;
    " m+ S' W' \' @  A2 g4 p( T$ r- H
  71. dma_addr_t dmaphysdest2 = 0;
    , d7 {7 Q0 N/ E8 x* ]/ I

  72. / h& e6 F; S% _' Q; |5 b3 V' j, C
  73. char *dmabufsrc1 = NULL;
    ; ~" }. d! j* a' g
  74. char *dmabufsrc2 = NULL;: O0 U; _8 B- j1 h. j: a
  75. char *dmabufdest1 = NULL;9 Z  j7 A) f5 D2 ~* h
  76. char *dmabufdest2 = NULL;
    6 p. T8 u% ^( q! Y8 U

  77. ( T. u/ x1 y3 n; S" y9 R
  78. static int acnt = 512;
    ( j& p+ z& {- m$ t! D1 s( j, ]
  79. static int bcnt = 8;
    0 `2 s. J; f. [& w7 R" Q
  80. static int ccnt = 8;
    ; J  I% c" T9 P! t
  81. ! U5 q4 C/ T) e0 P3 s/ H
  82. module_param(acnt, int, S_IRUGO);: m0 N; B2 E( h$ S" o- A! p6 r% [
  83. module_param(bcnt, int, S_IRUGO);
    " |0 u% b- g3 `0 Y9 q
  84. module_param(ccnt, int, S_IRUGO);
复制代码

  |. k- U1 s6 _! Z0 ^  O& @  S& Q% ]$ f4 [9 g* ]0 q
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用$ K# A. e7 M6 ^6 W
arm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。. {' L8 y+ k. U) h5 ^2 R( Z1 V8 N
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。! b# m0 q% C8 T- x4 I& v
3 G9 A3 a2 }' J, |4 Y6 ?: _& {
' B. `7 W0 J9 j; w* M1 b$ |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-9 17:15 , Processed in 0.040826 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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