2021-10-07 12:58 AM
Hello,
I am always getting stucked into an infinite loop when calling the sequencer UTIL_SEQ_WaitEvt().
When digging deeper, I've seen that it could be a race condition as it doesn't always stop at the same function (sometimes PreIdle, sometimes PostIdle. sometimes maybe even when exiting critical section), but always in this part of code (into stm32_seq.c) :
UTIL_SEQ_PreIdle( );
UTIL_SEQ_ENTER_CRITICAL_SECTION_IDLE( );
if (!(((TaskSet & TaskMask & SuperMask) != 0U) || ((EvtSet & EvtWaited)!= 0U)))
{
UTIL_SEQ_Idle( );
}
UTIL_SEQ_EXIT_CRITICAL_SECTION_IDLE( );
UTIL_SEQ_PostIdle( );
I am not using the sequencer by myself, only calling SIGFOX_API_send_frame() after all my inits. This function is calling RF_API_SEND() (into rf_api.c), which contains a UTIL_SEQ_WaitEvt() after the send.
Even with this issue, my Sigfox message is received on my backend server. However as it's stucked after the send, I can't get any downlink then.
I've tried to add some delay, remove the WaitEvt() function,... nothing works.
As this is critical for my project, could you please help me resolve this issue ?
Thanks per advance
MCU : STM32WLE5C8
2024-06-25 03:44 AM
Did you find a solution to your problem?