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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 " K) q% ^, {% ?, e1 G  ^# [, y! T
  1. [code]EDMA sample test application
    , J1 q1 L2 h/ y7 F
  2. /*
    5 v9 i' R, B4 x* I9 b6 ~# S
  3. * edma_test.c8 e" V) @, ^6 t. b9 d! V( e
  4. *
    ' E' y( r& s6 H: n7 }
  5. * brief  EDMA3 Test Application  |; h  i, d; A, Y0 r1 U
  6. *
    & J) Y* u0 {7 f( M" Y
  7. *   This file contains EDMA3 Test code.
    , E0 C% s6 f# Z2 j6 Z+ L
  8. *
    : K5 m- v9 T9 q- a
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    ; [4 G) }( K' Z1 f- x4 ]
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    6 F6 [, z" P; v8 i" l
  11. *         TO CHANGE.
    ( x) m+ N: X+ r9 i6 M
  12. *
    ( f+ z& z/ Q& c+ [
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    3 d/ o( T+ s' W( O3 T
  14. ** Q/ n! w7 u; X3 j! R/ B
  15. * This program is free software; you can redistribute it and/or
    2 D$ J6 i8 N: u+ Z
  16. * modify it under the terms of the GNU General Public License as
    ( `7 D5 _$ p  K6 V; V
  17. * published by the Free Software Foundation version 2.5 j2 e/ K4 [7 f
  18. *
    9 j6 f5 Z9 }8 H2 ]; i2 i' \
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    7 S! E4 p2 ]4 y4 W: M1 }
  20. * kind, whether express or implied; without even the implied warranty
    2 k) ]2 q+ R" a( M
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    ( O: |1 b) ~2 L* \1 H
  22. * GNU General Public License for more details.9 k7 A  g+ b: D7 p/ o
  23. */
    $ o) J9 N( Q. |" z) A% ]  [* k

  24. * d/ x  t/ c: Y- R" q2 W
  25. #include <linux/module.h>; _1 E1 o- c4 W: A8 u
  26. #include <linux/init.h>
    ! a) Y( J) h- q
  27. #include <linux/errno.h>5 ^3 v4 R6 s% K
  28. #include <linux/types.h>( {; R( ~$ [, n- C2 X' y
  29. #include <linux/interrupt.h>
    7 b  R4 }$ t# o: T1 R6 r' l" N
  30. #include <asm/io.h>3 u. P' N/ l3 q6 {: h5 v6 |; B
  31. #include <linux/moduleparam.h>
    ' x- F/ s8 H+ g/ h9 a- ]* L
  32. #include <linux/sysctl.h>
    : D% f1 h: ]! k, t' w  P, h, i$ I/ S
  33. #include <linux/mm.h># ~- b( O( [# n; O% |
  34. #include <linux/dma-mapping.h>
    4 l; ^  B; H. ]

  35. , j7 T7 R  L1 v/ Q. h% x# F
  36. #include <mach/memory.h># P! a2 _2 n$ m% H/ v
  37. #include <mach/hardware.h>
    $ z. z0 `; x( e" n( K" Q
  38. #include <mach/irqs.h>1 e0 V8 o9 u- l! ~; G
  39. #include <asm/hardware/edma.h>1 k- _7 t$ ?4 d3 j

  40. 9 g2 i8 ^5 |2 y+ _
  41. #undef EDMA3_DEBUG
    ' {% x; ?$ m$ f
  42. /*#define EDMA3_DEBUG*/* U3 E; \2 P% ?

  43. " f1 p1 y- \- S- Z
  44. #ifdef EDMA3_DEBUG
    , a+ T; x, J+ L' k
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)% E! T  m1 w- d0 Y/ A* @1 c, K/ d3 f. X
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    1 B. }4 F" p- Z
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    ! k4 \& j& I4 k
  48. #else
    , B: N+ J+ o3 N" B- o3 B5 H
  49. #define DMA_PRINTK( x... )0 m/ Z0 L! m. P  ]
  50. #define DMA_FN_IN: V2 W4 G: W) ^( v5 V" h% Q
  51. #define DMA_FN_OUT. P/ L9 y3 n  h* u# R# r3 J1 y! {
  52. #endif
    4 c1 k1 u/ Y' D, D& w( g% t! u' q

  53. ( {% n3 Y& t0 {9 \: f8 l5 O
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    % i0 i! P! k0 ?, J
  55. #define STATIC_SHIFT                35 R: [+ n+ p3 H0 K& U+ D$ q
  56. #define TCINTEN_SHIFT               20
    % p' N+ j/ Z& ^3 m5 u
  57. #define ITCINTEN_SHIFT              219 T% ~( }/ f6 m) w  z
  58. #define TCCHEN_SHIFT                22. k9 y$ j, k/ E& E# N  [1 h
  59. #define ITCCHEN_SHIFT               23, A2 a/ O9 h7 ]. n/ [

  60. . L+ W- c" N. E* Y# e7 n4 ]
  61. static volatile int irqraised1 = 0;
    8 m3 N  z. ?3 e1 G- a' H* @& J" e* i
  62. static volatile int irqraised2 = 0;
    ( t) q" S9 H- u6 T7 f

  63. $ p* g$ t% O4 b  n& `; W& C% Y9 H
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    2 n1 n0 u; L: s$ v
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);  K" m* `6 ?! j$ M2 q4 `( N/ E
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ! q2 H6 S# U6 ^/ e: b! E7 X' l
  67. 9 y) a; {5 Y2 `& W/ c  h
  68. dma_addr_t dmaphyssrc1 = 0;# d7 V2 p4 ?' x9 @
  69. dma_addr_t dmaphyssrc2 = 0;' a# i2 E: A, s( D8 l* O
  70. dma_addr_t dmaphysdest1 = 0;
    * {7 C: J2 M  ?* L# q8 u, a0 O
  71. dma_addr_t dmaphysdest2 = 0;
    , o6 v( C& {: P$ [% l& F3 r
  72. 2 j! R; c+ Z* `. ~
  73. char *dmabufsrc1 = NULL;
    / J% O+ P+ d, S7 O- _: O3 b
  74. char *dmabufsrc2 = NULL;# R, t% [* a: h
  75. char *dmabufdest1 = NULL;: _1 B3 r" N6 I; F' R" f
  76. char *dmabufdest2 = NULL;" a7 @3 q, ]5 b: P. t7 @0 ?; S
  77. : Q/ c- D8 H! g$ v( a! Q0 E; k
  78. static int acnt = 512;; A  Z) M6 Z1 @# B# P! D
  79. static int bcnt = 8;
    8 z; L4 _" Z9 Z0 f1 w3 n
  80. static int ccnt = 8;; F. u! i1 T( ^

  81. % w/ a  \: |5 |; f
  82. module_param(acnt, int, S_IRUGO);! X) @: I& p0 m. U  S; d
  83. module_param(bcnt, int, S_IRUGO);! K5 P# I/ U* ?; g6 [
  84. module_param(ccnt, int, S_IRUGO);
复制代码

6 Q- J6 y+ i- [  T+ Q5 J6 w: d/ q/ f
; V2 u3 Z/ X5 ^$ ~: Q4 r1 C+ V3 L      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
! v" s* [1 ?/ B$ L/ W; Darm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。  {# v/ Y  c7 E2 V) W( C0 M
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
0 _2 A/ k2 I) }& @2 P0 V3 _" l
2 n% T( G1 E& ^9 C, {) }9 O1 X$ H) }( O- G) j$ M5 O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-3 20:14 , Processed in 0.038993 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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