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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
4 ~% m1 U% ^$ Y6 k6 S$ i5 E, d
  1. [code]EDMA sample test application
    - L, ]# N  o, v% j$ f# ~/ b# h0 ?  i* x
  2. /*
    + w6 y/ y8 Z, i8 a! }; a& I
  3. * edma_test.c
    * k7 b8 E. T- u2 o# s- c3 r
  4. *
      i3 f9 D/ I4 G) P* o
  5. * brief  EDMA3 Test Application6 s) H3 P6 g  Y/ Y) C& W" R
  6. *
    . Z$ n7 b0 \- V6 J0 e9 \0 k. D
  7. *   This file contains EDMA3 Test code.( Y/ {# [6 T1 ^1 @- ~& P( g' v& {) K
  8. *% O" [3 }8 M5 ]( E; V
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE8 P0 G: ~6 p" T0 `4 p) W: l. {
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    4 w) |0 J( l5 C& ^
  11. *         TO CHANGE.
    ; ]; J# I& @7 d( d+ t4 G& z# g! }
  12. *
    ; `! z  ~& q+ N2 g1 g, Q8 ?. ?4 t5 h
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/: R* S$ h/ S/ h6 ^6 r$ i  S
  14. *; B2 O! p3 v& `( e
  15. * This program is free software; you can redistribute it and/or' [4 v( b3 c4 D$ F3 G2 _
  16. * modify it under the terms of the GNU General Public License as% W2 Q- z& n& P
  17. * published by the Free Software Foundation version 2.2 e! @, x  t: r
  18. *
    / J: u% a2 N& R: ~
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    7 n9 W+ `8 J& m; @
  20. * kind, whether express or implied; without even the implied warranty5 _8 A! T0 k# F
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + c# a+ ?! S. n" c6 E& E# W% ]; x
  22. * GNU General Public License for more details.
    ! d5 {2 |! N3 y) N0 R& Q
  23. */$ v+ F" M$ g  v% r( P2 z! ~  c
  24. " W4 x8 C1 C8 S; j& {9 H
  25. #include <linux/module.h>1 f' z9 g$ |4 W  n' O$ f" T
  26. #include <linux/init.h>
    ( O/ F2 ?/ x# l& m7 J3 j
  27. #include <linux/errno.h>
    % @* S! _, V, U- O8 g& U; k+ T
  28. #include <linux/types.h>
    ' e" C, `% H7 o4 C
  29. #include <linux/interrupt.h>
    * D. \! A- f' N3 |# N& B2 W0 D( G
  30. #include <asm/io.h># ]% x. k# R- b1 `; v, Y7 s2 a
  31. #include <linux/moduleparam.h>0 Z! x$ l! [) E  _
  32. #include <linux/sysctl.h>
    - I( D7 ?) S2 B* {' A; b+ h
  33. #include <linux/mm.h>
    : O" l# z9 c, S2 S% S0 ]) A
  34. #include <linux/dma-mapping.h>
    : ?6 E! _8 U, l

  35. ( J6 m  ^; \) F: J; y# Z
  36. #include <mach/memory.h>
    0 L; K% H: g9 r8 _- o+ ^1 S
  37. #include <mach/hardware.h>2 Q' ]/ q# C  \; N& M2 L4 d
  38. #include <mach/irqs.h>: C  k0 i8 @1 `6 H& t2 M" @
  39. #include <asm/hardware/edma.h>
    % r3 S; `/ [, e$ g5 y" }! b
  40. # y; ~. G' U  H. ^! w1 Z4 `
  41. #undef EDMA3_DEBUG% I& {! {! {+ H3 [$ ~# M2 N
  42. /*#define EDMA3_DEBUG*/' V+ I* O% V8 M* n& C9 H5 K

  43. 0 s/ A! B9 m4 a9 Z
  44. #ifdef EDMA3_DEBUG# F; x* R$ }9 _* t
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)) y" q0 J3 A+ L# w+ [7 L
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)) F1 O, b+ w1 ~& @
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)( h3 Y: `4 A1 X" n- S# c* N7 ?3 @. X5 ?1 N
  48. #else# u! T1 P/ z, G8 A( m
  49. #define DMA_PRINTK( x... )
    2 [* i) K" s4 [& n# C/ C& i
  50. #define DMA_FN_IN2 ?, I8 Z+ k! e% u
  51. #define DMA_FN_OUT; @( r1 k+ P$ X) f
  52. #endif4 m. w! `3 N8 X. ]( J' j; C% ?) t1 a

  53. * o  u' W) H6 ?* l0 t$ F! @4 o. k  F
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)* s1 V- W: I/ w; `- s! ]# M/ @
  55. #define STATIC_SHIFT                3# F6 j* l7 N/ b- I5 j- n
  56. #define TCINTEN_SHIFT               20
    6 t+ \' A- V# U
  57. #define ITCINTEN_SHIFT              21
    5 J% E' i( l* n. M! p9 P; Q+ r
  58. #define TCCHEN_SHIFT                22
    . a# P$ _0 c" y; R- ~
  59. #define ITCCHEN_SHIFT               23$ @; r  {0 F* ?, Y  e- Y

  60. % |4 E+ T- d, e% i# U" G
  61. static volatile int irqraised1 = 0;2 n' \" p$ N9 d8 k: Q
  62. static volatile int irqraised2 = 0;
    * I4 r6 v. U8 m0 q, l8 A

  63. * R  n1 ^& A) n" v$ I+ A4 U
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);6 J6 H# ~) M) b6 V2 r) t5 r
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    3 H) s2 W% ?4 o8 m6 F; D3 K
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);/ {- L- {* Q% ~+ O' L
  67. 0 k  r1 Q# v7 T2 B* p1 a8 w
  68. dma_addr_t dmaphyssrc1 = 0;
    . g4 G9 g1 W2 j3 |4 t. e; G
  69. dma_addr_t dmaphyssrc2 = 0;3 a* N" x1 y: _( j4 _, q
  70. dma_addr_t dmaphysdest1 = 0;3 f+ o4 o' D& }, v! n
  71. dma_addr_t dmaphysdest2 = 0;
    2 ^) r5 e: C/ V  S

  72. 6 Z( k* t2 ]& S) o
  73. char *dmabufsrc1 = NULL;
    6 O" C! q. }- \  T8 S
  74. char *dmabufsrc2 = NULL;6 r  C( |2 r% t  b+ j2 r1 z/ J. n
  75. char *dmabufdest1 = NULL;
    " W' z, o2 Y% m8 T7 p
  76. char *dmabufdest2 = NULL;4 O; Z! L- }; J6 k1 X; m- d
  77. 6 b' k0 ^* d$ u9 b; Y2 v" `+ h
  78. static int acnt = 512;5 Y: N0 k* W) s
  79. static int bcnt = 8;  R, B9 V2 J( {. h6 A# j5 q: X
  80. static int ccnt = 8;3 }7 ~  ]9 X; |; ~3 h# E0 g

  81. # g1 w0 ~5 ?4 m8 N# R) r
  82. module_param(acnt, int, S_IRUGO);
    3 q% i8 L, ?5 f- z$ ~2 ~8 [& y
  83. module_param(bcnt, int, S_IRUGO);+ ^3 I3 Y. u- P4 m
  84. module_param(ccnt, int, S_IRUGO);
复制代码

  N+ x' l+ ~" s- j8 m
8 g5 M0 n% Z8 g1 m# F8 ^      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
7 x9 X" T- o3 m2 U$ }6 f$ \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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
1 Q5 Y' m9 z; i     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
- o8 p) a1 W2 v' {* I3 ~6 T7 ]- o7 }6 V

+ G; s$ i- N: s/ o+ N2 b9 O7 G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-25 19:36 , Processed in 0.040098 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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