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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 . H  Z0 U  m, E+ N. o
  1. [code]EDMA sample test application
    : t/ r  y5 @. J3 M) w
  2. /*. A% g8 K, Z. L4 ]# }* t! ]
  3. * edma_test.c
    * O0 }( `: v* r  F7 Z
  4. *
    8 ]3 Q/ F/ ^5 r
  5. * brief  EDMA3 Test Application; F# u" n* B  `8 W4 X( E: Y' e
  6. *
    5 U* p6 \" s2 T+ h1 e' R; D, c5 U% n
  7. *   This file contains EDMA3 Test code.
    5 J7 ^; L# m. H; Z. w7 T2 y5 A
  8. *
    $ `' |2 \9 S! J# k' Q% _
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    $ O7 w% R6 I) H4 }3 ?
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT
    ; }6 J6 L. }0 g# z8 F+ E+ @4 Q( H4 p
  11. *         TO CHANGE.
    ) y9 |3 U" Y" {2 L4 E4 q
  12. *  B9 {6 w9 U( Z, E
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/" ?  l" u8 k  |: ]
  14. *
    5 c0 T+ b9 p% s( i, C
  15. * This program is free software; you can redistribute it and/or8 x! ]; Q' T+ k1 w5 H: d  s0 C
  16. * modify it under the terms of the GNU General Public License as
    ; V2 L1 `. h& O) a2 d" }
  17. * published by the Free Software Foundation version 2.3 L$ \4 F  t4 N9 t7 _
  18. *4 _# o) b- b; a2 P, s
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    0 ^: ~# `: v- R$ B
  20. * kind, whether express or implied; without even the implied warranty
    7 ]/ Z) D; e! r
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  d' G$ }1 {5 M
  22. * GNU General Public License for more details.
    2 {6 C( ]& q4 {" a' H3 \3 P
  23. */
    - M4 o1 Q. Q7 F/ m) s& W

  24. , M& }' z7 @- I) P
  25. #include <linux/module.h>
    8 F! X4 e, _) a/ P
  26. #include <linux/init.h>3 ~( x2 D% d. X* h) J
  27. #include <linux/errno.h>  n" @3 j) Y% {
  28. #include <linux/types.h>3 F0 c- n* r( [. R
  29. #include <linux/interrupt.h>% w& J1 O: ^) `, M) x+ ~
  30. #include <asm/io.h>
    3 v5 I! b1 L0 Q- J7 a- E% g, ]
  31. #include <linux/moduleparam.h>+ B+ g: W; r9 n1 z5 x
  32. #include <linux/sysctl.h>4 ~; @2 I" v; \* K# V& Q3 X/ o+ A
  33. #include <linux/mm.h>
    ! D* K7 @/ V) Y+ a( F9 X. s2 u
  34. #include <linux/dma-mapping.h>
    ) y- [' x, J3 w0 @: H2 o

  35. / z- B* Y" C! d1 g  N
  36. #include <mach/memory.h>
    . t; s/ @/ S; Q9 _
  37. #include <mach/hardware.h>
    $ B" w3 }; A9 Y" J
  38. #include <mach/irqs.h>& ^  A& j" l% R3 h+ I* M, D2 E8 i( |# D
  39. #include <asm/hardware/edma.h>
    # G4 t1 d  h- i

  40. & ]/ j) {1 k( P8 C
  41. #undef EDMA3_DEBUG
    2 L0 f4 a" |0 e" O" a; h
  42. /*#define EDMA3_DEBUG*/7 a( L; Y" ]9 ?+ |" X2 n8 M
  43. ! O% N& I) l7 `/ G
  44. #ifdef EDMA3_DEBUG6 O* ^% w  o: W! @* Y% `
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    7 }; E* h, \$ }. G
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    ' B% t/ c' Q6 q7 z5 u; `
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)* `# X6 q* b4 `1 j! y8 }6 T3 M
  48. #else
    7 T; k1 p) @- p- J" B1 x. p6 {
  49. #define DMA_PRINTK( x... )+ `( a5 l+ v( D
  50. #define DMA_FN_IN
    & X% L" \. ^( I* {# ~( G1 Y
  51. #define DMA_FN_OUT
    . W: }3 I' k7 {7 D" a
  52. #endif9 X( s) R3 V5 v% f* j' H0 p/ G
  53. % N* f6 K: C7 e% p9 m
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768). K; h0 z' Y8 t) S2 c% u1 u5 m; C: P
  55. #define STATIC_SHIFT                3
    5 M% ~, L8 }  p( I- u) \0 G% T
  56. #define TCINTEN_SHIFT               20  I, p# q0 u# [! O. r) F
  57. #define ITCINTEN_SHIFT              21- A0 w9 }! {3 d. V) j+ A, \
  58. #define TCCHEN_SHIFT                22
    ( |0 L7 q, K& e% a2 b; Y; V: x" L7 U! Z
  59. #define ITCCHEN_SHIFT               23
    : m" b8 L& g- S. V
  60. 3 j2 e  F. `. F! c( w! H
  61. static volatile int irqraised1 = 0;
    6 }- m# F& P" L  N$ G
  62. static volatile int irqraised2 = 0;; [& h' a6 u6 ~

  63. ( Q8 R' p4 ?+ R, r
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);: f: ?, m4 S  y6 |. w' U
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    3 J7 j( g9 A8 t3 W; G7 `2 ?
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    2 g5 N* [% z) J9 f/ d! f, m/ K
  67. ) e7 r5 y4 t/ v
  68. dma_addr_t dmaphyssrc1 = 0;+ ~  K- ]5 G4 }, n  O
  69. dma_addr_t dmaphyssrc2 = 0;
    7 S# Z/ ~5 R# Z/ {
  70. dma_addr_t dmaphysdest1 = 0;8 l# W2 p, ^' ^6 A9 X& \8 n2 U
  71. dma_addr_t dmaphysdest2 = 0;
    2 y& I' \) s% Q

  72. ! B8 X9 ?1 w% z1 }
  73. char *dmabufsrc1 = NULL;
    $ @% u; V; J% c& A% L
  74. char *dmabufsrc2 = NULL;
    " H% S4 X$ I; N# y$ _# ]( w
  75. char *dmabufdest1 = NULL;
    ; d+ ~* U3 d2 I( k# _
  76. char *dmabufdest2 = NULL;
    5 ]/ I2 t; t( z' H5 p% @5 p
  77. - |+ T7 }$ w5 h" {( \2 \& o
  78. static int acnt = 512;
    ) Y% ~! M6 ?5 N% f
  79. static int bcnt = 8;
    8 X5 C4 P- Z) C
  80. static int ccnt = 8;
    ! }1 J8 s" W( X; l" |' Y2 Q, L5 R
  81. / [" g6 b3 ?; N
  82. module_param(acnt, int, S_IRUGO);
    / j* ?: r! Z- Z# l3 ]) q! w/ |
  83. module_param(bcnt, int, S_IRUGO);
    6 |. J5 v! [' M* h/ U
  84. module_param(ccnt, int, S_IRUGO);
复制代码
$ c+ C7 [3 w: H

. o* H. w' _1 c3 F9 @9 k      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用% P  O% T, ?0 j+ J) P& `, M$ E4 r# 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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。8 p+ _" X/ d1 \# i+ [" G
     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
, t9 |, ?* S3 ]% ?* e: I0 A
4 _' ?* W1 D7 x& u, U
9 z+ X* ~2 Q% s7 `& z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-1 14:22 , Processed in 0.041233 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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