There is an m4 core within 7ulp. I am using m4 core sdk 2.11.
A power mode switch is being developed on the sdk source.
However, heartbeat timeout occurs in M4 during 7ulp boot and reboots.
confirmation result,
from the M4
heartBeatTimer = xTimerCreate("HeartBeat", APP_MS2TICK(APP_HEART_BEAT_TIMER_PERIOD_MS), pdFALSE, NULL, APP_HeartBeatTimerCallback);
generate
APP_HEART_BEAT_TIMER_PERIOD_MS is 31000.
APP_HeartBeatTimerCallback should operate at 31 seconds.
However, Callback operates at 30.6sec.
[2023-06-12 14:23:04.910] <APP_SRTM_LfclEventHandler> at heartBeatTimer Reset
[2023-06-12 14:23:35.510] Heart Beat timeout
=> 30.6
For the test, APP_HEART_BEAT_TIMER_PERIOD_MS was changed to 29000. Operation operates at 28.614sec.
[2023-06-12 18:20:03.143] <APP_SRTM_LfclEventHandler> at heartBeatTimer Reset
[2023-06-12 18:20:31.757] Heart Beat timeout
=> 28.614
There is an error.
What is the root cause?
Hello,
The responsible for do the conversion of milliseconds to Ticks is the APP_MS2TICK(APP_HEART_BEAT_TIMER_PERIOD_MS)
In the app_srtm.c file you can find the definition for APP_MS2TICK:
#define APP_MS2TICK(ms) ((ms + portTICK_PERIOD_MS - 1) / portTICK_PERIOD_MS)
You can try modifying the macro to change the ticks value.
Best regards.