STMicroelectronics / STM32CubeF7

STM32Cube MCU Full Package for the STM32F7 series - (HAL + LL Drivers, CMSIS Core, CMSIS Device, MW libraries plus a set of Projects running on all boards provided by ST (Nucleo, Evaluation and Discovery Kits))
Other
322 stars 191 forks source link

Fix a bug in osEventFlagsWait() when called with the osFlagsWaitAll flag #41

Closed SJChannel closed 3 years ago

SJChannel commented 3 years ago

Bring in a bugfix from https://github.com/ARM-software/CMSIS-FreeRTOS/commit/78de2a6322d2b0a00b0ea9ce827e98cbfb89e795. The log message there reads as follows:

Fixed group flags comparison, when waiting on all flags (osFlagsWaitAll). Previous implementation invokes fail every time, when other flags (those we don't wait for) are set. This fix only compares flags specified to wait for, as API docs suggests.

This fixes a bug in osEventFlagsWait() that appears when it is called with the osFlagsWaitAll flag. If you are waiting on, for example, FLAG_A | FLAG_B and those flags become set along with another flag FLAG_C, then osEventFlagsWait() returns a failure indication rather than succeeding as it should.

IMPORTANT INFORMATION

Contributor License Agreement (CLA)

RKOUSTM commented 3 years ago

Hi @SJChannel ,

Thank you for your contribution. This issue has also been previously reported by other users (link).

We have reported your request to our technical team, we still cannot share a date for the moment for the integration of the CMSIS-FreeRTOS v10.3.1 version on the STM32CubeF7 to integrate this fix. We will keep you informed.

Please allow me to close this issue now. Thank you again for your contribution.

With regards,

SJChannel commented 9 months ago

This is STILL broken in STM32Cube_FW_F7_V1.17.1. Would you please commit the fix? It has been 2.5 years since I sent you this PR. It is a simple fix, and it is already incorporated into your F4 repository. This is a serious bug, and you need to implement the fix that I sent in this PR.