I have downloaded DSPLIB (c674x) Release 3.1.0.0.
In user guide documentation i find remark for DSPF_sp_fftSPXSP function:
Implementation Notes:
Interruptibility: The code is interrupt-tolerant but not interruptible.
What is it means for me?
Can i use this routine in the background and simultaneously service interrupts from mcASP for capturing new data, for example?
Thanks
Dimitry,
Dimitry Denisovinterrupt-tolerant
This means you do not have to turn off interrupts before calling these functions. If a section of the function needs to prevent interrupts for a period of time, that will be handled by the function itself.
Dimitry Denisovnot interruptible
This means portions of the function may prevent interrupts during tightly optimized loops for performance reasons. During this time, interrupt latency will be increased but the interrupts will occur once that portion of the code has completed.
Use EDMA to handle direct data capture from the McASP and then to give you an interrupt once a buffer has been filled. The EDMA will be able to get each sample without waiting for the DSPLIB to complete. The EDMA is a powerful module for this purpose and helps by off-loading the data capture from the DSP. This will greatly improve the DSP's loading instead of having the DSP respond to a McASP interrupt after every sample has been received.
Regards,RandyP
If you need more help, please reply back. If this answers the question, please click Verify Answer , below.
Search for answers, Ask a question, click Verify when complete, Help others, Learn more.
Can i determine interrupt blocking time for DSPF_sp_fftSPXSP() ?
I use mcASP on 48000 samples/second rate and DSP servicing each TX/RX interrupt. DSP loads two 128 kSamples buffers of data in ping-pong mode. And in the parallel it calculates DSPF_sp_fftSPXSP() of one 128kS buffer that is not busy. No DMA is used. And i do not see any corruption of data. Perhaps, there is no reason for coding DMA for this task?
Greetings,
In the CCS setup building your application, you should set the Interrupt Threshold you desire to make your code interruptible at certain rate. You should re-build all libraries used to the same Interrupt Threshold as well.
Good Luck,
Sam