嵌入式开发者社区
标题:
在ARM端和DSP端都使用EDMA
[打印本页]
作者:
lizhaoheng
时间:
2016-3-22 16:21
标题:
在ARM端和DSP端都使用EDMA
我目前使用OMAPL138芯片开发,在ARM端和DSP端都需要使用EDMA,不知道是否可行?是否有什么影响?
" A0 D) |% I1 c
作者:
teddy
时间:
2016-3-22 16:26
可以的,通道分配好,不用两个核使用同一通道就行,本身设计就支持双核,放心使用。
作者:
leyiran
时间:
2016-8-18 14:41
teddy 发表于 2016-3-22 16:26
/ a+ R9 j! c: A8 d* i& J
可以的,通道分配好,不用两个核使用同一通道就行,本身设计就支持双核,放心使用。 ...
: a) G: T5 Q8 b" ?( e
具体在内核中怎么修改?哪个文件?
作者:
teddy
时间:
2016-8-23 08:59
arch/arm/mach-davinci/devices-da8xx.c:
5 ^: v( W0 @( r; P, n+ w9 U C4 P
' m# r$ Y1 ?( b# ]2 V# H3 T7 _
static const s8 da8xx_queue_tc_mapping[][2] = {
; t/ A2 z0 \& v6 z) W6 E
/* {event queue no, TC no} */
' t* d! p! H1 n, j2 D% f
{0, 0},
$ `6 K/ x$ w6 D1 R& }( ?8 J
{1, 1},
- `: _7 B( n: I: l0 H( e
{-1, -1}
# y Q% T8 c: k2 {: _% x+ d
};
p' ?; Y: \" p: B' p$ h8 i B
3 q! W1 j3 [5 V( B
static const s8 da8xx_queue_priority_mapping[][2] = {
) l2 C" ]0 m- c# t/ ?( C. W
/* {event queue no, Priority} */
6 h, l) x7 n5 B
{0, 3},
, b+ O3 C& {* m
{1, 7},
* f- ^( |0 X$ _( e, i
{-1, -1}
. h" a8 a; o% q, t
};
- f& A; w6 A: H- R7 e. t2 r
2 T( P; g. x1 b3 r7 y8 [
static const s8 da850_queue_tc_mapping[][2] = {
5 k0 Y5 B- m) d2 r6 B
/* {event queue no, TC no} */
, P5 p3 J- Z4 O' O Z/ _& ~
{0, 0},
: i6 {0 N5 H6 y( U! X
{-1, -1}
6 P9 L, t7 \3 S; W
};
9 I9 \9 f8 G1 k8 [$ B2 u9 ], G* V
/ [# C9 A- l, u- _2 _! g
static const s8 da850_queue_priority_mapping[][2] = {
) h6 d1 p: E4 d% x1 @$ M% I
/* {event queue no, Priority} */
% k* @3 `( s' C5 ^
{0, 3},
# _+ B3 ^5 L2 z0 G1 P% z& h! ?
{-1, -1}
a; H/ H$ C* O
};
; e! E; A. K* w: ~+ {" j8 N
作者:
teddy
时间:
2016-9-14 10:27
在linux内核源码里面,对edma的通道做了分配,把dsp可能用到的edma通道预留出来,意味着,在dsp里面可以使用到这些通道。
& Y( P; P9 O" O( v9 J. u
arch/arm/mach-davinci/board-da850-evm.c
9 p" t) _7 N7 E0 \" q0 M
/*
! r1 W5 \. x; Q# l; u2 {
* The following EDMA channels/slots are not being used by drivers (for
4 [8 Q! s/ E$ _) a9 |
* example: Timer, GPIO, UART events etc) on da850/omap-l138 EVM, hence
& Y% G4 @ U( }) l" p/ ?
* they are being reserved for codecs on the DSP side.
% ]9 ]' X, y, D
*/
6 x7 L4 U2 K O1 T2 p& E
static const s16 da850_dma0_rsv_chans[][2] = {
) N# i9 r' |: l! ? p- }' `! [! B
/* (offset, number) */
, p: D" @ `3 }$ t8 d1 j& q! }' f
{ 8, 6},
^- F% |! u }7 v5 s8 i* r- t- J
{24, 4},
, `1 S' H! f" a: Y/ S3 G1 e; L( R
{30, 2},
A5 F% D3 e# E- a+ [
{-1, -1}
( P* B8 A$ f6 @$ ^! @
};
7 s; p( y7 R' C- Y& V
: t$ ^/ n) m( Q+ p) B8 V0 K2 @3 I
static const s16 da850_dma1_rsv_chans[][2] = {
4 o* u/ |+ T; `$ o& C
/* (offset, number) */
; a. o0 e; ^6 e9 ~
{ 0, 28},
u- w' F! b( A- P
{30, 2},
$ g1 l; t x" c+ G- S' y
{-1, -1}
7 m1 G+ h$ {! q2 }1 I
};
+ ]6 {1 a" k' n7 ]& {& y' s
7 q( S, q! `1 ^7 h* Z: n. r( s
上面的代码表示,如图片,EDMA CC0红色方框的通道预留给dsp,EDMA CC1除开红色椭圆MMCSD1其它通道dsp端都能使用。
) b# }, _' P: E$ |. ]( m
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4