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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
; A. N% @. S, T2 c9 b
  1. [code]EDMA sample test application
    ( g" a# b& N% R; h
  2. /*
    4 n- X$ o! {' j  }+ K7 h$ u1 v4 w
  3. * edma_test.c* i; x9 ~0 ^1 s# H: S' M, ?
  4. *  h/ X4 w5 S; h( G9 C. q
  5. * brief  EDMA3 Test Application
    + w' u/ Q6 u, x8 K& [/ H: s
  6. *
    % c' |, S) k' P9 Z# {  Y
  7. *   This file contains EDMA3 Test code.. d5 z) c3 }! S% V* j4 v: ]. o" A
  8. *
    . M3 ?9 N( n4 u3 q6 s2 K
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    ! Y7 l) w5 j- ^' h9 D3 b% w
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    8 L0 i- r' h- q) N
  11. *         TO CHANGE.0 D1 f# W3 a& r( Y" j: I/ G# @
  12. *9 r  m4 w8 [( j  T
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    8 W. j, h% Z% \) l) k" y$ n
  14. *
    + O) @4 Q1 H% b* V; ]. ~4 |
  15. * This program is free software; you can redistribute it and/or. q: f8 V! D' D8 R7 N; j9 N8 ?
  16. * modify it under the terms of the GNU General Public License as
    " z2 l2 H% l9 T9 e( n
  17. * published by the Free Software Foundation version 2.
    ( e& L1 m3 l3 d% J/ X
  18. *
    6 W% J8 y$ P  c5 a  y
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    % N$ e/ o1 P8 M3 q1 ?
  20. * kind, whether express or implied; without even the implied warranty
    ) A" C; p& n, z# T2 m* D3 [& |5 N
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the. o1 G5 b( e' f$ {1 [
  22. * GNU General Public License for more details.) [2 s6 H4 C8 k  t! X5 }4 e
  23. */
    3 z! }- @# g& J' k1 r1 M
  24. 6 ~( h$ j  O2 e; P, I
  25. #include <linux/module.h>
    ; W- }! P8 `! L
  26. #include <linux/init.h>( X3 z, Y9 ]0 L( e  |
  27. #include <linux/errno.h>
    1 C' @0 Q$ ^/ j0 V9 r/ T; {. e. s: N
  28. #include <linux/types.h>$ }( A* r+ k) j) f; _8 j+ C
  29. #include <linux/interrupt.h>- @: A: M, |" D$ L
  30. #include <asm/io.h>
    . ?4 s" ?" X8 S+ R& t
  31. #include <linux/moduleparam.h>
    , }* k  F+ N+ |
  32. #include <linux/sysctl.h>
    2 ^% i' c7 [( T2 u, k+ y
  33. #include <linux/mm.h>
      P0 s( C1 d& H( x( D. V& w- `' U
  34. #include <linux/dma-mapping.h>
    7 y0 n2 J5 `# D& J7 k# J- [$ @
  35. - `& z: c+ m- ~) N
  36. #include <mach/memory.h>) N8 i4 T- F; q
  37. #include <mach/hardware.h>
    / x5 u- `1 Y0 x2 T$ a( e. G
  38. #include <mach/irqs.h>
    5 h6 Y( A& s; q! I
  39. #include <asm/hardware/edma.h>% H, W; c2 p) K. u9 \+ U
  40. : ]; e! `% y% r% A. c7 K4 s5 _0 ]. B
  41. #undef EDMA3_DEBUG+ m: S/ G8 `+ R) s- H, `  h
  42. /*#define EDMA3_DEBUG*/
    $ H* T: s4 S  G

  43. 9 T' _6 {* s0 a  o& T/ d2 V' I
  44. #ifdef EDMA3_DEBUG: M8 Y0 `5 d5 o. X, o% j
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    : @( g9 b" ?7 j' a
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    2 t$ W9 }: g% q
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)! o/ {- Y6 f0 A1 @$ g$ l6 Z7 m8 i
  48. #else& s! Y8 R$ ?# t& h
  49. #define DMA_PRINTK( x... )3 M4 E0 K- N8 ^. A3 u5 f
  50. #define DMA_FN_IN
    + F$ a" A- ?9 {6 p3 k
  51. #define DMA_FN_OUT
    : e; x- [! h* y5 A/ y# f
  52. #endif6 F4 r$ t5 F. N( \1 b
  53. ) o/ {& z3 k3 {0 Q: p/ H1 B: C) y+ j
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    2 |, P9 d: d, e# o
  55. #define STATIC_SHIFT                3
    ' J5 R$ |. Q4 P& g4 `( F* c% ]" A
  56. #define TCINTEN_SHIFT               20" |) H# Z7 |4 z
  57. #define ITCINTEN_SHIFT              21
    2 }& I  H# G; v9 H% A/ ]* C
  58. #define TCCHEN_SHIFT                22
    4 ]4 F- u3 B7 R! s
  59. #define ITCCHEN_SHIFT               23
    9 Q1 x; B, l% O) s' o' z3 k/ W% w
  60. 2 o2 L/ O- N" d3 D; G
  61. static volatile int irqraised1 = 0;2 v% ]6 M  {1 }# g! {* ]
  62. static volatile int irqraised2 = 0;
    5 A# u  J- H# T" L4 l, r2 z

  63. - ~4 n1 M% D( ^( d1 S4 u
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);& {/ n3 R& A& }: ~% i( _
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    0 h0 o5 q) X) g$ @2 X
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);- T  A# \0 V2 f3 `8 t
  67. 8 Q7 a& `! F. f0 Y3 {
  68. dma_addr_t dmaphyssrc1 = 0;
    ' B( o' R/ P, _+ N1 v
  69. dma_addr_t dmaphyssrc2 = 0;5 b8 R( c8 Y4 v$ n: [; |/ J
  70. dma_addr_t dmaphysdest1 = 0;
    1 p: @  G5 L( t( G8 J& m
  71. dma_addr_t dmaphysdest2 = 0;
    ! t" u: ]8 d) F: k# f, c7 n, s
  72. 3 P/ r: T( Z9 ~
  73. char *dmabufsrc1 = NULL;
    * }2 [/ }  t' [7 i1 @
  74. char *dmabufsrc2 = NULL;
    ' ]. v* u1 ?  y1 Q, s
  75. char *dmabufdest1 = NULL;7 Y6 l# u4 L9 Q: ]* W
  76. char *dmabufdest2 = NULL;( z) I8 W1 a. K8 }: V7 |( A0 ]

  77. ; {4 [( R% A; r2 ^& o6 g+ k
  78. static int acnt = 512;+ o! x' \+ V# w" F! N& V1 r
  79. static int bcnt = 8;& ]' }' V5 E( g
  80. static int ccnt = 8;  G+ p9 x. k0 F0 n& ?* n9 C  _3 k5 G
  81. $ k" f, K# G7 X% U
  82. module_param(acnt, int, S_IRUGO);; n3 v% S' s. i) }% U3 P8 F  c
  83. module_param(bcnt, int, S_IRUGO);
    9 ~" Y& b+ o3 Z1 a6 D6 x
  84. module_param(ccnt, int, S_IRUGO);
复制代码

$ i0 a) v! A/ |6 C4 P% l
( ^8 w7 K) p1 R      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
4 U9 c& m5 \4 F$ A( I6 h2 n8 Q6 b& 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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
! g& P' r9 H0 [1 u/ Z     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。% y9 k# T5 m; \9 I; ^* r3 c6 G3 H' d1 o

7 Z1 `" n4 \: M  O
6 ?8 a% E$ i  f$ S0 n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-28 16:49 , Processed in 0.038961 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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