嵌入式开发者社区

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

作者: lizhaoheng    时间: 2016-3-22 16:21
标题: 在ARM端和DSP端都使用EDMA
我目前使用OMAPL138芯片开发,在ARM端和DSP端都需要使用EDMA,不知道是否可行?是否有什么影响?5 q. t& y# O  D% w

作者: teddy    时间: 2016-3-22 16:26
可以的,通道分配好,不用两个核使用同一通道就行,本身设计就支持双核,放心使用。
作者: leyiran    时间: 2016-8-18 14:41
teddy 发表于 2016-3-22 16:26" F9 x% s& u2 f4 |) w
可以的,通道分配好,不用两个核使用同一通道就行,本身设计就支持双核,放心使用。 ...

# e& A: C# A8 i6 z( _. }具体在内核中怎么修改?哪个文件?
作者: teddy    时间: 2016-8-23 08:59
arch/arm/mach-davinci/devices-da8xx.c:; S! Z4 i1 E4 L# n) s
) w+ Z. }8 U' [. k5 Y6 O: Z/ [3 Q
static const s8 da8xx_queue_tc_mapping[][2] = {! W2 j  E8 b$ h7 }; T8 K
        /* {event queue no, TC no} */
0 N& c  K6 ~6 v7 ?0 N" R9 v        {0, 0},
& W- @2 x$ ]$ \        {1, 1},$ f5 ^9 D3 X) f5 j  S# i' u
        {-1, -1}. ?, o/ O/ ?. p3 {+ ?! g$ |- O
};
* D; p" l; ]3 n9 d) y
% y& ~) m) H' `: fstatic const s8 da8xx_queue_priority_mapping[][2] = {8 ~4 B( y$ g' j. m( d2 Y: `1 b
        /* {event queue no, Priority} */
% E2 s0 N& S$ t' l. _        {0, 3},$ y* c. j8 D' \6 F
        {1, 7},( Y6 q" U4 Z! {& x: h  w# k2 I7 ?
        {-1, -1}: Z. O0 R9 J. {! p. m3 p, X# s
};! A# R0 r; Y% o

# b4 S3 X1 i2 ]1 E" ^3 c7 s$ Nstatic const s8 da850_queue_tc_mapping[][2] = {/ L5 y1 n- u) e  R! q5 Y4 z3 m
        /* {event queue no, TC no} */5 ]; m& Y) N6 _. K% K) h3 T9 W
        {0, 0},7 @& ?2 F, w& N8 W
        {-1, -1}
6 s5 D* X% q; L% C( {! X( k  G8 Y};- F% n5 x; \% b' Q

& `4 \5 B' V0 vstatic const s8 da850_queue_priority_mapping[][2] = {
* `1 Y9 D- e/ @! o6 C        /* {event queue no, Priority} */! _+ h' w% W3 @6 ]! a' t, d
        {0, 3},  q( Q6 N- I$ b% B- N+ R7 @1 P5 C
        {-1, -1}
: o: [* M" ]0 {2 v3 Y% t};7 g7 K, l# S; }! O+ F$ I2 R

作者: teddy    时间: 2016-9-14 10:27
在linux内核源码里面,对edma的通道做了分配,把dsp可能用到的edma通道预留出来,意味着,在dsp里面可以使用到这些通道。
2 C) O3 V0 g- b9 Rarch/arm/mach-davinci/board-da850-evm.c
) O* Q( P6 Y6 L" Y. j/*
4 s1 I, G8 q9 J; Z& W+ g * The following EDMA channels/slots are not being used by drivers (for
9 n8 ]4 P. T2 J8 i+ A" W6 y * example: Timer, GPIO, UART events etc) on da850/omap-l138 EVM, hence0 A  L+ _, h/ Y7 y, u+ K: x, @
* they are being reserved for codecs on the DSP side.0 Y+ Y$ ?: `4 R, e% s  _. j
*/
$ v' R$ a! m2 h) g) e% dstatic const s16 da850_dma0_rsv_chans[][2] = {1 ?. `/ b* m, |0 h- O
        /* (offset, number) */
  N' }7 ?1 I  l0 k4 ^6 i9 L' K; E, M        { 8,  6},9 t0 |% K% ^& u) ^
        {24,  4},
: {( V7 A# R8 P# K6 Y% v        {30,  2},
5 m1 ~. d3 M8 o* R, }" U6 f8 P" V        {-1, -1}
5 P! w4 i3 @6 h# c: R};
* h' X9 Q) j! a  |
$ k& @3 B+ N" f& t  wstatic const s16 da850_dma1_rsv_chans[][2] = {9 R8 Z! d% W9 W5 E) |
        /* (offset, number) */
& @% ^2 g5 [+ z        { 0, 28},
: Z' u# G' A+ v- V# ^3 h$ p3 x        {30,  2},
' [2 V5 q6 N# P        {-1, -1}
/ L* o/ z# k4 N};
) K& m; `9 [% U. S* e) }7 B* }( Q! m, ^" H2 v3 T
上面的代码表示,如图片,EDMA CC0红色方框的通道预留给dsp,EDMA CC1除开红色椭圆MMCSD1其它通道dsp端都能使用。
( F2 `& v$ @6 U5 M" o, l




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