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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
+ U( `4 ~9 ?3 Q" M. P9 }
  1. [code]EDMA sample test application0 ], h. U$ m; B7 |- A
  2. /*$ U# R+ @6 ^1 j  z: l
  3. * edma_test.c3 p4 A/ c' @, n
  4. *
    / F; k9 a2 ~5 R" b, Z# R
  5. * brief  EDMA3 Test Application
    / _8 I0 G% a2 O5 p4 r% h
  6. *
    4 z- K; S# V; B" U: z7 J5 E
  7. *   This file contains EDMA3 Test code.: S. [5 b- ~8 E0 r8 S1 |
  8. *
    * ^0 L/ ^9 J  P, |2 }" t7 q8 B
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    " N5 h1 x1 H3 ?. k# R4 ]$ y
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT+ i+ P, @8 f) m
  11. *         TO CHANGE.2 a, b& T4 H, `! W  P1 b: v5 {. v4 U! z
  12. *' y6 x% C. r4 \6 _2 j: \9 l
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/5 b& q" b" P9 ^; N3 N$ F
  14. *( s7 v& y- C! E, @& A$ m. T
  15. * This program is free software; you can redistribute it and/or
    # b5 R. Y$ M! |; o( S; d
  16. * modify it under the terms of the GNU General Public License as
    5 q3 G6 _8 M% K( z- ~5 \
  17. * published by the Free Software Foundation version 2.
    + m( ?9 N" _6 T; W& _
  18. *- n; `1 N- c- q6 R- i8 n
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any4 `6 L* o2 e! t. r6 W
  20. * kind, whether express or implied; without even the implied warranty
    + j, a  M3 b7 M# p
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the- z. ^# ?: b0 t. T
  22. * GNU General Public License for more details.
    ! Z) O( v! c6 Y5 @. g( Z3 Q
  23. */) l5 K8 J, ]$ f( y* o, r
  24. 5 p7 c- ^+ u- S, T1 {2 d
  25. #include <linux/module.h>
    * A5 }9 t0 f; E  V6 O8 t5 k/ k6 _
  26. #include <linux/init.h>' L  a8 ?: G% @7 i; J
  27. #include <linux/errno.h>
    ( P7 ?5 |6 C, |+ p! K
  28. #include <linux/types.h>' n4 D3 ?, u0 X& l" m7 T; o
  29. #include <linux/interrupt.h>. y) N% B; u0 l# K$ O7 o  z
  30. #include <asm/io.h>( v) G9 e! v7 L0 m1 j) {* V
  31. #include <linux/moduleparam.h>
    9 g9 O  n7 X. R  t. `1 L
  32. #include <linux/sysctl.h>% b$ @4 I* H$ E6 A2 F
  33. #include <linux/mm.h>: Y( B4 Q: Q5 r; J1 O
  34. #include <linux/dma-mapping.h>
    ! b* s& R" O1 h6 g- k, R; ?) |) T( p' L

  35. 6 f: k: R3 r6 c& h0 f4 n
  36. #include <mach/memory.h>
    ; M: M" `- X! A7 O' l0 Y
  37. #include <mach/hardware.h>
    8 j/ c! b1 V+ k% ~% a; n) F' I
  38. #include <mach/irqs.h>/ ~, p( ]* Z+ |
  39. #include <asm/hardware/edma.h>
    & W  \9 l3 C: l* K4 T

  40. ) y5 J* z2 [( x- @2 {/ a4 D3 S( K  T
  41. #undef EDMA3_DEBUG0 C! a+ l$ h; b# B' F
  42. /*#define EDMA3_DEBUG*/8 g1 W6 q% [; c1 @5 Y: w
  43. 7 _: Z$ X; V- y$ a% n0 |
  44. #ifdef EDMA3_DEBUG; B! w  a4 Y, u( U% [
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    $ `) |. A8 G9 d3 f) v  C
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    + N: \  B! s% y  ]- x$ W  U) ]
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    . o; b4 x( i  q9 T: V9 l
  48. #else- Q) \, L; j" d4 ]$ w* G7 t, p
  49. #define DMA_PRINTK( x... )0 ?2 v1 H3 S. h+ r, \
  50. #define DMA_FN_IN
    0 I# K& o, [9 i! z7 [7 R
  51. #define DMA_FN_OUT: v( t$ w" H- D' |" o' c
  52. #endif% i" k0 @( P4 l. Q8 S8 I) Z

  53.   u, ~( u) p% `6 F/ B" ~
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)1 [! ~: n$ K! O/ `1 J# c
  55. #define STATIC_SHIFT                3( b5 j1 C$ ]- ^2 y9 B
  56. #define TCINTEN_SHIFT               20
    ( u2 j. M1 O4 A
  57. #define ITCINTEN_SHIFT              21
    7 r$ |( h* m  _! C0 d
  58. #define TCCHEN_SHIFT                229 P; H/ F" z; M  {. S
  59. #define ITCCHEN_SHIFT               231 j! d9 i4 P0 g4 Q# B7 q5 y6 {

  60. ) v" l- y: a% d8 E% z% r, z- u; p
  61. static volatile int irqraised1 = 0;4 _! l2 ?6 k& @: `2 D1 H7 R, N4 i; ~
  62. static volatile int irqraised2 = 0;5 y5 k+ p$ P: F
  63. , g9 f7 j6 F7 \) X+ P& [
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);  E" Z0 N8 b! L- i7 g
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    / `# ?# F7 Y# K/ o3 q
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);) ?+ V1 j+ ]5 d" w' G

  67. 1 {0 P6 l& U1 ?: |( y# D: Q
  68. dma_addr_t dmaphyssrc1 = 0;* Y2 {; |! G! O- b' x
  69. dma_addr_t dmaphyssrc2 = 0;
    7 a8 }% c8 e# m2 A8 a2 X
  70. dma_addr_t dmaphysdest1 = 0;' b& ]6 |4 ^2 L3 F) ?, \
  71. dma_addr_t dmaphysdest2 = 0;
    8 H" R- ~. ~( ~5 w

  72. ! @- s/ X3 l( A- G3 i; G
  73. char *dmabufsrc1 = NULL;
    8 a' C& v- Z8 j# ^; `" H3 V
  74. char *dmabufsrc2 = NULL;
      o7 x+ n. M+ s: c* e
  75. char *dmabufdest1 = NULL;
    1 z% U4 ~. h7 x: ~
  76. char *dmabufdest2 = NULL;% w- X  R/ U2 B7 o
  77. 7 W3 S. @1 w* y8 ~
  78. static int acnt = 512;
    ! P3 t. n8 X. Y8 [- ?, m
  79. static int bcnt = 8;
    2 C  n% S. [, n
  80. static int ccnt = 8;
    . D  R: `/ ]5 Z7 D0 f- U$ l

  81. 2 u4 k7 o/ V1 d
  82. module_param(acnt, int, S_IRUGO);
    2 u' O7 U. v6 C. [* r
  83. module_param(bcnt, int, S_IRUGO);
    ! F7 @8 j# U8 v' y, {3 z" M
  84. module_param(ccnt, int, S_IRUGO);
复制代码

7 y# x4 K) @8 e1 D- h, O. U1 C7 o" W8 V6 x" I" Y
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
! Q8 ~! S# Z* `+ d& earm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
& [! n2 G3 u: I9 s$ x. n! a+ X& k' z     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。, c% N4 ?* ~, s0 |
& I  b- z$ a( z% Z' C6 K8 E) \' |
' C5 g0 s% q& l3 U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-11 05:20 , Processed in 0.039964 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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