I am using uVision 5.28 and ULink2 to debug a Cortex-M0+ device. I ran into an issue that when I use VECTRESET the peripheral settings would not be reset properly and hence my code would never enter main() function. In this case, I used SYSRESETREQ instead and everything started to work fine.
However, when I tried to use HWRESET, the device would not be acquired and hence I could not even enter the debug mode. What could possibly be this issue that when using SYSRESETREQ works but HWRESET doesn't?
In short, the question is about what exactly is the difference between the procedures that HWRESET and SYSRESETREQ/VECTRESET performs, and what HWRESET does in addition to the other two?
VECTRESET will reset the Cortex Processor but not anything outside the processor (such as peripherals)
SYSRESETREQ will should reset the entire SOC including the peripherals.
HWRESET is related to the emulator so should not do anything with any physical hardware.
Could you elaborate more on HWRESET relating to the emulator? Does it mean that the Cortex Processor and peripherals will not be reset under this mode?
I believe your best course of action is to read the manual.
View all questions in Keil forum