I've the following problem with the ADSP-21369 (I'm using the EZ-KIT 21369 together with VisualDSP 5):
I want to reset my DSP completely so that the execution of the programs start exactly like it would after a boot: stack cleared, all variables should be reinitializated and all peripherals (SDRAM-controller, SPORT etc.) should be resetted, just like when I toggle the reset line. But I want to do that via the program itself without asserting the reset pin from the outside.
I already found out that I can perform a software reset via setting bit 0 in the SYSCTL register. But that does not work. The DSP restarts (I can verify that with turning on/off the LEDs on the eval-board) but the sound output is disturbed then (the sound is overlayed with a crackling then, but you can hear a little bit the expected sound).
I already tried a hard coded jump back to the memory address where the init code is placed by the linker. No success same problem.
Interestingly I can reproduce the problem if I connect to the board via VisualDSP, run the program and press the reset button. The execution does stop then on the breakpoint on the first line in main() like it always does but if I press then F5 it goes wrong (again crackling) while it worked fine for the first run before I press the reset button.
And the crackling already occurs after the reset without having started the SPORTs so in fact the DSP does not send data at that moment.
Next interesting point: When I put the program into the SPI falsh and run it from there standalone (having VisualDSP disconnected) it runs fine and I can press the reset button as often as I want without crackling.