嵌入式开发者社区

标题: 在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- oarch/arm/mach-davinci/board-da850-evm.c6 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 Sstatic 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/ Pstatic 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