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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 . g8 H6 y; h4 a! `- N5 a
  1. [code]EDMA sample test application
    2 H+ C% N# i& {2 _" n7 l- s- }
  2. /*5 @$ V9 k9 R7 U6 @; O4 ?* ^
  3. * edma_test.c
    % @" h; v( H( T2 T# }( A  \2 _
  4. *
    6 `; q  }% o- V1 \
  5. * brief  EDMA3 Test Application
    , N2 O( a, z% U) y6 x
  6. *
    + f' M, c# |/ L1 e6 [( W
  7. *   This file contains EDMA3 Test code./ l' j9 N. W* M5 l
  8. *, W) b) h* m- C- A' O3 Y' W7 ~
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    . F3 F0 P6 v  @  u, k1 W
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    * u. `- P' J% G: l
  11. *         TO CHANGE.
    3 L6 X# S: R3 E% r7 k
  12. *! R# P+ X' @1 o! u( B
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/& n) J; f7 G9 l& X3 ]' E
  14. *8 n+ Q/ `" c- y- ~
  15. * This program is free software; you can redistribute it and/or
    ; o6 ?( p- x. Z3 t% k. a/ j3 F2 n
  16. * modify it under the terms of the GNU General Public License as) F+ b9 W8 f9 U5 Q
  17. * published by the Free Software Foundation version 2.
    : B. k8 x( u" x" m- I( k8 `2 s
  18. *
    & T; ~% s) A+ S' M
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    ; Y/ g# l" q! R9 M9 a" _1 t
  20. * kind, whether express or implied; without even the implied warranty
    % U4 `8 K( |* Z. N5 J# O* p3 p
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    ! g" r: C' E; R) f1 B- q# J
  22. * GNU General Public License for more details.
    1 H5 |& m8 J$ V* f; Z- U) l7 e
  23. */, p- V% Y# i+ \

  24.   v. @3 a. T/ x: ~5 _- f
  25. #include <linux/module.h>
    2 w0 g% X' z0 v- d9 _  `6 I# Y+ w! i
  26. #include <linux/init.h>% ~8 v; j# _. l* E, f; j. g; f/ W5 X" K
  27. #include <linux/errno.h>
    9 y- O! g$ o4 s5 w$ }% ~: M! |
  28. #include <linux/types.h>4 L: Z5 V6 g# l- |5 N
  29. #include <linux/interrupt.h>
    ( S1 S! s& R2 `: R- c$ j
  30. #include <asm/io.h>" j" m( n% l' ]8 b5 x8 @( R7 d7 m
  31. #include <linux/moduleparam.h>
    " [3 I- Z- W7 u0 s# R
  32. #include <linux/sysctl.h>1 D+ h* s  L# i9 \
  33. #include <linux/mm.h>
    ! ^, B9 L, C$ y
  34. #include <linux/dma-mapping.h>
    . c5 ]( i- ]* ^9 u( ~

  35. 9 N, ~- T) q& B5 Q% k1 G+ Q4 E
  36. #include <mach/memory.h>6 X. b4 r, ]( Y9 T; J
  37. #include <mach/hardware.h>8 B6 q7 y2 I' _; w5 ?
  38. #include <mach/irqs.h>
    % ?5 @0 ?5 e$ {3 l; a; D( z
  39. #include <asm/hardware/edma.h>
    & \: Z1 h+ c4 V- k' E9 F
  40. 4 J2 _; y% W9 g5 Y# V, O; Q9 p
  41. #undef EDMA3_DEBUG
    - j& C; \% |6 f8 W3 i
  42. /*#define EDMA3_DEBUG*/0 s0 ?+ R" @' P  d& l
  43. " D& m. C0 P* v/ f* t  I
  44. #ifdef EDMA3_DEBUG1 i, O; o" H0 T& x+ R/ |; d
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)4 U. \: y3 _- j4 o$ I
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    % U! F! X, \( w6 w& J0 O% _
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)+ K. O4 E  ?+ ~" s
  48. #else
    ) a) A0 \( o9 @9 u$ |6 _1 v
  49. #define DMA_PRINTK( x... )
    ! V, W8 g" C1 y( X
  50. #define DMA_FN_IN
    $ D3 ?' d. k+ T0 |
  51. #define DMA_FN_OUT& N/ [- m7 T6 R2 [
  52. #endif
    5 S$ E" [, {6 R. w2 r; ]. v8 l: {# Z+ E

  53. - Z% N: N8 X% w' [5 M9 [. z
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    ' E% L4 K$ h8 v( K
  55. #define STATIC_SHIFT                3
    6 ~0 p2 D& e/ j9 Y- T6 a: {+ d
  56. #define TCINTEN_SHIFT               208 r! r. |9 `/ B3 w$ l, l$ ?# [
  57. #define ITCINTEN_SHIFT              21
    : |) E/ {9 P8 C  M& N
  58. #define TCCHEN_SHIFT                22, d7 w* ]. G4 D( I4 V7 u
  59. #define ITCCHEN_SHIFT               23! ?6 M# C; l+ Y  T4 e
  60. 0 D1 s/ L. D+ {
  61. static volatile int irqraised1 = 0;8 k7 a! k8 T6 n
  62. static volatile int irqraised2 = 0;
    1 {0 E3 W/ ?6 L
  63. ( F: h% N0 a+ N, i3 e  q  ~
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    7 K; u/ R" f, Y5 ~& I) @
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    1 b) g. {  J3 ~
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    & n9 a7 l8 Y" l+ w" q# C
  67. / g& D. @. g, E. h5 E- V
  68. dma_addr_t dmaphyssrc1 = 0;
    8 `: _0 K  x, X- T3 }
  69. dma_addr_t dmaphyssrc2 = 0;+ B" j' `2 X1 t3 ?/ S
  70. dma_addr_t dmaphysdest1 = 0;0 }9 V, S5 G( i  K+ h4 v# p8 L
  71. dma_addr_t dmaphysdest2 = 0;# d' e4 @- m$ {+ q- g

  72. : e" X9 b) d7 `9 J
  73. char *dmabufsrc1 = NULL;- y/ {/ {2 J( n( M4 d( {3 c4 r  H
  74. char *dmabufsrc2 = NULL;
    # O) N% x" [/ y, b9 ^
  75. char *dmabufdest1 = NULL;
    ; x; q2 U5 K7 P+ O$ ^, l" o: K
  76. char *dmabufdest2 = NULL;/ ]9 }3 G  X' ~- {0 u  e  L

  77. * z5 O5 z! G( ~; ~9 z& t. e3 T
  78. static int acnt = 512;/ z. B: m7 T' r! _  w6 x$ N' c( ?
  79. static int bcnt = 8;
    6 K! X* b4 ^4 r4 x7 R2 w8 H6 j
  80. static int ccnt = 8;
    # a  M( J. U% {3 X

  81. 9 C- m' c% d3 Y8 g0 w' B
  82. module_param(acnt, int, S_IRUGO);
    ! V. `6 v; \! S, \
  83. module_param(bcnt, int, S_IRUGO);: R- e( T& J) I
  84. module_param(ccnt, int, S_IRUGO);
复制代码

3 U' c9 |5 A: B2 R
" @, |. S1 K$ q$ Y      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
& t6 X/ ?: Y6 z0 A6 _$ Aarm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。8 }7 J5 \( l" v7 N1 l' F
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
1 v' `" F6 e* D# x2 [# D& O7 j9 {, q) M0 p3 I

+ e& F0 C+ r8 H- l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-28 07:13 , Processed in 0.040025 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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