Hi,
It seems that DSP_BIOS' MEM_Free() blocks interrupts from being serviced, sometimes for quite long time.
my environment:
- TMS320C6414, build tools V5.0, DSP BIOS V4.92
- A FPGA triggers an Interrupt (via DSP 'external pin 6') when a video datastream FIFO threshold overruns (once about every 60us)
- The DSP application (several TSK-functions) can call MEM_free() at any time (asynchronous to the video interrupts)
- Switching FPGA IOs allows debugging with an oscilloscope -> this way I discovered that this video interrupt is not executed (even though its triggered) while MEM_free is executed. For example (chan1: low when Video Interrupt is executed, chan 2: high when MEM_free is executed):
It seems that a part within the MEM_free call blocks the HWI (interrupt service function) from being executed for long time, sometimes >150us. It seems as if DSP_BIOS was not compiled with the -mi option (breaing rolled loopes after a certain interrupt threshold).
- Is there a workaround?
- Is a DSP_BIOS version available that was compiled with interrupt threshold, for example -mi10000?
- Is there a way to prevent MEM_free from blocking interrupts?
My project is quite old. It has spread over the world in a lot of different scenarios. The truth is that I dont want to update to a new compiler or DSP_BIOS version unless there is a good reason. Is there a solution with BIOS V4.92?
bye,
Thomas
