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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
( X. t, t- {9 C6 d& ^
  1. [code]EDMA sample test application
    - U, w: r! j4 d
  2. /*! z4 `2 K4 a; h" m
  3. * edma_test.c+ B/ _. S( r; `* T" k: p3 c. G$ p& a
  4. *
    $ l& e8 T9 j& n" R
  5. * brief  EDMA3 Test Application
    % k: d0 s0 B/ G+ M* M+ n+ }
  6. *) m- ?9 B/ V$ Y2 c  n5 P5 [6 B; `
  7. *   This file contains EDMA3 Test code./ V; y1 i# W+ x& m& ~
  8. *- c) w2 n- }; _. t
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    % p' v3 e3 ?7 R, q5 k$ U
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    " s. k( o3 p7 ^" A" C( T: {' W
  11. *         TO CHANGE.% O' ?8 z% |( i& ^( E  I7 \: H
  12. *3 D& Y( i' S' {2 s& m. O
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    7 K$ ?3 |" ]! b3 u' s. _. j' ]
  14. ** J4 k5 c2 K2 d  `& M" W- R* y$ d; e
  15. * This program is free software; you can redistribute it and/or2 K" i$ y. z8 V! U! ^0 g! m! ^
  16. * modify it under the terms of the GNU General Public License as+ b- Z& M5 n) s- D, @
  17. * published by the Free Software Foundation version 2., c7 o% N7 n" R% t7 X
  18. *; |+ U4 v. h6 b$ a# e
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any: n/ X; B: L9 j! p0 o$ A
  20. * kind, whether express or implied; without even the implied warranty
    : p0 Y9 N9 d1 d& q; L/ T
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    / i. Z/ C$ `! `/ f% ~) ^/ D/ |
  22. * GNU General Public License for more details.
    8 L+ a) b9 G; o9 c2 D, g
  23. *// M# n% z9 q$ X% a* S4 N+ F
  24. . y6 K" v+ |" ^6 n7 E4 ^% V
  25. #include <linux/module.h>
    ' n9 g% w. [; T3 v
  26. #include <linux/init.h># m" y' q( @* n% E; f" G  X9 p
  27. #include <linux/errno.h>
    0 G& H  J# t; d7 T) V6 j
  28. #include <linux/types.h>. T* q; K( X7 O( @
  29. #include <linux/interrupt.h>4 [$ H6 }& H0 J- ~5 z" B6 p
  30. #include <asm/io.h>
    + L5 m5 y, i! s3 |+ A& {! M" x
  31. #include <linux/moduleparam.h>
    ( \$ ^, _. ~- ]2 |% p0 [
  32. #include <linux/sysctl.h>
    6 k1 ?% Q/ F2 R8 C. r6 G3 _( I
  33. #include <linux/mm.h>
    & k$ Q" k6 p, K! q7 T
  34. #include <linux/dma-mapping.h>
    - y. J) r6 L& I4 ^" I9 v

  35. - _9 U+ W0 U  x+ D2 V1 ^
  36. #include <mach/memory.h>
    3 S# w) l; w, @4 V0 q7 `1 j
  37. #include <mach/hardware.h>$ l( |0 D+ u! O- z
  38. #include <mach/irqs.h>
    4 b9 d8 q# a  b$ R" A6 s; |
  39. #include <asm/hardware/edma.h>" t+ J% n+ \' H* ]

  40. + d/ y8 P) H8 E% K4 @. @2 P
  41. #undef EDMA3_DEBUG
    $ U; Z% j9 b. F5 v: v
  42. /*#define EDMA3_DEBUG*/# O9 Y3 ^3 @! N& Y

  43. ) F  [# B% f: g: N: m7 b* }
  44. #ifdef EDMA3_DEBUG
    " d! D% r& v0 Y/ z/ u, c: B1 D( C
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    0 B. T0 W/ Z! v7 `; y# S
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    9 c2 ^7 i$ n- A8 o
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    , H' y3 w' w" m# d: x4 o- x
  48. #else( Y# d1 |/ R# }. n& n$ I
  49. #define DMA_PRINTK( x... )+ s" W" I+ _5 C5 h9 R
  50. #define DMA_FN_IN
    % J3 l+ \' ^9 f
  51. #define DMA_FN_OUT
    6 C6 I5 d6 k5 j1 E' l2 p
  52. #endif
    * l0 Q' T& H5 B% Q' `
  53. 7 i/ {- a( p4 P! y( ~
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)" h" H1 H) s+ P$ p( A
  55. #define STATIC_SHIFT                3- y& L- H8 ~' E% _5 y( o
  56. #define TCINTEN_SHIFT               20
    $ E. b, p; z2 W" P! ]( B
  57. #define ITCINTEN_SHIFT              21
    2 N5 h1 u) b. ?" e  |
  58. #define TCCHEN_SHIFT                226 w/ N( J/ C; b: Q
  59. #define ITCCHEN_SHIFT               232 g  H% p5 s# m4 g6 H0 v* g1 q
  60. " g8 T/ B# i/ n) O% N. N/ N7 [, K+ P
  61. static volatile int irqraised1 = 0;( E5 R& Q! Y4 P
  62. static volatile int irqraised2 = 0;" R! c: l) M! h2 y" m3 e
  63. 0 R- O; H+ ^# Z
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);9 t" @- h. ?  X5 o
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    8 y; N# B' z8 b6 @
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ' ~/ H& V$ n4 {2 Y2 i7 k

  67. + Q, z5 ]# m% L
  68. dma_addr_t dmaphyssrc1 = 0;: i) K, \( Z$ U, `: W. ]
  69. dma_addr_t dmaphyssrc2 = 0;
    & _5 j# N" w3 Q& p7 v0 B4 n
  70. dma_addr_t dmaphysdest1 = 0;/ ]: I# e3 ~9 u( e4 q
  71. dma_addr_t dmaphysdest2 = 0;( r' ^0 o1 G( s1 f  s
  72. 1 b: Z% H; H# d* ]
  73. char *dmabufsrc1 = NULL;
    , R$ I3 S% m0 F! y) e6 P
  74. char *dmabufsrc2 = NULL;
    ' i; R8 B9 {; o- D8 r$ s0 X; d( W' M
  75. char *dmabufdest1 = NULL;
    * ^8 z  T. K% O. q) n2 Z
  76. char *dmabufdest2 = NULL;
    1 ~# R8 K1 @6 V, Z

  77. # x, E; [: Z+ {+ [4 i8 \9 \* G
  78. static int acnt = 512;: h! Y* M' K# U  B
  79. static int bcnt = 8;# T0 U* X4 t( v8 N% a6 n- j
  80. static int ccnt = 8;
    ( T, @- |, d. k/ w& y
  81. / M+ }) \9 s" P9 u, a% o
  82. module_param(acnt, int, S_IRUGO);
    & Z- j: ]5 ]$ e) c0 l7 k3 p. u
  83. module_param(bcnt, int, S_IRUGO);& N/ M# |2 X* S% n% u% r& K
  84. module_param(ccnt, int, S_IRUGO);
复制代码

1 x; o$ V6 ]8 Z
9 N$ U3 m* N: K8 ?* q  p1 Z      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用( r8 ]4 R. E/ u; {7 U
arm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。* a  Z. a  P! V: u8 ^
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
$ G8 \$ O8 O1 K) W1 c' y& C, r9 y

, Y1 j& ~9 D) ]* X: h5 X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-28 05:16 , Processed in 0.039557 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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