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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 9 t" Y- t4 m$ h+ j. H9 ?- F5 ~
  1. [code]EDMA sample test application! P, B5 M  C+ W% \5 ~
  2. /*7 k+ g5 B/ K* s9 f1 q5 j( _  t
  3. * edma_test.c
    : w: L. k6 V7 n7 _; T3 g5 J
  4. *- N# ?! q& J% h# t# H# j2 K) d
  5. * brief  EDMA3 Test Application
    " |3 p; `% m, d" h( q* y. ?
  6. *
    0 k8 k- h7 S9 _" u* l  b8 }
  7. *   This file contains EDMA3 Test code.- o) ?0 A% b* C' f) I
  8. *
    ; o% o' Z: W$ e2 r
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE1 X9 Z8 J& _1 x) v! ^. z/ ?
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT; k2 c$ t6 k0 v& j  T7 o
  11. *         TO CHANGE.$ B  I) ^! W+ A2 h! g% n( F
  12. *( M* R% d( F% G: U/ Z  O0 _
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/; ~, ]8 o, c/ f# w# Q. I* D
  14. *
    . L0 ]+ d( z) S6 c: c. @2 r
  15. * This program is free software; you can redistribute it and/or8 Y* O! \9 x5 K5 n8 {) i: t5 q
  16. * modify it under the terms of the GNU General Public License as
    ) y5 [" L- I* f% V  x8 Y
  17. * published by the Free Software Foundation version 2.
    4 k0 w3 v4 }- O! s$ P/ g
  18. *
    3 C6 R# }8 B: A: a& t
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any" R/ S7 m$ j4 L& H
  20. * kind, whether express or implied; without even the implied warranty" z+ R) z, B7 {( B
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    / P, ~( n- w( g1 g( _' c
  22. * GNU General Public License for more details., g* ^4 z& F' i- w8 Z4 h2 G
  23. */
    ( Z* [) H# U6 i

  24. / j" p! P1 M, T1 o
  25. #include <linux/module.h># Z  ~/ J* ^4 `% X7 `7 w% V
  26. #include <linux/init.h>
    5 f- d9 G4 o# C1 [
  27. #include <linux/errno.h>! C. r, D4 H4 i+ n" ]0 ^( x
  28. #include <linux/types.h>5 h: B) o8 G6 U) q9 Z, o
  29. #include <linux/interrupt.h># x. W* _, L- [- E# q, `
  30. #include <asm/io.h>
    1 H3 U1 H3 C% v0 ]
  31. #include <linux/moduleparam.h>
    * |2 e1 F6 A3 b+ p
  32. #include <linux/sysctl.h>5 g4 S' w0 t; ~
  33. #include <linux/mm.h>! t. V. Y2 Q+ D+ A6 K7 j
  34. #include <linux/dma-mapping.h>
    6 |: O% U# i1 ^* N7 Z! w( t

  35. 2 H- j- G2 R. c# R- e
  36. #include <mach/memory.h>% O2 ]5 V  `$ Z: T' _' G
  37. #include <mach/hardware.h>
      q6 `) E9 z2 |- i: a- a9 u
  38. #include <mach/irqs.h>
    , L& k4 o, n5 q" q7 [& j+ ^, x8 D
  39. #include <asm/hardware/edma.h>! `( C' K8 h' V3 L, B' N
  40. 3 t( R4 K2 z  b6 q1 f* C) l0 ^
  41. #undef EDMA3_DEBUG
    5 u+ o( w" Y! f8 C( d
  42. /*#define EDMA3_DEBUG*/  g8 ]8 g. a3 n! l( ?. A' f) r# L! J

  43. , m8 b! X* }: L' A' \8 \' ~& J
  44. #ifdef EDMA3_DEBUG6 X" Y  Q6 m/ }4 {& a3 u; l% F+ [
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    - L" R# E* O+ \" b9 j8 d& U4 o$ e
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    , S8 `9 y  V/ }7 `
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__). x8 k! x5 k) C7 y" x  r6 e8 v
  48. #else# P: N' l/ F7 @
  49. #define DMA_PRINTK( x... )) y1 y% A, ^3 }- v0 a# v" l
  50. #define DMA_FN_IN
    5 d0 u5 c6 [* I, g
  51. #define DMA_FN_OUT
    ! {( a# e( A: J' ~, j/ D+ r9 q. P& P
  52. #endif
    9 P: k0 B9 _- y
  53. , ?4 A. m& j9 p0 Q6 X( n; Q
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    # z- R* G) J1 G* w7 e5 v
  55. #define STATIC_SHIFT                3& v) U. X5 B) D6 u9 T4 n1 K% @' M; {0 C
  56. #define TCINTEN_SHIFT               20, Z) K4 _- _# @, J4 S7 _' U0 K  V
  57. #define ITCINTEN_SHIFT              21
    # F; m& t* w8 @# k5 r4 a
  58. #define TCCHEN_SHIFT                22
    ' t0 k( r. ^0 V+ m9 X
  59. #define ITCCHEN_SHIFT               23
    0 s7 F$ ?9 ]! j9 h  b: G' B) A1 A

  60. % o6 j  Z6 r% ~0 x- u2 z1 C/ [
  61. static volatile int irqraised1 = 0;0 n6 G& A" x3 c7 F6 Q
  62. static volatile int irqraised2 = 0;
    ( B. b5 n& M9 r9 c; a  v: R

  63. 4 k) q9 h( K$ z- J0 I$ o& }
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);* p: g5 p! I- a1 w5 h! Y
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);/ [/ ~% w/ F7 f( [% Z* t
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    0 t4 G+ N. x  Z" S* x0 N, U. e

  67. 1 J$ ]$ J; I1 H
  68. dma_addr_t dmaphyssrc1 = 0;
    ! K. ?% R" T; W
  69. dma_addr_t dmaphyssrc2 = 0;
    " V3 T: n* C/ ]' E& q1 G
  70. dma_addr_t dmaphysdest1 = 0;
    / k# ^# d2 P$ ]. ^4 x2 C4 C
  71. dma_addr_t dmaphysdest2 = 0;
    * o+ X6 p0 t6 y* `. X
  72. 8 N/ E% M$ y2 a0 I! c% S
  73. char *dmabufsrc1 = NULL;5 F4 p: P# r/ i0 g4 x2 x
  74. char *dmabufsrc2 = NULL;$ z; ?8 I# R7 U( ^  B0 {
  75. char *dmabufdest1 = NULL;
    - J! Y+ i4 Y$ B2 E- X* e, k' p
  76. char *dmabufdest2 = NULL;
      a6 e' o! U' m) ~6 z0 e  P

  77. + m! m0 I# ]! ]: B+ K0 l1 M# M
  78. static int acnt = 512;; |  h8 B, ]6 R0 {  |4 i: ]
  79. static int bcnt = 8;' p6 P; D; l: v' M- R) _3 f0 g. h; m
  80. static int ccnt = 8;6 X; p) L9 P1 v1 E9 h9 m3 ^4 d
  81. ) o( D* _. ~8 T% G# W2 a4 t
  82. module_param(acnt, int, S_IRUGO);
    & T/ |8 J' _) U. _
  83. module_param(bcnt, int, S_IRUGO);0 D' m- T+ W7 Z0 j! n7 \4 T3 o# g
  84. module_param(ccnt, int, S_IRUGO);
复制代码
6 b6 c, S$ n' {& M: @! ]: `
7 V8 q7 t" Z; m6 u% q9 F
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
) [8 I  r! [+ C  I% narm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
  q/ g5 a' v; j  Q     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
$ H/ h0 Z& p" V0 l) Q
4 I7 {8 O5 K4 x+ [% G; I
& W& i+ T; z6 Q+ {# K# W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-28 20:17 , Processed in 0.039171 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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