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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 7 W9 m5 S3 a# E! R/ q$ p! i
  1. [code]EDMA sample test application
    . Y% }9 k. W4 [% ~9 Y9 C
  2. /*3 f: X8 `# |( ~4 O- d
  3. * edma_test.c- H& E, [7 K1 K- W& _. Q; I  q
  4. *
    4 F9 b  w$ N7 R: ]7 d
  5. * brief  EDMA3 Test Application$ u' n7 }5 P% H6 b% p. B9 g2 q
  6. *
    6 `7 W  e! ?: y8 j! v/ x6 M& L
  7. *   This file contains EDMA3 Test code.3 L3 d4 z3 c8 y6 ]
  8. *
    4 w: i* L) M7 G5 @! Y5 T
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
      C+ ]+ |2 W% I/ `4 E( o
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT9 c( |, h  j/ y
  11. *         TO CHANGE.; X. L! r6 k+ F8 f
  12. *
    " k5 z) A  ]# [
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/+ A  m6 c: e. w% p$ x+ y  N
  14. *8 Q# H; X* O3 }
  15. * This program is free software; you can redistribute it and/or: c, ~' A9 O8 \3 r" |
  16. * modify it under the terms of the GNU General Public License as
    6 D2 ]" W7 l. l" p0 |# d) ?2 M9 I+ U
  17. * published by the Free Software Foundation version 2.6 D+ T1 P9 M% c0 \" j% I
  18. */ `$ s- l5 k0 j1 d8 K. C- N' y6 W8 q
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    1 c/ L9 e. S2 F8 u! W( G  @
  20. * kind, whether express or implied; without even the implied warranty
    . q( H$ t5 J+ T, p6 B; w
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the+ \* m/ a2 B& S1 p! r
  22. * GNU General Public License for more details.+ s- M; f) O% b+ K  P: i$ _' H- B
  23. */! c4 J! q. y+ f0 m+ K. w

  24. ( Y; R) n6 M( R
  25. #include <linux/module.h>
    ) h. Z* H: O) [- O9 n
  26. #include <linux/init.h>4 W. Y# q! o4 b) {8 U, ?) N# Y
  27. #include <linux/errno.h>
    1 a( Q) w4 ]3 t# j* M+ H
  28. #include <linux/types.h>
    4 _7 ~" p0 L2 O- z2 A3 p. g
  29. #include <linux/interrupt.h>
    + C0 A* G9 P( R" o
  30. #include <asm/io.h>; l8 _$ L) y' }0 A% B; T5 v
  31. #include <linux/moduleparam.h>
    % M, N: D8 H  A; }3 j+ g
  32. #include <linux/sysctl.h>
    ( v+ F/ l2 u6 X( O2 r
  33. #include <linux/mm.h>8 v: a) c7 Q# m& m; r5 Z
  34. #include <linux/dma-mapping.h>
    , \, t- d  ]3 O: ~( q5 H  h: _
  35. 6 i% O; u" r/ H3 Z
  36. #include <mach/memory.h>/ F, h# J5 |  K: y+ T$ S1 J
  37. #include <mach/hardware.h>6 U: w* g% V+ _
  38. #include <mach/irqs.h>
    2 i4 I0 D" O% z3 E
  39. #include <asm/hardware/edma.h>- h4 v& C  g. T
  40. 3 V( ?. O7 L% I' K
  41. #undef EDMA3_DEBUG* u# I" x. A! z
  42. /*#define EDMA3_DEBUG*/
    " L% t9 E4 ?2 {
  43. , z) g* N7 \2 H- o' C+ i
  44. #ifdef EDMA3_DEBUG
    ( t- J' F+ E( M8 D7 V
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)1 [$ R% @" `% K, ]# a7 m
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)+ z3 x2 n/ U" d/ n! b! A
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)6 K0 H6 e/ o" q8 u. C1 P! m- A
  48. #else
    1 j# f, c. [! R# Q( |' @! w
  49. #define DMA_PRINTK( x... )
    4 S) O! |. s1 a# F# B1 {
  50. #define DMA_FN_IN1 l4 {6 ?+ K$ F3 I3 U2 t/ O- m
  51. #define DMA_FN_OUT
    * h5 R" U4 D( K6 |
  52. #endif
    4 ^2 m* A" O2 S% J. {  H% F

  53. . ^3 y( L# y( f/ B! K0 g. T, O4 R
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)8 j$ M- h0 u% I/ L# ]6 l6 s6 n
  55. #define STATIC_SHIFT                39 Q& G( X" w4 b8 A. ^
  56. #define TCINTEN_SHIFT               20
    $ G  ?2 N; x5 ?
  57. #define ITCINTEN_SHIFT              21
    - l7 g4 c9 F# R% c8 Y+ o( h
  58. #define TCCHEN_SHIFT                22  y  _! H$ L2 N% r! f7 u* ]
  59. #define ITCCHEN_SHIFT               238 G; Y$ h3 _- Q4 c

  60. 0 J! T/ S. @+ }5 b: [, O: B
  61. static volatile int irqraised1 = 0;
    : Y0 E3 _# S; i1 k* y# c
  62. static volatile int irqraised2 = 0;
    + f$ `0 X# B& n9 j( h6 \. [- r
  63. * s& P% a7 o& p& O# @# Z5 E- F4 b
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);6 d' G  s2 f. o. F# k
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    7 P& a; r, i/ {5 ~7 t: x1 r
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);0 ~3 _$ q: i: l. G

  67. 1 h) {# y! F1 C7 u) E
  68. dma_addr_t dmaphyssrc1 = 0;
    9 \( d9 y: {1 C4 i  E* o
  69. dma_addr_t dmaphyssrc2 = 0;+ g7 V8 v1 t0 @9 H
  70. dma_addr_t dmaphysdest1 = 0;
    / n4 o( ~  [  z0 E
  71. dma_addr_t dmaphysdest2 = 0;0 P2 ^" C3 q4 }. _$ E4 y* I- N
  72. 2 L" |' r2 I2 r- [
  73. char *dmabufsrc1 = NULL;: E, z# g6 @) x8 I. ]" W& @
  74. char *dmabufsrc2 = NULL;% {& R% t5 b- H) V' c; E; x5 _- i
  75. char *dmabufdest1 = NULL;
    ! N$ E4 u/ d3 w- J+ {. N* a- J
  76. char *dmabufdest2 = NULL;; m' x5 v8 N* r: h: b8 ^. O
  77. ' u( [- D8 O  a  i$ v+ l
  78. static int acnt = 512;! ^! y9 L( N6 I* o6 R+ v
  79. static int bcnt = 8;6 I& [- X* [9 z
  80. static int ccnt = 8;
    0 p0 f8 l8 I8 I& E7 }% j9 L
  81. 0 w' A$ J6 l" w2 G" W
  82. module_param(acnt, int, S_IRUGO);
    0 p# f$ p8 ]0 ^# u3 a* M
  83. module_param(bcnt, int, S_IRUGO);7 F! G1 I: B8 I
  84. module_param(ccnt, int, S_IRUGO);
复制代码

3 Y; p+ a- O' I+ |  F
# i$ T4 i' m/ ^& s# k$ n      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
7 C& H  F5 i/ g, l- W! yarm-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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
: M2 z7 W8 Y4 m     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。+ I+ p' Q( e! Y; Q0 h+ Z- v$ q' G' D

7 a, `$ Q. |$ k* l+ `* x2 e) k
3 U8 p# {4 D/ T5 N7 V- a3 S7 i. I3 ^5 I
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-20 05:17 , Processed in 0.040905 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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