Hi Dears,
I am currently trying to improve the interrupt responsiveness of the CorePac DSP included in the AM5749 SoC.
The firmware is based on TI-RTOS provided by SDK 8.1.0.9.
The application uses an external FPGA connected via GPMC. The transfer between the FPGA and the SoC takes around 25µs, and an acceptable latency would be around 5µs given that this operation takes place every 35µs (28kHz).
This FPGA can trigger an interrupt on the SoC's DSP1 which produces an EDMA request event that starts the CorePac's EDMA transfer. This EDMA transfers data from the FPGA to the OCMC_RAM2.
At the end of the transfer, we receive an EDMA interrupt. This interrupt has a latency of between 5 and 46µs.
This latency corresponds to the time elapsed between the end of the EDMA transfer and the acknowledgement of the end of EDMA in the interrupt handler.
We've already bypassed the event combiner to reduce latency a little, but it's clearly not enough.
In parallel, we're using the IPC layer to control the DSP1 firmware from Linux running on ARM. If we disable the IPC code in the DSP1 firmware, latency will be improved as it ranges from 5µ to 24µs.
Part of this huge latency is therefore due to the IPC layer. However, an interrupt latency of 24µs is not acceptable.
Is there a way to reduce these huge and highly variable latencies?
Also, is there a way to reduce the IPC priority in the TI-RTOS implementation?
Many thanks in advance
Kind regards,
Steve