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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

5

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2018-1-30 11:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyj 于 2018-1-30 11:01 编辑
3 o4 }, l3 f2 {, }
  1. [code]EDMA sample test application- X1 _$ I" ?; _1 i9 D
  2. /*
    7 I. {. W8 N4 P& _- k" I3 d
  3. * edma_test.c$ W- u9 U& Y" |$ r4 D  N
  4. *4 W& m8 _" l; e; N6 z
  5. * brief  EDMA3 Test Application
      y9 C. ]4 v( E' W2 [3 z5 b# R
  6. *
    3 U9 m  U* X; t' C. u) u
  7. *   This file contains EDMA3 Test code.- v& e9 B. B% o5 k' O4 A* G6 W
  8. *
    & \. e" q6 q  W
  9. *   NOTE: THIS FILE IS PROVIDED ONLY FOR INITIAL DEMO RELEASE AND MAY BE
    9 [& {, e; i+ V
  10. *         REMOVED AFTER THE DEMO OR THE CONTENTS OF THIS FILE ARE SUBJECT. x' f# L5 O5 z( H! i
  11. *         TO CHANGE.; Y" L6 O7 ]; l8 H1 o
  12. *
    : @/ K1 v  I3 ^! l5 C& _! }
  13. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/+ g7 d" \+ {- V: w: D+ L, s# r" J
  14. *
    . y6 Y" p- A7 F0 }6 H
  15. * This program is free software; you can redistribute it and/or7 E% y/ P( K9 O' d2 J  j: a. [" l. A
  16. * modify it under the terms of the GNU General Public License as
    / {6 {+ l/ j( ~9 }0 U: f
  17. * published by the Free Software Foundation version 2.
    $ X/ W2 ?* N% `( Q# W  ^7 \
  18. *
    ! n7 e$ R  I4 U  n7 W
  19. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
    4 w6 U. s$ J4 l( X
  20. * kind, whether express or implied; without even the implied warranty+ U" m0 R9 x. ]7 a' v0 U0 v
  21. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the, F) A$ D+ Z7 |; K! d7 q" \
  22. * GNU General Public License for more details.
    % k( h2 U1 ]' x  L" M* V9 U
  23. */
    : I# L# Q! N6 y7 N. D/ E$ P

  24. ' L$ O# T. P) J
  25. #include <linux/module.h>
    $ n9 n7 ?* u' q  O7 y# L3 M
  26. #include <linux/init.h>! e0 Z4 F1 e6 G7 }* M5 J0 ^0 V
  27. #include <linux/errno.h>
    % Q4 f, u  X8 W- S' O- g
  28. #include <linux/types.h>6 h* a8 i: r  V$ r7 S
  29. #include <linux/interrupt.h>
    ( e; r! h# n) d* F
  30. #include <asm/io.h>4 O) ?* j/ J2 ^$ x, }
  31. #include <linux/moduleparam.h>
    # I& |8 Q1 H0 |' S; F: ?$ E; K
  32. #include <linux/sysctl.h>
    8 h# v9 X  v: t3 O7 x; m
  33. #include <linux/mm.h>
    2 H' o5 S' x5 X: Q
  34. #include <linux/dma-mapping.h>
    7 D" K4 v/ S- M# v* U& P

  35. 6 s) G9 v) f6 K" @. |' X, v
  36. #include <mach/memory.h>" y7 t, h4 Q! `3 e
  37. #include <mach/hardware.h>
    5 N. g" @4 o. h+ g: ^& Y. Y
  38. #include <mach/irqs.h>7 n) O6 I$ Q0 W4 G, {) O7 o
  39. #include <asm/hardware/edma.h>3 P+ ]1 s6 c" ~  M+ s9 u5 q/ ?/ p

  40. ' Q- T/ x/ O5 e! `# T0 U+ r3 W8 R
  41. #undef EDMA3_DEBUG6 i# e/ L! k% ~, K7 C
  42. /*#define EDMA3_DEBUG*/
    7 B* I3 _$ `# R6 ^- q* U  Q6 `

  43. ( \4 v) L) Q4 K# g& T
  44. #ifdef EDMA3_DEBUG$ q  I0 ~% w) `8 X
  45. #define DMA_PRINTK(ARGS...)  printk(KERN_INFO "<%s>: ",__FUNCTION__);printk(ARGS)0 a# S1 j( Z( g" J' _+ c1 s
  46. #define DMA_FN_IN printk(KERN_INFO "[%s]: start\n", __FUNCTION__)
    $ h% s6 p0 E! A
  47. #define DMA_FN_OUT printk(KERN_INFO "[%s]: end\n",__FUNCTION__)# T; I5 F0 c; N
  48. #else
    ) N( x# z) Y, e0 T/ O) r
  49. #define DMA_PRINTK( x... )9 j  @6 _0 R# A
  50. #define DMA_FN_IN. e6 d* S& y; a, `' T* I
  51. #define DMA_FN_OUT
    - @5 H3 i5 N% r3 ~7 \1 b, @! R- `
  52. #endif1 Q: |- f1 t* }! Y% e3 Y# U0 r
  53. 0 S! \  f# J2 ~) }
  54. #define MAX_DMA_TRANSFER_IN_BYTES   (32768)
    + d% m! c$ U! T# ~+ N8 Y- d
  55. #define STATIC_SHIFT                3
    / `5 o& [: F" P* z9 B) `
  56. #define TCINTEN_SHIFT               20  Q' D/ Q* y' G
  57. #define ITCINTEN_SHIFT              21
    % n5 l8 {1 B# w9 Y
  58. #define TCCHEN_SHIFT                220 t, t8 X! n1 K9 o/ n! H
  59. #define ITCCHEN_SHIFT               23# Q# N6 D7 p7 A: z2 M. k

  60. 6 g1 ^' R$ ^5 D, r" U7 i! T
  61. static volatile int irqraised1 = 0;
    * x2 T$ O) W: L$ Q% R0 Y
  62. static volatile int irqraised2 = 0;
    $ A" R5 L3 h7 \5 C0 J
  63. . M7 U- X+ T7 s, |
  64. int edma3_memtomemcpytest_dma(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    0 B% i" ]* v! f" R- N
  65. int edma3_memtomemcpytest_dma_link(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);
    ( Q6 |8 \3 T- I: P% @) z
  66. int edma3_memtomemcpytest_dma_chain(int acnt, int bcnt, int ccnt, int sync_mode, int event_queue);2 {% K5 P1 p) w- v9 m) h1 j8 ^

  67. 4 t0 U1 E( A3 i  U1 i! ^
  68. dma_addr_t dmaphyssrc1 = 0;
    & M  T: Z) C" S  N% y
  69. dma_addr_t dmaphyssrc2 = 0;
    / b2 s. g4 ~4 G0 n7 u- S, z
  70. dma_addr_t dmaphysdest1 = 0;/ @) F/ v" q8 P9 J2 n9 b5 Y# D
  71. dma_addr_t dmaphysdest2 = 0;1 x$ ?" E9 [3 A# e- O* G3 h

  72. 9 F3 d* @; a/ T- ^
  73. char *dmabufsrc1 = NULL;$ p" W8 T$ ]+ L. x0 d
  74. char *dmabufsrc2 = NULL;5 ~* v+ e) d: N
  75. char *dmabufdest1 = NULL;4 X  q0 T) L0 V# P) D' ?1 P8 J. ?7 x
  76. char *dmabufdest2 = NULL;# e4 W; s) L. e- z- \$ w5 o" _
  77. ' [* H% r( I0 M# L7 X7 H
  78. static int acnt = 512;$ U7 h. Q' I  R3 L+ j
  79. static int bcnt = 8;. w% Y6 w6 R( y% ?7 l" U* A% T
  80. static int ccnt = 8;( z  G- i2 ?1 [  O$ O+ \

  81. - v2 F' b* h: @4 G0 P. E
  82. module_param(acnt, int, S_IRUGO);
    4 u( F2 \$ Y7 M! R# N0 J
  83. module_param(bcnt, int, S_IRUGO);
    ( Z+ F% q" T( O1 E, A: U, \
  84. module_param(ccnt, int, S_IRUGO);
复制代码
/ v( J' B3 b* D" s/ }/ P
' m  v. A$ W. A7 L$ b- j. x* Q0 w
      这是在TI上找到的一个针对Davanci处理器简单的EDMA3驱动程序测试例程的一部分,我在编译的过程中是用
: t0 X, H9 f- b$ @1 b; W( l* ^2 }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这个命令来链接库文件进行编译,但是报的错误特别多,我又试着一个函数一个函数往进加,仍然是很多错误。
+ ^# e4 _- {, J7 o  F6 Y     我想问一下如何用一个简单的程序来测试一下EDMA3的驱动。9 q" @, |! I3 W& q) J6 Y) G
; \* g7 b4 i: }

0 j2 y' a  K$ ~$ Q/ ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-28 23:28 , Processed in 0.037799 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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