Sport doesn't generate interrupts after booting


Having a weird problem here.

My program on ADSP-21489 (custom board) runs perfectly fine when uploaded to the DSP from CCES. However, when I boot it, all the program code is nicely put in place, and the program starts running. But the SPORT0 doesn't generate any interrupts.

So, I guess there's some interrupt-related register that's being initialised when uploading the DSP from CCES, but which isn't initialised when booting.

And now it becomes real weird: when I check the contents of the processor memory, using a Debug Configuration in CCES that doesn't upload any code, i can inspect the code that has been installed during the boot process. All that looks perfectly fine. And then after inspecting, everything suddenly starts making sound, the SPORT now starts generating interrupts. So maybe, running an 'inspection-only' Debug Configuration also initialises some registers?

I have been checking and initialising any related register I can see: IRPTL/IMASK, LIRPTL, PICR0-3, the global interrupt switch in MODE1, and I cleaned any errors writing 1's to SPERRCTL0.

Do you have any clue where I could be looking further?



A little more information:

- custom board using ADSP-21489.

- Slave booted with a PIC18 MCU as master.

- Audio output only, using CS4385 DAC.

- After bootup the program is working fine, I can also see that because the clock signals to the DAC show up on the oscilloscope, next to inspecting the Program Memory with a inspect-only Debug Configuration

- I implemented a flag in the audio interrupt service routine: it is actually never called, not a single time...