This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

how to software reset for Concerto f28M35



Hello,

I'm aware that the watchdog timer could be used to force a reset, but I wonder if one can use the RESET_ISR memory contents?  Also the spruh mentions the nvic software trigger and it looks like I could use the software trigger register and write a 1 to it to invoke the reset isr?

Thanks,

Larry

  • I guess that would work, but check the resets table in TRM, system control section to make sure all the modules you want to be reset are being reset, I beleive PLL won't be reset. Most of the system is reset though, so if it works for your use case you should be fine.

    I prefer using WDOG because it resets almost everything.

    Best Regards

    santosh

     

  • Hi Santosh,

    Thanks for the quick reply!  I want to double check which of the suggested software resets you guess would work, the SOFTWARE TRIGGER REGISTER or the address in RESETISR?

    FYI my purpose is to reset into the MBROM and have it read the GPIOs for boot mode (for the serial download)

    Thanks again, happy Monday,

    Larry

  • Hi Santosh,

    I ended up taking the address for RESET ISR, and casting it to a void fcn with void arguments, and calling it.  That definitely looks like it's rebooting, and from what I can tell in the TRM spruh22b is that we would definitely go through the reading of boot mode GPIO. 

    Thanks again,

    Larry

  • I would be very careful calling into the RESET ISR, there will be always something that can go wrong, because now you are running device boot code but the device is not really at reset state. for ex: NVIC BASE ADDRESS, enabled or disabled interrupts. Also consider future expansion of the applciation, today it might work but tomorrow it might not.

    I prefer using the NVIC to reset the core or use WDOG to reset everything. or you will have to implement a small function which resets all the modules (use SYSCTL_RCGC and SYSCTLSRCR regs), clears all the interrupts (NVIC_UNPEND), reset NVIC base, disable WDOG or any other module you initialized and call to reset isr. Also be-aware of RAM reserved for boot ROM execution and control subsystem modules, IO allocations etc etc. You might want to or might not want to reset control subsystem here.

     

    Best Regards

    santosh

  • Santosh,

    Thanks for the feedback, I think you're right so I've put in the WDOG reset to get a more inclusive reset and I won't have to manually reset all the modules

    Thanks again!

    Larry