Post Go back to editing

ADSP 21563 Soft Reset not working

Category: Software
Product Number: ADSP-21563
Software Version: CCES

I am using the function:

adi_rcu_ControlSystemReset(ADI_PWR_CGU0, true);

it doesn't seem to be working - I'm just trying to trigger a soft reset.  Any Ideas?

  • Hi,

    Have you had the chance to look "RCUSystemSoftwareReset" Example available in the BSP package. If not, Please download "EV-21569-EZKIT Board Support Package – Current Release (Rev. 1.0.1) " from the below link:

    After installation, example available in the below path:
    <installation path>\EV-2156x_EZ-KIT-Rel1.0.1\EV-2156x_EZ-KIT\Examples\services\rcu\RCUSystemSoftwareReset


  • Divya:  Thank you for pointing me to the ezkit examples.  I have converted the example code to run on the ADSP-21563 and they are loading and running.  The watchdog project was failing but I did verify the WDT is working, it's just failing on the adi_wd_SystemResetonWDExpiry(phWD,true) function.  This is related to the soft reset failures I have been experiencing.  We are loading the code via an external serial flash and power on reset always works and loads the program.  However when I try the soft reset projects sometimes it works fine but it never works if I reset it twice.  I've read the ROM bootloader caches the reset vector so it should use the boot address for the POR.  It doesn't always soft reset from a POR.  The Core Reset example loads an asm led blink function and this works fine.  I'm just confused why we would core reset into a RAM based function normally.  I've tried the adi_rom_Boot() for the external SPI mode and it doesn't work.  I've also tried to call the boot mode asm start function using the core reset code and it always works the first time but fails in a idle loop the second time.  All we really want to do is a hard reset that reloads the program from serial flash and maybe a soft reset once the program is loaded.  Any help on this subject would be appreciated.  Jeff

  • Divya:  I have more information.  My failure on the second reset for the asm start: function was a "resource already initialized".  If at the top of the program, if I un-init the resources I can soft reset via a call to start: continually (using the corereset example).  This tells me (because we don't have -meminit checked) that all the RAM segments aren't being zeroed out by the startup code.  If I check -meminit I run out of RAM space.  It appears the loader is responsible for initializing RAM.  This might explain why the normal soft reset is failing since the ROM loader 8k memory used is non-zero and the bootloader fails.  So, I'm thinking I take my ldf file and write some asm to zero the RAM before a reset command or in the startup code, this might allow the ROM Bootloader to run.  Just that thought I would share in case this helps.

  • Hi,

    To avoid the duplication of efforts, please continue your discussion in the below link: