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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 ! m( y+ u; ^1 s8 |( ^# B
  1. [code]EDMA sample test application7 W# j% \( R6 M; K. b3 y( p' t9 H
  2. /*
    9 `9 M4 K8 x& Y* Y0 c
  3. * edma_test.c- y* p. s# z- r+ |' v7 [
  4. *: [* G" {+ C; _$ Z( f  u. p( e
  5. * brief  EDMA3 Test Application( ^! _2 c" H' I. V: V, n
  6. *
    ; ?; C; u1 `$ V: J% i; g
  7. *   This file contains EDMA3 Test code.% J+ l  N0 ^$ W4 Z- I
  8. *
    ( p& W+ d: Z/ e3 G
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    , |# Q5 a! g  h
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT- m" J  e- v6 h2 l+ J
  11. *         TO CHANGE.
    0 V/ j8 N0 S* L) N: [3 N5 R
  12. *1 x6 R7 @6 N& _6 i/ j. @
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    7 _4 E; {% P% G# v
  14. *, y5 a0 `0 H, \* `
  15. * This program is free software; you can redistribute it and/or
    7 `  E! N) G, G5 R
  16. * modify it under the terms of the GNU General Public License as
    6 Q& [5 K6 q4 |, Y4 C+ w
  17. * published by the Free Software Foundation version 2.
    % q0 W% m( i2 w# H# H9 N9 r# q- {
  18. *9 e& p3 M/ h0 H6 a
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    2 W- b' q  x9 J
  20. * kind, whether express or implied; without even the implied warranty  n8 Y5 H) y& b( L& O8 F4 G$ I' G9 q* {
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the# _. i. S5 z+ o" M: `
  22. * GNU General Public License for more details.
    3 j- \$ C+ |! S* P0 b9 [, |
  23. */& d& y( ]$ |% Q& o7 J
  24. * G- {; G5 J% t8 J
  25. #include <linux/module.h>
    6 n8 H5 d2 s- U! T1 M/ q* O( Q
  26. #include <linux/init.h>( }/ l/ d. k5 Y3 \# U/ F* o
  27. #include <linux/errno.h>
    3 X& H; ^( ~) x! i) K; b/ G
  28. #include <linux/types.h>* }+ X$ [/ |9 k) u; N& |$ _
  29. #include <linux/interrupt.h>7 X2 b8 n$ s, O' Y, T
  30. #include <asm/io.h>
    % P$ A6 ~  R' s, \- j3 y8 B
  31. #include <linux/moduleparam.h>6 T: `& _0 ^: i6 `  V) V
  32. #include <linux/sysctl.h>+ K" B- J  M0 F1 L0 e, r
  33. #include <linux/mm.h>
    , j, J; N7 J8 T- d, v
  34. #include <linux/dma-mapping.h>. x8 {1 Y3 v5 J9 Y: q& z
  35. + R5 F+ x( e4 k" \# i0 H' N
  36. #include <mach/memory.h>$ p- A) g  j2 L, k1 W' A. B
  37. #include <mach/hardware.h>
    5 S$ P' k7 ~& E; M9 M+ u
  38. #include <mach/irqs.h>* I' M0 C1 k- s" T% o0 ]+ D
  39. #include <asm/hardware/edma.h>( i  N* k- q# W  B* m
  40. + E# W& W5 T6 L5 Z# ~# `
  41. #undef EDMA3_DEBUG
    ( a+ y; t" l5 d* b* i% f& |0 v# z
  42. /*#define EDMA3_DEBUG*/7 e# ]) z4 w9 O, `" ~" b

  43. 9 ]" H9 z0 y" s4 N; P! {* q: F
  44. #ifdef EDMA3_DEBUG
    9 `, O9 p! B8 x0 ?$ |3 b
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    7 B, i, f7 I# J% o, H) D  N
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    9 |0 q& O" I% j
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    ) C- A4 A8 b" C: v
  48. #else' j4 X! d' |% }( F# A. @; x8 M
  49. #define DMA_PRINTK( x... )2 l8 }  L8 E( n
  50. #define DMA_FN_IN( P  v/ ^- B8 {" n
  51. #define DMA_FN_OUT
    / g1 `$ s3 A8 F; B
  52. #endif
    ( Y- g$ _% W' u9 t) `
  53. / ~2 Y  p2 L( \3 \! {
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    % B3 D* s2 v1 C' |; Y9 }5 u
  55. #define STATIC_SHIFT                3/ y7 F& j2 N. C" x7 m
  56. #define TCINTEN_SHIFT               20
    ! r' X- |9 a* d; \* @* ?/ d
  57. #define ITCINTEN_SHIFT              21
    1 `0 I) R: ~- r! p3 N
  58. #define TCCHEN_SHIFT                22; D/ [# I; T& j( L. C  L
  59. #define ITCCHEN_SHIFT               23/ n' s4 T; d! F- x8 d

  60. 4 Z7 E& t/ @  t1 W
  61. static volatile int irqraised1 = 0;
    5 R: j$ d8 f5 Y* L; \8 S
  62. static volatile int irqraised2 = 0;
    : `6 A0 I( L! V. b9 C/ z

  63. : C% x# q0 b# s+ j; t8 v
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);7 l) l+ ]/ n9 @
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ) R6 `6 Z6 y. s5 Q9 `& L3 U2 _
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    - P) C* }' A. S' G: ~6 ~
  67. ( P% b( y' F; V, D
  68. dma_addr_t dmaphyssrc1 = 0;
    ; r, b$ R5 O/ T2 r; |# W' |5 n
  69. dma_addr_t dmaphyssrc2 = 0;! I2 m! R# g. x( f. ]/ Q' n
  70. dma_addr_t dmaphysdest1 = 0;1 [7 O, r; y5 S5 w# B
  71. dma_addr_t dmaphysdest2 = 0;/ M4 c" n+ Z3 R2 y! I

  72. 2 K9 f6 m( ~5 v# |$ k' J7 D0 j8 @4 I
  73. char *dmabufsrc1 = NULL;& M% C4 K$ d7 M" P
  74. char *dmabufsrc2 = NULL;
    4 z/ |  i6 O' w& B) @
  75. char *dmabufdest1 = NULL;
    2 Y( |& |& x8 l( R: `
  76. char *dmabufdest2 = NULL;
    , y- }4 N4 g/ ]5 \6 U/ U

  77. 8 W% s8 f7 I9 n5 e
  78. static int acnt = 512;
    " s/ a- ~2 a  i8 e1 g
  79. static int bcnt = 8;
    1 z; D1 F  w! M  p( ^
  80. static int ccnt = 8;
    , d3 C9 r3 F0 w7 `* h7 y1 D
  81. : D7 A% ?( u- _0 G  p0 E
  82. module_param(acnt, int, S_IRUGO);
      h+ W$ g: y% w1 J, b; U: i
  83. module_param(bcnt, int, S_IRUGO);1 r4 v# O0 _8 }
  84. module_param(ccnt, int, S_IRUGO);
复制代码

6 o- O! _$ P. E8 @% Y0 D
, b5 J/ i+ h% Y5 Y9 K      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
' S2 `5 U( |) X9 q6 f7 K3 E( Q/ r( F2 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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。& ]: I4 p) ^# U" \3 o, L" {( I- A
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。# o) K- @! s# t& b1 ?4 v

& Y8 L7 K& O' ?+ p4 @; V  x6 x$ u. g. @- a' |! }0 V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-24 23:59 , Processed in 0.043833 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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