I have a semaphore that at some point returns pdFALSE (0) immediately without waiting for the defined blocked time.
This is how my code looks like
while ( condition )
// Send DATA1
if (xSemaphoreTake( GSMRdy2SndbSemphore, FTP_TO ) == pdPASS )
// Treat response;
FTPTO is TickTypet type. and is initialized before starting the scheduler .
First I send DATA1, so the semaphore wait "FTPTO" seconds before returning pdFALSE. The code will send again DATA1 and the semaphore at this point will return 0 immediately without waiting FTPTO ? I'm not sure what might be the issue here ?
I'm using PIC32MX port and FreeRTOS V8.0.0.
Below is the trace log view of the weird behavior I described above
How is the trace log being generated? Are you using trace macros? If so, what is the behaviour if you remove the trace macros - the same or different? (by remove I mean don't define them so they get defined away to nothing an don't generate any code)
I use FreeRTOS+Trace library to generate this trace log.
I'll try to disable it and try to see what would happen.