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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
; u# j9 ]2 _' `, l2 |$ {5 u# y
  1. [code]EDMA sample test application
    4 \' s; ^! @* i8 U; l
  2. /*3 E! f- g- k' b2 r
  3. * edma_test.c
    6 w) y3 p3 u5 F' x
  4. *2 l8 Z, V; {0 E1 x3 |1 F, }% w
  5. * brief  EDMA3 Test Application
    5 v7 h; S8 l( X& z- D" }9 L
  6. *9 z: m8 X$ X& H" {
  7. *   This file contains EDMA3 Test code.
    ' z! A( [: W0 V. [4 k$ Y
  8. *- Q0 {+ i0 m$ p8 g
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    2 M7 |& s  u: X  O- m9 s
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    + E2 ~* y- V- _: B0 o' }$ E
  11. *         TO CHANGE.
    + r- C2 s& k# i. ]! m
  12. *
    ! i$ {$ `  e. @  V4 a
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    - N* z+ O+ k  w* t5 O8 K
  14. *3 P: }/ Q9 N* I
  15. * This program is free software; you can redistribute it and/or
    / w/ Q& v; K7 ?. q/ s
  16. * modify it under the terms of the GNU General Public License as% G( j! }! }0 d  x: F
  17. * published by the Free Software Foundation version 2./ q) L; X  C0 H
  18. *
    ( @* s8 X6 y0 \& v. Z0 m) l* w" V
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any( e1 I; R; N3 l
  20. * kind, whether express or implied; without even the implied warranty/ F) y/ B# }7 p2 }
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the1 `4 X- T2 _5 T7 S4 S( [+ P
  22. * GNU General Public License for more details.  R, A/ j* O8 U' B
  23. */* q/ o8 R9 C6 k7 ]
  24. 8 r) x' H- w/ m9 _) R! I  \
  25. #include <linux/module.h>- X& e4 G- O$ ?, @/ m% v& ~
  26. #include <linux/init.h>
    / y, E7 m3 t8 {. T: u
  27. #include <linux/errno.h>
    + }* Y8 V* G# z( e. K4 y" \' z
  28. #include <linux/types.h>
    $ J) N+ D4 }* C  A+ Q- R; ~- a) o; `
  29. #include <linux/interrupt.h>& N8 B+ {8 l) I$ M
  30. #include <asm/io.h>" m6 @5 _4 s- |- D
  31. #include <linux/moduleparam.h>
    # Q  q4 b; [# B$ o# R6 O4 V
  32. #include <linux/sysctl.h>  {* R% N: z/ A2 {: ?
  33. #include <linux/mm.h>
    , \$ h/ q) ?2 g+ a
  34. #include <linux/dma-mapping.h>0 d- N$ Z! ^; [3 `
  35. 7 f' m& v2 o1 `6 t4 v
  36. #include <mach/memory.h>: l9 c2 ], c4 s8 q& u
  37. #include <mach/hardware.h>
    7 S$ c. m9 Z3 I% P% z9 h7 g
  38. #include <mach/irqs.h>
    % M2 A6 z  X4 Z" ]
  39. #include <asm/hardware/edma.h>2 ^# x. v8 q* u8 F' K4 ~; s% b
  40. ) R  d3 o) S8 H; D9 \3 l" ]" B
  41. #undef EDMA3_DEBUG; @* \% Q) X! q+ Q! [
  42. /*#define EDMA3_DEBUG*/) T) d6 q4 l  M) Q. _

  43. ' D4 @" l! l$ X+ e& s% d' v) C
  44. #ifdef EDMA3_DEBUG
    9 J" T4 [% N, Z  R7 w( T
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)/ ?. T" j: s& {" R1 s
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    3 V( p6 f+ Q5 q5 y  B3 }5 q+ ~
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    9 B4 v. `- Q  m. [2 ~& u) @
  48. #else
    6 v: h9 e' u9 n9 Z0 w9 i% q
  49. #define DMA_PRINTK( x... )' ]. j" d- z5 ^% r4 Y1 \
  50. #define DMA_FN_IN# M. K  y) \* c; u0 o0 L# c6 R
  51. #define DMA_FN_OUT
    9 Z. {7 k0 f6 O9 G  I6 G2 s- I! n. M6 U
  52. #endif; h2 H& r7 F. p. Q$ q+ U
  53. 6 I$ S* r2 M6 L  b9 ?
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)) k) l, n) W; i9 s. Z) R, y/ u
  55. #define STATIC_SHIFT                31 G8 E. z- s% `" @. Y
  56. #define TCINTEN_SHIFT               20
    . _  B9 x5 d$ T' u; h1 T
  57. #define ITCINTEN_SHIFT              21) v3 E+ R+ O+ V; j! V7 _
  58. #define TCCHEN_SHIFT                22
    ' r' U6 U: d8 H) e  l; v5 D; J+ |- H
  59. #define ITCCHEN_SHIFT               23
    & C/ D6 V4 E( u- G/ N
  60. : U7 {1 f6 P- g0 G- ?/ L1 U
  61. static volatile int irqraised1 = 0;
    + G3 E% k* b$ f* n% Z
  62. static volatile int irqraised2 = 0;5 W3 t! n9 ]% G0 @2 O) @
  63. - m% {( }- L$ M( u# q& J
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ! h' m% v; B7 x$ v" W) L8 K6 D0 {
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    9 K0 ?0 x$ L, m) ~
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    9 v2 n2 v, d  C; D% n3 B5 p) R! B2 x  T& U
  67. ! u% _4 H+ K/ P" d! w5 R: l) e0 @
  68. dma_addr_t dmaphyssrc1 = 0;2 g6 e7 y0 t# K) B6 C$ [
  69. dma_addr_t dmaphyssrc2 = 0;
    / u0 f3 O8 _' L) w
  70. dma_addr_t dmaphysdest1 = 0;& X, o" J/ C3 `, i$ d3 X7 a
  71. dma_addr_t dmaphysdest2 = 0;4 R, |- y" X8 M* I- n' B8 v

  72. ( V! S0 V5 v1 P
  73. char *dmabufsrc1 = NULL;
    ! a& c+ F' b" F5 t, J0 c8 y0 y
  74. char *dmabufsrc2 = NULL;
    0 W+ y% d. W$ f! b" a6 d  f0 p
  75. char *dmabufdest1 = NULL;6 g: }: F0 P- K) \3 M+ b4 N
  76. char *dmabufdest2 = NULL;. Y( d; F. C% v, t* Q) S

  77. - o1 m3 t4 j6 @: J* b, a  h1 m
  78. static int acnt = 512;. @6 b+ {, }& {5 M7 S4 Z6 N
  79. static int bcnt = 8;$ F- o4 }+ @+ H* t6 r  `! O9 ^
  80. static int ccnt = 8;+ z7 v7 D" O* x- P3 T; s" T0 o
  81. % I/ k/ j  a, z: v. t1 l0 Q" J* V+ w
  82. module_param(acnt, int, S_IRUGO);
    * M& M6 H% T. O5 {
  83. module_param(bcnt, int, S_IRUGO);2 a2 f5 u! Y' ^' x$ ]
  84. module_param(ccnt, int, S_IRUGO);
复制代码

" Q4 P/ A4 w  R3 }- Z
( S+ y5 _+ U" L, n      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
+ ~# S  Z! s' h2 c4 Z8 ^6 Q0 Warm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。; B: \# R5 w2 }' C' E: Y, a
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
" c* E/ P. b: S0 B3 r! M( j1 h) O- @+ C* f1 W7 b
# [/ i! B+ n+ T5 \* G1 k- `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-6-9 01:33 , Processed in 0.047509 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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