I found a problem when I force a soft-reset of a BF527 on a custom board (VisualDSP++ 5.0 Update 6).
I read the BF52x Hardware Reference manual, but it doesn't explain very much, so I read the BF54x Blackfin Processor Hardware Reference that has more informations. I also searched in this forum and I found some discussions with a similar problem, but none of them help me.
So I did some test and I think I was able to isolate the problem:
- I force the soft-reset with the instruction bfrom_SysControl( SYSCTRL_SOFTRESET, NULL, NULL );
- the BF527 reboots from the SPI flash (I checked with an oscilloscope)
- the program hangs indefinitely, but it's difficult to understand where
- so I have this idea: I know that the boot is executed, so the problem should be in the code execution
- I replaced the bfrom_SysControl( SYSCTRL_SOFTRESET, NULL, NULL ); instruction with a jump to the begining of my code, so I could look into the problem with the emulator
- I noticed that the DSP hangs into the adi_ebiu_SetInitFlag( ) function because the flag adi_ebiu_settings.InitializedFlag is high, and the instruction sti(imask); never returns
Could be this the problem also in the real reboot?
How can I avoid this hang?
Is there a way to clear memory and registers before forcing reboot?