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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
' \( z- l, `  S7 G0 K- {
  1. [code]EDMA sample test application7 W9 u4 w, s4 h; S& _8 @% v6 T
  2. /*
    ( N; q  \, Q5 B  g/ n
  3. * edma_test.c
    5 a6 p- R, z" y5 _* J& ~
  4. *
    / |3 o/ C+ K  e2 r' K1 ~2 o
  5. * brief  EDMA3 Test Application) n  \: T* c$ n) b
  6. *
    0 W6 q+ C) t5 ^. e
  7. *   This file contains EDMA3 Test code.
    + T; Q# B: H, D% z6 v7 ^* H6 q
  8. *
    ( m& p+ ~' M$ f7 I6 ]) S( H" h
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    1 w, [6 y5 y% {) m$ U, j7 Q) G4 C0 D
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT3 D! o6 b% m2 c+ A* I; a  G9 v
  11. *         TO CHANGE.- a3 O" m8 Z. Z7 A( Y" _/ H4 h
  12. *: X9 v! s* A# M$ N, v
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/3 A& p6 l! c+ u2 l& x/ C
  14. *2 a3 A0 W8 E! j( r3 `
  15. * This program is free software; you can redistribute it and/or6 x3 M; P) Z8 U# B/ J- q: X1 ^
  16. * modify it under the terms of the GNU General Public License as# }8 d) F% L' C4 C0 m! A( r, a
  17. * published by the Free Software Foundation version 2.. C# v* S$ R  H. A* _
  18. *9 i2 ?6 |, Q% X; m) z
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    4 y- b" d" C; C+ \6 \" r
  20. * kind, whether express or implied; without even the implied warranty
    ; F8 N# w4 x- c7 \
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    ' Z4 I* R* |! k/ k+ p- N
  22. * GNU General Public License for more details.4 |. \# i" t  Z" J
  23. */
    ; @4 A3 Q; T; |! I# T5 S

  24. 8 R  y% n0 x5 {7 k) O
  25. #include <linux/module.h>- P8 K" t! N. o  M8 Q
  26. #include <linux/init.h># b. [" s% Y% s& R- ^
  27. #include <linux/errno.h>4 w/ s# d2 h( z
  28. #include <linux/types.h>0 P  w4 b8 ]- ]# I: w3 o4 b
  29. #include <linux/interrupt.h>
    2 e8 B5 Y2 z* e: b6 h: K
  30. #include <asm/io.h>
      a0 N6 h- t" p0 }4 h# m
  31. #include <linux/moduleparam.h>
    ( l8 e" y4 R3 y+ h
  32. #include <linux/sysctl.h>
    ; J! y; v* \1 F1 C* I. @
  33. #include <linux/mm.h>
    ! N) z/ i* J9 `, b
  34. #include <linux/dma-mapping.h>
    7 F; u$ Q! d1 b' x$ L) h" q
  35. 1 I/ e* T7 ?4 a# T% q/ N3 v! O
  36. #include <mach/memory.h>; L8 c+ s: X, Z3 I2 e5 s; H6 o
  37. #include <mach/hardware.h>
    * ^# B0 r. s2 U- t+ W# l& g$ H2 d
  38. #include <mach/irqs.h>
    1 p* v" m& `& w3 z# w" j
  39. #include <asm/hardware/edma.h>' g7 y  b6 R" J5 S

  40. 3 M4 c9 }2 @; @/ b* {+ n  s7 G- H& @
  41. #undef EDMA3_DEBUG
    2 p5 o# j: s5 ]: Y: w
  42. /*#define EDMA3_DEBUG*/
    9 |+ S5 s7 u5 y5 k0 U
  43. 8 S; l2 `" q! i. \7 U
  44. #ifdef EDMA3_DEBUG
    ( X6 O# n, t0 R" ^( ^
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)% c. U6 X; V% i" a6 v  Q( I2 \, d' s
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    & m7 ]  e, g9 H: D# m9 x8 v
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__), E' p; v1 t0 P& B' a6 O
  48. #else$ [  Y- k$ _* \
  49. #define DMA_PRINTK( x... )
    . G, j, T2 n- a: e5 d4 L
  50. #define DMA_FN_IN0 t9 R, Q* @- j, R2 \- I& J
  51. #define DMA_FN_OUT
    & j& D0 W" a1 t6 r
  52. #endif, J5 o" V+ G. \. a
  53. 5 j/ a5 P! a# {, j5 s
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)8 G& Y& o  Z/ N% @" G# v; C4 G
  55. #define STATIC_SHIFT                3: O* O, ]" t0 t6 s! M* w
  56. #define TCINTEN_SHIFT               20
    + x8 Y# q, l. Y3 E, L
  57. #define ITCINTEN_SHIFT              216 r. u' C3 I$ d6 H) \) o  I$ ]
  58. #define TCCHEN_SHIFT                22
    0 X2 r$ Z5 @. K# Q$ R
  59. #define ITCCHEN_SHIFT               23
    ( Q; N- A6 q$ K& i) M& E

  60. ( \, H0 G# T0 U9 C
  61. static volatile int irqraised1 = 0;. H, n  u' G$ J
  62. static volatile int irqraised2 = 0;
      R/ B; U( a+ x
  63. 2 e" H* j" J  ~, l. ~5 q
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    9 L. `$ `+ l& S0 S' e
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);* d/ q9 _9 v0 X
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ( w( F! s9 l  `2 @; E

  67. " z4 `2 _0 r, B1 {9 O/ w" C6 Z  N
  68. dma_addr_t dmaphyssrc1 = 0;; i1 h! S4 z0 f; Z
  69. dma_addr_t dmaphyssrc2 = 0;4 C( O$ b: `  M% q! V9 J6 r
  70. dma_addr_t dmaphysdest1 = 0;
    - S) u2 ~5 B- i1 |) q
  71. dma_addr_t dmaphysdest2 = 0;
    / m# q5 D( D2 o  |
  72. " v( t9 ~& G; p" k+ c
  73. char *dmabufsrc1 = NULL;
    1 v) v, q% x/ o* [
  74. char *dmabufsrc2 = NULL;3 h4 G( I! F4 f& L+ A0 C
  75. char *dmabufdest1 = NULL;2 @6 Y, l/ ]. ^/ c$ u
  76. char *dmabufdest2 = NULL;
    4 e$ ^; f( T$ \7 B4 B3 \/ F! K8 ^
  77. 9 E" G, W$ N$ {
  78. static int acnt = 512;
    8 C1 _/ C0 a- f: w7 G/ F
  79. static int bcnt = 8;5 Z! N: \6 p( b2 K3 Z- L" N! d
  80. static int ccnt = 8;8 j4 j3 N# N# f, H

  81. & |8 h$ B( d5 ?2 _/ ^( V
  82. module_param(acnt, int, S_IRUGO);+ I& w8 W7 g- R+ g2 f6 v
  83. module_param(bcnt, int, S_IRUGO);
    * _2 x" l" h3 s. w1 |, u) _
  84. module_param(ccnt, int, S_IRUGO);
复制代码
2 f5 N: a  k, B; ~4 f

' C) O8 y8 z0 W' W& G9 ]2 _# F0 l+ [      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用$ V0 m6 z0 ]4 N) s- E+ f6 X
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
# w' A4 T  }, d6 D     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。6 b2 _/ T) V& O0 u

6 e+ B" U" {/ i' l$ {& C# T/ T; }. L# C2 g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-11 00:39 , Processed in 0.039164 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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