嵌入式开发者社区
标题:
在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. ]# q
static 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* m
6 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. A
static 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. A
arch/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, hence
0 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