嵌入式开发者社区

标题: 在ARM端和DSP端都使用EDMA [打印本页]

作者: lizhaoheng    时间: 2016-3-22 16:21
标题: 在ARM端和DSP端都使用EDMA
我目前使用OMAPL138芯片开发,在ARM端和DSP端都需要使用EDMA,不知道是否可行?是否有什么影响?/ D* @2 r  Q3 X' H

作者: teddy    时间: 2016-3-22 16:26
可以的,通道分配好,不用两个核使用同一通道就行,本身设计就支持双核,放心使用。
作者: leyiran    时间: 2016-8-18 14:41
teddy 发表于 2016-3-22 16:26
8 @2 g' [0 s* b3 ~  L可以的,通道分配好,不用两个核使用同一通道就行,本身设计就支持双核,放心使用。 ...

, c, _; P3 E5 h: ]0 u具体在内核中怎么修改?哪个文件?
作者: teddy    时间: 2016-8-23 08:59
arch/arm/mach-davinci/devices-da8xx.c:
* i# Z+ w- z; F. _( x) e" H. B# I! C0 d2 E( m
static const s8 da8xx_queue_tc_mapping[][2] = {
3 k* T5 e5 u: E        /* {event queue no, TC no} */
( }7 f( \7 G, D7 {( x% V        {0, 0},$ ^& l' m$ ~% C8 z" p& r
        {1, 1},1 b& O! i, i8 [* T! Y7 r8 h+ R
        {-1, -1}
) e$ Z* Z# p# r6 C};/ [* r, `  b1 v2 q% I

7 e% m; r" x' f: g. ]# qstatic const s8 da8xx_queue_priority_mapping[][2] = {5 T9 d/ r9 X0 m' @6 H8 r6 w
        /* {event queue no, Priority} */
  q+ r# X' s: ~# u        {0, 3},& F- ?4 a7 K- X8 v+ M) J  U
        {1, 7},3 p7 z- }& l" ]" K3 e4 ?
        {-1, -1}
5 F+ G# ~) D2 X6 H7 H};
% C- }% t4 g3 y* m6 D2 \8 t! h  H  O+ ?
static const s8 da850_queue_tc_mapping[][2] = {
8 y  E: R; a5 s6 l  U7 i5 D' C# D1 m  i        /* {event queue no, TC no} */) }, ]" Z2 J* A% u
        {0, 0},  v( t1 F: `) Y+ [; _- P3 J# S
        {-1, -1}- B9 N# P" P) {& a' h4 n9 P
};
8 |, g; C# `; L4 y  ~/ e
$ ~9 }2 ]% J3 N. Astatic const s8 da850_queue_priority_mapping[][2] = {
9 G, h2 M! |. E! a1 M$ y        /* {event queue no, Priority} */
9 ]! ^. @2 W" D7 `! |" e$ C  c: D        {0, 3},2 g% _6 ^9 V  g  e0 q4 O0 j! K
        {-1, -1}% a$ k* E/ a% h8 D4 e7 C" V
};4 c& m# m7 `2 B% |

作者: teddy    时间: 2016-9-14 10:27
在linux内核源码里面,对edma的通道做了分配,把dsp可能用到的edma通道预留出来,意味着,在dsp里面可以使用到这些通道。
# K& N! q  E( @% T. Aarch/arm/mach-davinci/board-da850-evm.c
+ E% ]/ ]) `3 k3 Q. C0 |  S/*
% y2 b, F! e3 t: B+ z8 \# P3 s7 w * The following EDMA channels/slots are not being used by drivers (for
3 {, `! k2 B' W * example: Timer, GPIO, UART events etc) on da850/omap-l138 EVM, hence0 N7 P! Y  Z( a5 R* A+ t1 }4 x
* they are being reserved for codecs on the DSP side.$ O! l" W8 b! f6 @8 D
*/
. ~% ^5 g1 b& e4 ~' L2 `static const s16 da850_dma0_rsv_chans[][2] = {4 D& Z7 s2 M. h' w7 |. S6 R" W5 ]& T' G+ H
        /* (offset, number) */
- I4 q" q0 ^. K  c1 a* k+ ?) Q        { 8,  6},
5 F  q1 I3 J! _2 D0 M0 l        {24,  4},
) ^! E: Y& R# r( T+ F$ }# `        {30,  2},4 A7 {' _1 I8 l. F) G6 a
        {-1, -1}
, a# e! b9 M/ P% E' f};( @) c7 \8 {2 J+ ]2 b
; ?% U& I6 Y* j" U' U/ t( B
static const s16 da850_dma1_rsv_chans[][2] = {/ R) y3 z" _1 W$ u/ A; m% r: w* Y
        /* (offset, number) */1 t, N/ a5 ?4 T3 L1 F0 X* A( u
        { 0, 28},
9 K5 p- w7 y. m2 ~9 H, r8 A        {30,  2},
4 r3 c: F! r! D* x  o) H' V7 [        {-1, -1}
  g+ e% J/ q4 D2 L};+ U- I- v3 B2 _( ?; \
$ B/ {2 L5 I4 m. q2 H4 ~4 g, l
上面的代码表示,如图片,EDMA CC0红色方框的通道预留给dsp,EDMA CC1除开红色椭圆MMCSD1其它通道dsp端都能使用。0 b4 H: @' f& u





欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4