Skip to main content
APOIR.1
Associate II
October 7, 2021
Question

Infinite loop into Sequencer (UTIL_SEQ_WaitEvt)

  • October 7, 2021
  • 1 reply
  • 1162 views

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

This topic has been closed for replies.

1 reply

Associate
June 25, 2024

Did you find a solution to your problem?