AnsweredAssumed Answered

How to minimize TCB loading time

Question asked by martin.karlsson on Mar 21, 2018
Latest reply on Mar 30, 2018 by Jithul_Janardhanan

In my application i am using 8 SPORTS in parallell, the SPORTS run in multichannel Mode (18Channels).
The data to/from the SPORTS is moved to internal buffers using DMA, The DMA is chained using two parts of a buffer for the data like this:

 

.var sp1A_tcb1[4] = {sp1A_tcb2 + 3, 2*SP_CH, 1, rx_buf + OFFSET_SP1A + (@rx_buf)/2};
.var sp1A_tcb2[4] = {sp1A_tcb1 + 3, 2*SP_CH, 1, rx_buf + OFFSET_SP1A};

 

When a full frame has been received/sent, a interrupt is triggered to process the data in the buffer.
At this point all the chain loading sequences is triggered by the I/O processor, this is a atomic operation
and the I/O bus is locked until all the DMA parameter registers are loaded. Locking the I/O port for this
long is a problem in my application, Anyone know a way to achieve the same results without locking the I/O processor for that long ( 23 * 10 clock cycles )?

 

I am using the ADSP-21489.

Outcomes