嵌入式开发者社区

标题: 在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( Bstatic 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.c9 p" t) _7 N7 E0 \" q0 M
/*
! r1 W5 \. x; Q# l; u2 { * The following EDMA channels/slots are not being used by drivers (for4 [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 Istatic 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