I'm in charge of porting an application from V7.1.0 to v9 without dynamic allocation.
Porting was very straightforward, but I found out that application wasn't working correctly at runtime.
The reason was the substitution of vSemaphoreCreateBinary with xSemaphoreCreateBinaryStatic.
While the the former is actually a macro that creates the semaphore and 'give' it, the latter just creates the semaphore. Hence an explicit xSemaphoreGive is required.
This is a documented difference between the two - the functions names
(even the one without 'static' at the end) are different...
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.