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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
; m6 B" y- c& @  ?+ ~; J2 h6 b
  1. [code]EDMA sample test application
    , B$ t" s/ J, i, ~
  2. /*
    % Y6 B' s% D2 H3 R4 k
  3. * edma_test.c
    $ ^6 ^+ g( H; ~
  4. *+ K% \% G+ g' B/ a$ Z# Q& k
  5. * brief  EDMA3 Test Application4 H/ n- q. Y0 p) O& [7 n
  6. *
    ! w0 v8 U6 @0 W. R( i. n
  7. *   This file contains EDMA3 Test code.
    ) Y, E- |- W% g
  8. *
    . j9 R% |5 ]5 C5 d* c
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE' C" j: R9 D6 j% j
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT: F: @& ^0 p8 h8 B( j1 H
  11. *         TO CHANGE.
    % Q$ `3 f8 l3 e$ B0 X; \
  12. *5 a+ l9 z3 j$ a
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/: y6 R9 r1 h0 Z9 T3 o8 W/ T
  14. *, D$ \6 N# j; I$ |# D
  15. * This program is free software; you can redistribute it and/or+ e5 m; y) A4 Y  W# z6 x* P  p0 I
  16. * modify it under the terms of the GNU General Public License as- t6 t$ P8 W& H" _8 T4 V2 f, l
  17. * published by the Free Software Foundation version 2.
    , ~( y" m4 T0 [! ]8 _5 {
  18. *
    ! m. O6 r' E- G
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    , t: \3 a$ p1 c' P/ `8 J5 q1 y6 C% E
  20. * kind, whether express or implied; without even the implied warranty
    # ]9 e8 l/ e" x/ l9 [
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    ) O4 a8 U8 s( a
  22. * GNU General Public License for more details.- w9 t. F2 j) C: ]+ {% ^
  23. */
    ; V: F- ?8 P' w5 i; u7 L$ q1 I4 s
  24. 6 A  e: a* E. @1 n: M
  25. #include <linux/module.h>) C! O# R! Z5 D3 S7 q3 z- Q% R6 u
  26. #include <linux/init.h>
    8 {0 L0 {) f1 L8 \7 G! v
  27. #include <linux/errno.h>
    8 K: e9 z8 N1 K1 _1 {8 ^' w
  28. #include <linux/types.h>
    8 m$ w9 H; v/ t1 ~& N7 w. r
  29. #include <linux/interrupt.h>
    ( D  N0 K3 R; F: z4 M
  30. #include <asm/io.h># P# ?" K7 |, m: \( b
  31. #include <linux/moduleparam.h>/ Q) p' C9 i- O" y! o1 ]8 z; s6 @+ Y
  32. #include <linux/sysctl.h>
    - t& ^0 p/ j* Y, O4 h6 X4 e: F
  33. #include <linux/mm.h>
    6 c, @/ d' `8 ?; R$ }) G: `
  34. #include <linux/dma-mapping.h>
    8 q% O$ X) F: W" B# R) A

  35. 0 T/ c( j6 e3 F2 B! h6 p
  36. #include <mach/memory.h>: o1 I' g) W* T1 _- B9 _4 x
  37. #include <mach/hardware.h>: S2 T" R8 p9 f' L  Q4 h* l
  38. #include <mach/irqs.h>
    $ j/ h. G" G# X' F6 j* D
  39. #include <asm/hardware/edma.h>
      I3 L1 @+ [; E" V& T5 L+ a

  40. # y6 ]- K% n8 M. I' s/ r. x8 _
  41. #undef EDMA3_DEBUG
    ' q+ \$ \* ~( E: g7 R9 [
  42. /*#define EDMA3_DEBUG*/
    % ^0 N4 f, q% M2 g2 r# {) j$ I

  43. % \# o% ]" {6 P; W8 [# O
  44. #ifdef EDMA3_DEBUG
    6 z2 C% N( g6 t4 h* P5 ^1 g
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)% ]  a3 }) H  }9 H9 o, z0 q2 X! s
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)4 j' l$ v! M- O5 @' O
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    . V1 ]& s4 w/ Q0 s/ @6 |
  48. #else
    ; L" K1 x& u- F5 X! @" F! v
  49. #define DMA_PRINTK( x... )
    $ v: f# g0 h9 d0 P5 ^$ g+ L, N; N
  50. #define DMA_FN_IN
    " g: ]" W  d' U( Q" _! O
  51. #define DMA_FN_OUT
    2 ?& M0 I5 P( e7 U4 l# V  I; e
  52. #endif4 n# E9 Y+ n) q9 ~

  53. 6 j, {  A7 R+ j) B- `0 f) k
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    ' z' T/ k- W# t# ~( p( G5 u( W
  55. #define STATIC_SHIFT                3+ F# U3 T) l8 Q- {) F
  56. #define TCINTEN_SHIFT               20# ~* P, i5 M3 f' X- q! v
  57. #define ITCINTEN_SHIFT              21  b8 b; a8 g* ^6 l
  58. #define TCCHEN_SHIFT                22
    6 U, g+ U7 M9 S' o
  59. #define ITCCHEN_SHIFT               23
    % x3 |/ h. s/ F8 J* F

  60. . L. U2 _- i) g7 f2 J
  61. static volatile int irqraised1 = 0;7 R+ k+ |& |) \+ j7 i# a
  62. static volatile int irqraised2 = 0;+ q, K8 H" Z! k

  63. 3 ]$ Q2 r( F1 j- c
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    * K9 x" T2 o# q
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);0 F* T( `* x; b! m9 F4 o
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    9 C% \, ?! q2 e( ~) q: |3 ?4 B5 r2 _
  67. 6 J" U& v+ u1 t! s; I& y: U& y
  68. dma_addr_t dmaphyssrc1 = 0;7 X5 \9 M5 U' ^2 Z2 g& {
  69. dma_addr_t dmaphyssrc2 = 0;
    " h* o% x. z5 E/ G/ Q
  70. dma_addr_t dmaphysdest1 = 0;* p4 ^' B4 p2 k' h9 z- K: K5 g
  71. dma_addr_t dmaphysdest2 = 0;) `$ L% `" a) u: @- s0 ]

  72. # s% G0 B7 G$ c% \
  73. char *dmabufsrc1 = NULL;
    + j6 u" n$ V+ O1 i5 v( t' ]
  74. char *dmabufsrc2 = NULL;
    . k9 J3 f0 E( g1 f, U3 V
  75. char *dmabufdest1 = NULL;
    ( S& W$ Y: Y4 a7 a" [/ q. D: H
  76. char *dmabufdest2 = NULL;" {8 A+ J8 w7 L$ a- n

  77. 5 l8 P7 k; Y  W* c0 g0 n4 W2 s
  78. static int acnt = 512;/ [3 p% j1 S. {+ p
  79. static int bcnt = 8;4 b: R! [! g6 a+ R
  80. static int ccnt = 8;0 y( g* _9 i: P/ A0 W" r

  81. ( [3 |$ Y  K6 H: D" m; ~  ]( {
  82. module_param(acnt, int, S_IRUGO);
    ( V/ Z- G9 U3 D6 w. X4 u2 k; J9 z
  83. module_param(bcnt, int, S_IRUGO);
      b; d1 \1 J6 d+ S
  84. module_param(ccnt, int, S_IRUGO);
复制代码

0 J1 M) q* v  g8 E: ]5 E4 A# H! S% ?7 H1 K9 E$ |! J  w, g
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
; X  Z  A2 T: Barm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
& n4 r5 F: N5 Z  M     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
' |, m4 U% F2 n, H6 f# f7 [3 J, w: F& y/ P/ b. F
* d! Q) F: p) X" f# Z! Q. `! P# |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-22 07:27 , Processed in 0.040271 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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