Silicon Labs EFM8/C8051: main() never executes. It seems that the reset is happening repeatedly. How should I deal with this?
It is suspected that a watchdog timer (WDT) reset has occurred.
When using the KEIL compiler, initialization is done by STARTUP.A51 before main() is executed. This initialization routine also initializes the RAM, but if the MCU has a large RAM size, initialization takes time. Since the Watchdog timer is enabled by default, the Watchdog timer overflows during initialization and causes a reset.
A workaround is to disable the Watchdog timer at the beginning of STARTUP.A51.
For more information, please visit the SiliconLabs community site.
Experienced FAE
Free consultation is available.
From specific product specifications to parts selection, the Company FAE will answer your technical concerns free of charge. Please feel free to contact us.