I've been working with STM32 MCPUs for awhile, and started using Keil's ARM MDK environment several months ago. I am still learning a great deal about the tool.
But, something unique has happened and I don't know how to solve it.
My typical process is: write some code, flash it, debug it... However, I often just press F5 and let the MCPU run.
Then, typical operation is that device is "done" - I can reboot it, power it off, and back on and it just works.
I've done this with several Nucleo-STM boards and custom boards with a variety of processors: L476, L431, G01B, H745.
I recently started doing some R&D with a Nucleo-STM32G431. This processor/board is behaving uniquely in that if I reboot it, or reset it the code does not run.
I must attach a debugger and start the code (I do not need to flash it)
This is a big prohibitive as I am trying to troubleshoot/develop things because I have to maintain an ARM MDK session just for those boards.
I've compared project/debug settings across multiple projects and I do not see anything wrong.
Based on the option bytes nSWBOOT0 being 0, and nBOOT0 being 1, this should boot using "main flash area"