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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑 $ v; C% ^( l! N# i, R% p
  1. [code]EDMA sample test application
    4 E# U4 B3 C8 K' e' P/ X  c5 J+ q
  2. /*; u* |: s" [8 T# M+ e
  3. * edma_test.c
      V  ~1 R& y: F: u9 ^! v# M; H' p
  4. */ Q( R/ j. Z% w$ U7 c8 ]
  5. * brief  EDMA3 Test Application
    3 K$ `, @( _! B3 Z- c% O
  6. *4 i  @% D5 t: J
  7. *   This file contains EDMA3 Test code.
    0 @, y+ G* n" X0 O
  8. *
    6 ~0 B$ a' k9 v3 {! t) P% b+ Z2 X
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    ' F1 C( \( N; t9 w
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT& i6 D7 H! b9 ?6 P: Q
  11. *         TO CHANGE.
    6 ?5 r/ Y$ D$ f' g0 ~
  12. *8 b3 o" m" O* B+ U( Z2 e' I
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/3 z9 A/ N! `" |* z/ L
  14. *
    2 M  m& f2 t: p( G8 D. y$ l) L
  15. * This program is free software; you can redistribute it and/or
    / `  x: b/ ^- X4 Z
  16. * modify it under the terms of the GNU General Public License as
    : t$ C4 x; D: e6 P1 l
  17. * published by the Free Software Foundation version 2.
    9 g0 a' ]' q; \- n' G
  18. *+ v8 K3 b* m0 x8 O0 ]7 A8 A3 r
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any. P; \! W: N2 q8 H6 ^0 C( w
  20. * kind, whether express or implied; without even the implied warranty- Y' Y9 m2 Z4 R; a1 z
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the0 ]4 K5 `* {* q2 F! X
  22. * GNU General Public License for more details.
    % x0 G5 g- A9 }' A- ?* s. ]1 J
  23. */( d1 y1 R0 U+ n9 f8 g- d8 Y: g3 B
  24. ! ]' E& N4 r$ Q' ?
  25. #include <linux/module.h>+ _; M* v) ]/ A# z2 G
  26. #include <linux/init.h>' u' ]3 s7 R$ R0 j+ Q
  27. #include <linux/errno.h>4 e' l; N7 ], ]# M1 r+ z! Y
  28. #include <linux/types.h>, O) r. t7 \* C" q2 I
  29. #include <linux/interrupt.h>
    4 _" b7 [" N  ?9 {9 r0 T
  30. #include <asm/io.h>) f! Z. |5 u$ R0 J5 M7 }; W
  31. #include <linux/moduleparam.h>
    + _5 L7 P- n* l. k9 r/ X
  32. #include <linux/sysctl.h>% \% t2 V7 a6 f* b
  33. #include <linux/mm.h>1 O1 m8 y- G3 H" h; P' Q/ j
  34. #include <linux/dma-mapping.h># L- D( M/ ?1 S/ k5 G! Y  E

  35. 9 N- B* X. ?9 A9 D
  36. #include <mach/memory.h>
    6 R. |4 [5 |* v
  37. #include <mach/hardware.h>
    & a+ _8 A' g5 l
  38. #include <mach/irqs.h>. W9 q5 ]+ g* c7 W. d6 @
  39. #include <asm/hardware/edma.h>
    7 Z) l; x3 s6 j% n

  40. ( W3 k# e* W! D0 R; _: W- Q5 A; C
  41. #undef EDMA3_DEBUG
    5 i8 I3 f& _) I! `& N
  42. /*#define EDMA3_DEBUG*/3 d+ r% _+ E' h0 i, Y
  43. 7 ~0 N9 U0 G+ ^( Q" g; u: s
  44. #ifdef EDMA3_DEBUG
    - X3 h9 {! s6 ^' C. q2 e
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)
    1 u/ [+ S; _6 ?$ j3 T
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)& ]. M9 X' B5 `$ K) X* l
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)
    ( P7 U: |# H1 M! t
  48. #else
    . M% u6 q; D# r3 _  ?
  49. #define DMA_PRINTK( x... )6 X! m4 u3 |3 i+ v; S! r4 }
  50. #define DMA_FN_IN1 |2 X8 b$ E; X% ?4 g
  51. #define DMA_FN_OUT) D/ x' B( U0 o8 P1 ?7 A$ C3 z0 `
  52. #endif. e+ H5 X6 i$ s( k. ^* |

  53. - y, R9 [9 V% L8 W7 J
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)! ]9 F/ w* o, f- Q* V8 i
  55. #define STATIC_SHIFT                3
    4 O' f1 a6 S( Z/ P
  56. #define TCINTEN_SHIFT               20
    ! t, [5 N1 G" u* W0 W* e
  57. #define ITCINTEN_SHIFT              21
    * U0 @2 r9 u$ `
  58. #define TCCHEN_SHIFT                22# E( p) }1 s/ U, Z, ~
  59. #define ITCCHEN_SHIFT               233 k1 M: p7 M* B1 ]

  60. 0 W, l5 c" v( B7 o
  61. static volatile int irqraised1 = 0;% _! P3 L0 Q" }
  62. static volatile int irqraised2 = 0;
    ' D" a2 x4 j7 T4 ?/ K2 Q

  63. % `+ s( ?5 ?, r2 ^/ g% v5 a: W
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    # j" s$ P  [7 k0 R9 m; h) e( d
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    5 X; r; Y; ^9 l2 R
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);& m4 X/ X# m' Z8 G

  67. + {* d- ^* R( A& T% C) ~0 }+ h5 ?
  68. dma_addr_t dmaphyssrc1 = 0;* t# A8 O& c: g  ]
  69. dma_addr_t dmaphyssrc2 = 0;3 \) I1 `" l7 b4 P
  70. dma_addr_t dmaphysdest1 = 0;
    $ s0 W( c0 B1 u3 a# P  q- G
  71. dma_addr_t dmaphysdest2 = 0;2 P+ Y9 \1 @. ?+ ?
  72. ! C( E. \! J: g, H# `
  73. char *dmabufsrc1 = NULL;  `' l2 {; O' {% G1 o  e: v3 s  `
  74. char *dmabufsrc2 = NULL;9 L% B$ C0 |5 @: f
  75. char *dmabufdest1 = NULL;
    ! Y& i' ~+ e# U. {; ~# {& h8 E3 S
  76. char *dmabufdest2 = NULL;% S* [$ i4 A$ T" y4 I; Q
  77. & s% Q: f; H7 N1 ^' d- ]" z$ Q
  78. static int acnt = 512;
    0 k0 h, l  s7 p
  79. static int bcnt = 8;
    2 s1 l7 s1 U( i7 Z4 k3 d1 {; o
  80. static int ccnt = 8;
    ; I: j' t4 e) t1 L' n' T& |
  81. 7 }* `  i1 k$ R/ _# u, [5 U
  82. module_param(acnt, int, S_IRUGO);  T" B" h8 {. z. H( U% b
  83. module_param(bcnt, int, S_IRUGO);
    + K& v6 p$ F7 U% X; l7 Z
  84. module_param(ccnt, int, S_IRUGO);
复制代码
  v# c5 z: Y7 g/ M& }0 ]

0 ]+ e; H8 I& a; M0 S      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用$ F. L; i/ u) T( ?! j
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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
- G9 h1 S' L. n9 F     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。
% A, d/ k. J% B& C% _2 k/ `7 }5 F) ~" A4 t5 I% m2 z' ]

2 Q) Q# D# g& _, `$ a8 g9 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-4 02:57 , Processed in 0.043663 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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