We are developping an application on a kinetis K20 (MQX4.0 and IAR 7.40). This application has a bootloader. We use the function __boot to reboot only MQX and than restart the user application. This function is called after the sleep mode to restart the app. Where is specification of what we do.
- The sleep mode is configured to wake up with a transition on a specific pin.
- At the wake up, the function __boot() is called to restart MQX with our app.
- At a certain size of application (flash and ram) we observed that the function boot is not working properly. That means the code is not restarting. The MCU freeze.
- We implement a workaround: after calling this function: _lpm_set_operation_mode(LPM_OPERATION_MODE_STOP)), we call _lpm_set_operation_mode(LPM_OPERATION_MODE_RUN)). and we repalce the function __boot() by a custom reset function. This situation is a workaroud because we do not want to reset, but just restart.
- When the function is not working properly, the MCU freeze and nothing happen (depending of the watch dog configuration, the MCU reset and restart normally, but it's not normal).
We need help to understand what's happening.