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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
% o' m; v* E! e1 C8 w' P' ]
  1. [code]EDMA sample test application" @  L8 L. }3 S; d1 n, v: h
  2. /*
    0 @5 e+ X+ I0 _8 I- N" L
  3. * edma_test.c
    ( q% F, p) R7 i$ L6 q
  4. *& t9 R0 J/ K: C: g% U
  5. * brief  EDMA3 Test Application$ z, w( G5 O- W
  6. *8 ?. u) P7 g+ d
  7. *   This file contains EDMA3 Test code.7 y; L; I( ^; u+ L0 X, U
  8. *- `9 I0 }7 R2 X. b& z
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE5 }0 U. }, V; g1 S  c' z2 O! W* L
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT  c( u% o* k5 @  z* p4 _$ e
  11. *         TO CHANGE.
    2 X7 i0 E' e" k! f
  12. *% O' l. x" n/ H+ F
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
    / J) v& J% i  O6 I, {
  14. *$ b# B) F" L6 \9 [0 c1 y3 O
  15. * This program is free software; you can redistribute it and/or/ s; _  t5 W  k; W( N+ B9 w, O
  16. * modify it under the terms of the GNU General Public License as& M; g6 E1 F9 {$ ]4 z$ S8 P
  17. * published by the Free Software Foundation version 2.$ W6 n- I+ x" j
  18. *
    " m1 @3 v# R" y; \  I
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    ( o+ y& O- ^" _4 s* B3 g# ~& H5 L
  20. * kind, whether express or implied; without even the implied warranty
    - I4 @! [3 \. N* m# `- }4 X7 [% S
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the/ ^# T0 {& [$ O/ I
  22. * GNU General Public License for more details.
    1 x0 s2 H  H: k$ l
  23. */1 T- J9 o1 p0 R* _& Q

  24. 6 U6 {9 [/ q; D
  25. #include <linux/module.h>
    3 B# C/ @( n  C# i7 {$ f# P
  26. #include <linux/init.h>
    7 j0 p. z; G# H' K6 ]5 j0 F) A  ^
  27. #include <linux/errno.h>
    / y/ |3 j2 F: M: A/ D
  28. #include <linux/types.h>
    5 M- G5 E- ~4 Q& ]: q& B
  29. #include <linux/interrupt.h>
      u6 y* g0 j, b+ U0 y" m. q
  30. #include <asm/io.h># K6 x" p4 y" v, n, t0 _- [  Z
  31. #include <linux/moduleparam.h>
    : r) `/ v% s/ q+ L
  32. #include <linux/sysctl.h>( F1 g" ^- E4 j- R' _
  33. #include <linux/mm.h>
    3 z1 \1 H/ ]8 _# v0 ?
  34. #include <linux/dma-mapping.h>
    8 Y5 `/ N' x4 T0 o* J5 e3 R0 {

  35. # p& c8 d- G* I$ k) B7 K
  36. #include <mach/memory.h>! n2 t. |1 P  I8 I) K
  37. #include <mach/hardware.h>" Q4 X( J8 j/ z; S. ?" S2 K8 I4 @
  38. #include <mach/irqs.h>
    * W4 [2 W" o+ j1 @
  39. #include <asm/hardware/edma.h>
    # n) V+ v/ f0 T2 H
  40. : r8 H5 ]8 \/ L9 H) N5 T+ D( w
  41. #undef EDMA3_DEBUG2 o' g5 Z. G0 }. r7 T
  42. /*#define EDMA3_DEBUG*/5 H# e' L( z6 L2 p! b( N

  43. , d' K# y2 D1 r
  44. #ifdef EDMA3_DEBUG. h: {& \( q5 b3 a1 c
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)' I) h1 p# ^4 z
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    6 a# }! m( q/ E: Z
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)( \6 v% @. G- Z/ f9 i- q
  48. #else, t- K% p% }0 y" a& v$ n
  49. #define DMA_PRINTK( x... )
    ! l% p2 y. ~+ E
  50. #define DMA_FN_IN
    " R1 h8 O: M1 [# L, `
  51. #define DMA_FN_OUT
    : S3 d- G$ z$ ]7 v7 @2 ^$ C
  52. #endif! D( {( Z6 s, ~
  53. . j9 P2 \3 _- |- L
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768); }, a& Y5 b2 }+ V/ N" B/ H; e
  55. #define STATIC_SHIFT                3
    1 r6 Z; B4 J3 J" s
  56. #define TCINTEN_SHIFT               20
    + x+ @- B8 n! D. a2 L- X* S% p
  57. #define ITCINTEN_SHIFT              21# p5 {0 l% N9 |, t
  58. #define TCCHEN_SHIFT                22
    0 N6 W6 k: c1 T% C6 |; f' \# n0 B
  59. #define ITCCHEN_SHIFT               23
    # c# [$ H% B. N! d

  60. % I$ T) S8 n8 q, G$ U0 j, c
  61. static volatile int irqraised1 = 0;
    6 K; O& t, q6 w& ]' F, G% d
  62. static volatile int irqraised2 = 0;
    # w, O) X+ K  h9 N, {7 w7 {
  63. 2 ~* n0 [% X6 a' q+ ~
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);9 A; B, P2 G+ I  j6 ^
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    $ X4 F8 @/ s- `! T% r' V" Z
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);0 p' I: I; e; u4 B! E$ y
  67. 4 O& K: E) j* d4 Y! R5 Q4 J
  68. dma_addr_t dmaphyssrc1 = 0;
    ; I0 h& E1 D+ `; N7 a
  69. dma_addr_t dmaphyssrc2 = 0;: I$ ^4 o9 ?7 I; z/ v
  70. dma_addr_t dmaphysdest1 = 0;; ]9 n& p' f: w, }
  71. dma_addr_t dmaphysdest2 = 0;# }6 w- h3 q, H7 D" X5 j& K  F

  72. / C$ u, c& a5 s- C
  73. char *dmabufsrc1 = NULL;
    2 m: F' \# A6 x* k3 j
  74. char *dmabufsrc2 = NULL;$ P1 W' g, ^# Y. t+ _& A& N; \
  75. char *dmabufdest1 = NULL;/ y9 b% u9 @3 M' J3 _
  76. char *dmabufdest2 = NULL;" H  k/ |+ A# |' b5 e& F
  77. . K0 [" c; N; t3 Y' X, `5 S
  78. static int acnt = 512;
    + r1 A+ m0 e* t8 ]
  79. static int bcnt = 8;
    : D' t1 O. ]0 ^
  80. static int ccnt = 8;  M3 L) L$ m: u) E! P
  81. ( @* A7 K# v, Q; ^
  82. module_param(acnt, int, S_IRUGO);( F$ M/ ?+ P' o9 H( d
  83. module_param(bcnt, int, S_IRUGO);9 D( E8 _, R3 \5 D9 V6 a
  84. module_param(ccnt, int, S_IRUGO);
复制代码
  Z% b( j8 J( Y: I) {

' X9 K' Y' k3 P+ p& j# m9 I      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用+ t" o3 W/ O3 G) I1 h8 x: Q* N
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
( v/ O3 L$ L! @4 u     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
: r6 Q, X. ~7 G/ N6 y# a7 {; p" u- i$ |! A  ^

5 f% Y) W4 M+ R! f! D
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-21 05:58 , Processed in 0.041944 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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