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.

CC2340R5: zephyr sys_reboot() ends up in busy loop

Part Number: CC2340R5

Hello,

I had a customer try rebooting the cc2340R53 using the zephyr sys_reboot() function, but since our device does not use the arm standard NVIC reboot vector, it gets caught running in a busy loop and never returns.

So the workaround we found for now is to include:

#include <driverlib/pmctl.h>

/* ... some function */
    PMCTLResetSystem(); // issue device reset

But I think we should eventually support the zephyr way of doing this or else you will get unexpected behavior when migrating applications.

Munan

  • Hey nevermind, I tried this again with sys_reboot() and now it seems to be working... Not sure what changed.

    Munan

  • Hi !

    Looking into it, sys_reboot calls sys_arch_reboot, which is implementation defined.

    You can see that the cc2340r5 does implement this function in zephyr\soc\ti\simplelink\cc23x0\power.c if and only if the CONFIG_REBOOT variable is defined. My guess is that this is what you were missing in your prj.conf.

    Kind regards,
    Lea