Hi,
I encountered main loop halting inside SDRAM functions when ISR is leaving less than certain time interval for main loop execution.
The Setup:
TMS320C6727 DSP with SDRAM
Program built with CCS v3.3
Main loop (code section at internal RAM) with event-driven function calls (code section at SDRAM)
ISR at constant frequency 16kHz
Test Conditions:
The ISR processing is increased so that ~4us interval is left for main loop processing
Before event happens, the main loop is still running
(The unexpected behavior) When event happens, the main loop halts forever
Interrupt Return Pointer (IRP) does not change at all. It indicates that the main loop halts in SDRAM function (by looking up the value in map file)
(Tried several times) I stepped out of the SDRAM function back to internal RAM function using emulator and let it free-run. But main loop halts again in another SDRAM function
The ISR processing is then reduced so that more than ~4us interval is left for main loop processing
Main loop processing then resumes
Questions:
When leaving less than certain time interval for main loop processing, why running the main loop internal-RAM function is ok but running the main loop SDRAM function causes the main loop to halt forever? (is it related to instruction fetch behavior?)
How to setup the device to ensure the main loop will not halt forever under frequent and short main loop execution interval like above?