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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
  u3 E& I" Z* k. X# I0 P
  1. [code]EDMA sample test application
    2 j8 p; o# l. l3 t
  2. /*
    + X+ j, \$ B; k- P9 @
  3. * edma_test.c
    , |+ w9 ~6 B1 z& S  s9 V
  4. *& e) A+ K# Y- f/ Y
  5. * brief  EDMA3 Test Application
    ( |$ M$ W4 l8 m+ s1 d# |$ F6 w9 ^
  6. *
    # d/ @) d: X; X+ l5 x* v7 P
  7. *   This file contains EDMA3 Test code.5 c* a& R% c' g& s  ]
  8. *
    + @3 N* v3 b9 B8 k
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE# w' g! U( ^- o/ l; _
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    ' `- `  j  |2 }! I; E- F( ]) ^
  11. *         TO CHANGE.
    8 F* R, M) ~" [2 v& h# o
  12. *9 l5 \2 Y7 m  g1 c
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    + |9 W, t$ H) ^+ Q  u  b
  14. *
    : h8 h- N, {6 I. o
  15. * This program is free software; you can redistribute it and/or# Y" [) ~- Z5 p+ ^  B* C
  16. * modify it under the terms of the GNU General Public License as
    ' `- I# ]1 [$ v5 y) ~6 H* p/ U
  17. * published by the Free Software Foundation version 2.7 ?( U# t% S( t8 u# D7 e
  18. *# q" b, a1 G. T7 T) j
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    4 x: q* N5 u: F0 I6 I' J2 `
  20. * kind, whether express or implied; without even the implied warranty5 m& M/ P4 u1 j* ]( m! z
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the* j0 _6 {  Y; T
  22. * GNU General Public License for more details.
    , U2 E/ \& m. L  p$ n
  23. */
    9 d: \) Y; b/ {* A, _" I' D! J
  24. ! X* m0 M- D2 q3 W6 ^
  25. #include <linux/module.h>
    8 F% m# T+ i) g" B9 \; e. g; d+ A
  26. #include <linux/init.h>$ \" A  C% u. J/ X
  27. #include <linux/errno.h>
    0 D) d0 s% u  ^8 g& O6 ~) w
  28. #include <linux/types.h>: F; z2 R" a+ W) r" ^
  29. #include <linux/interrupt.h>) a5 C9 H% ?5 d: N3 W6 w4 ?% M
  30. #include <asm/io.h>
    8 v, D  d; ]- ?, @# O5 m
  31. #include <linux/moduleparam.h>1 E1 a6 ~1 b# ^* V
  32. #include <linux/sysctl.h>$ \. _4 f' A9 {) j
  33. #include <linux/mm.h>0 W  Q, O( f0 D1 U' v2 S5 F
  34. #include <linux/dma-mapping.h>
    - P- J  Y3 p9 L3 [5 m$ A0 \- T

  35. # B* p& {4 s4 Y5 M& |6 z5 y
  36. #include <mach/memory.h>3 m# `* g' m( p% O+ h
  37. #include <mach/hardware.h>
      e; Z) A* S* |8 v1 j
  38. #include <mach/irqs.h>
    7 f5 F4 O8 W& o
  39. #include <asm/hardware/edma.h>- I( Y( V4 a: V; r1 h8 m

  40. 0 L  [: i0 Y+ X; ~/ |
  41. #undef EDMA3_DEBUG
    0 j4 M' }- @; Y8 W3 n1 E
  42. /*#define EDMA3_DEBUG*/) K' o; @& R( Q+ J/ q& p2 \

  43. ( t7 ?5 U- u  Y2 \0 D% S
  44. #ifdef EDMA3_DEBUG4 i! {6 \$ ]* x6 A! c8 h
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)8 k  o, Y' q* Q' @2 I$ t
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    5 s7 ?. R2 J& o' D; r
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__); E0 m# R! I: e5 a
  48. #else" `5 @7 c% r; L7 M) \* ?
  49. #define DMA_PRINTK( x... )8 p  A0 \8 Q! M3 ?3 `8 h$ m
  50. #define DMA_FN_IN
    # h' A: a5 @: h) Q* t+ ]
  51. #define DMA_FN_OUT
    * B5 P' H% O6 J: R
  52. #endif
    4 u$ R4 O0 a" c5 ?+ h( E
  53. 0 P, E3 n" }, Q- U, K4 O0 [
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768). E' v/ F. `4 m  e+ ]
  55. #define STATIC_SHIFT                3
    9 ?) ?" |, q: o
  56. #define TCINTEN_SHIFT               20
    * n; `& f4 T. ^7 i4 C. O  Q( m7 k5 _$ q
  57. #define ITCINTEN_SHIFT              21/ c7 ?& N3 i2 i5 t* Y9 x
  58. #define TCCHEN_SHIFT                22
    2 t8 _* h" x- f: `* k6 ^  R
  59. #define ITCCHEN_SHIFT               237 I* e. A# p. J1 l8 w: h. v

  60. , `/ S$ n* j6 {( L0 i
  61. static volatile int irqraised1 = 0;
    / x* \2 |- j$ \' |" }
  62. static volatile int irqraised2 = 0;
    - T9 N) b! q& J: X' a

  63. 6 E" ]* o3 Z4 o8 ?" R
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ( F9 D4 w5 i; m6 w, v
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);1 @/ W5 P1 V/ ]3 \
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    4 W2 Z( D9 W0 j  Q/ \
  67. & x8 b6 a9 N+ A6 m
  68. dma_addr_t dmaphyssrc1 = 0;1 p# K+ t( B0 w+ S4 J; ?+ X. v
  69. dma_addr_t dmaphyssrc2 = 0;
    # m- g3 Z2 D) ]9 O
  70. dma_addr_t dmaphysdest1 = 0;0 d; y. q5 \( }9 N/ g
  71. dma_addr_t dmaphysdest2 = 0;
    5 \2 {2 t2 i+ F' T
  72. + x$ E9 u$ h7 u% ]( y, p8 L# A3 b
  73. char *dmabufsrc1 = NULL;# f- U$ m) Y! w  J- j4 o0 p
  74. char *dmabufsrc2 = NULL;
    % q; v2 x. `5 y4 e. q' }( R1 D
  75. char *dmabufdest1 = NULL;# j; G7 v; k( x& N' s2 S# ]* C: L" l! L
  76. char *dmabufdest2 = NULL;' C; f2 Y; ?. o+ m+ k9 [

  77. ' `% l7 M5 A5 Y  I7 f5 Y4 o
  78. static int acnt = 512;
    . n: ~- a; {  Q1 m. O( n
  79. static int bcnt = 8;5 X) u: t6 p9 l# W2 v- e' G* m. a# b- d
  80. static int ccnt = 8;/ Y! t% V$ j) a; c! c/ [/ B5 [

  81. - a  E( b+ B* ^/ f( A. t+ j
  82. module_param(acnt, int, S_IRUGO);2 m2 ]2 x' i9 d! H- z) R
  83. module_param(bcnt, int, S_IRUGO);
    - }8 q' m9 ]9 r# X
  84. module_param(ccnt, int, S_IRUGO);
复制代码
  a) F) C( O  }$ W! _) u3 k

  ~+ O, q# }# z* |. B. Z      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
3 x) @9 |: `/ F5 i- Harm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。4 S& \0 c; S% b: a  H% Z9 Z+ a
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。* J8 ^6 ]* a6 ?1 b, m/ |

2 B( j, L  E5 U1 Y9 S" l! }: o
# L/ ]+ A) m$ ~2 K) J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-11 16:04 , Processed in 0.040852 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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