嵌入式开发者社区
标题:
在ARM端和DSP端都使用EDMA
[打印本页]
作者:
lizhaoheng
时间:
2016-3-22 16:21
标题:
在ARM端和DSP端都使用EDMA
我目前使用OMAPL138芯片开发,在ARM端和DSP端都需要使用EDMA,不知道是否可行?是否有什么影响?
+ P0 _$ v+ f! }* _- O4 N2 D. Q
作者:
teddy
时间:
2016-3-22 16:26
可以的,通道分配好,不用两个核使用同一通道就行,本身设计就支持双核,放心使用。
作者:
leyiran
时间:
2016-8-18 14:41
teddy 发表于 2016-3-22 16:26
: E/ e2 W8 k/ x' E4 G
可以的,通道分配好,不用两个核使用同一通道就行,本身设计就支持双核,放心使用。 ...
! ^" \% @9 T! s' Z% W
具体在内核中怎么修改?哪个文件?
作者:
teddy
时间:
2016-8-23 08:59
arch/arm/mach-davinci/devices-da8xx.c:
8 v! G% `+ T+ o8 @ @; u( A9 q' d
. s+ m6 `" ^- y( j; }1 @7 H: ^. D
static const s8 da8xx_queue_tc_mapping[][2] = {
; |, d2 B( o1 P: z, I
/* {event queue no, TC no} */
i J; h: F0 V& Z
{0, 0},
& y) T3 u0 H. V# _) P% E# r
{1, 1},
3 B1 p$ f: B' m; X2 Z$ g9 J6 E4 n
{-1, -1}
7 g2 Z2 g( D4 f
};
$ I- O/ B |+ g3 \! ^" W( A8 t
/ X8 h7 b. H0 k' ]) B: D
static const s8 da8xx_queue_priority_mapping[][2] = {
; a- b: f7 W+ ~) _" M% a9 X: e
/* {event queue no, Priority} */
( s6 b1 X" n, V1 A1 ~& k
{0, 3},
+ k5 k$ h* J6 \$ W0 l
{1, 7},
: M, F2 ?# ^% b9 ~/ \+ ?) Y' u: M
{-1, -1}
+ P/ U; u- h8 p. h
};
7 F+ o+ O% {" h9 G! A2 J6 [
# Y) p$ \6 t- N% `+ N! v$ c
static const s8 da850_queue_tc_mapping[][2] = {
" B; q" V( V( Y) D5 J. R
/* {event queue no, TC no} */
. v& I- u& _/ U0 M) v0 C% N
{0, 0},
; p6 F8 M# X% q- ]1 D# ~% P) f
{-1, -1}
4 ~7 c0 [; h D1 @2 I( ]
};
/ d8 T3 b* H& D9 J. L( o5 g
8 Z$ ^0 k; ^$ O2 w- [+ k: a
static const s8 da850_queue_priority_mapping[][2] = {
0 W8 r8 t V! Q/ b0 F5 v, w
/* {event queue no, Priority} */
$ U8 C# A: I6 N: @' \. e* Y' i! I* t* Q
{0, 3},
9 W3 N+ B) U+ ~/ d
{-1, -1}
% I9 D! W, \- Y% k3 f+ M
};
- c6 V" j; V9 i# `( G
作者:
teddy
时间:
2016-9-14 10:27
在linux内核源码里面,对edma的通道做了分配,把dsp可能用到的edma通道预留出来,意味着,在dsp里面可以使用到这些通道。
- W3 B2 h) j' C- o
arch/arm/mach-davinci/board-da850-evm.c
6 L4 U) h8 s( g% Y! m" m
/*
' k/ `3 M. Z/ K7 A
* The following EDMA channels/slots are not being used by drivers (for
1 |5 w. V7 V; u4 z6 a% U
* example: Timer, GPIO, UART events etc) on da850/omap-l138 EVM, hence
Y/ f/ H5 e4 U( q/ J! M! v
* they are being reserved for codecs on the DSP side.
% N7 z$ f: L% ^ V% }5 h0 k
*/
5 |5 `6 n# q, A, N" W6 S
static const s16 da850_dma0_rsv_chans[][2] = {
$ g% a# |4 q' i* @% @; M# E
/* (offset, number) */
# @) }* C, \% d. O7 E8 n3 b/ T
{ 8, 6},
0 y! }4 r/ v2 }" A) y: m
{24, 4},
: ]% c" J8 u- D0 N# P+ e
{30, 2},
; Y4 {: n1 J7 t% j3 w% ?' X6 D3 Y
{-1, -1}
4 j7 A& t* v. ]3 T, \. z
};
9 v& U! X `3 \# F- v, d
7 \) N2 o' M* r) |- o/ P
static const s16 da850_dma1_rsv_chans[][2] = {
/ t, i4 A8 x; _ Z, l( A
/* (offset, number) */
# y! Y" J7 `4 t# @
{ 0, 28},
* k6 _2 s; b( n. t+ c. e5 Q/ x/ f: {
{30, 2},
( @8 }3 O; Y' f+ |" X
{-1, -1}
9 B+ f9 C, K9 v3 A2 I3 N3 G
};
2 E. v% X. k. I8 b8 i2 P
% S. b' Z" E" b
上面的代码表示,如图片,EDMA CC0红色方框的通道预留给dsp,EDMA CC1除开红色椭圆MMCSD1其它通道dsp端都能使用。
8 n! n, n3 u# b; p0 B: x! w
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4