diff --git a/docs/reports/STM32F107-72-GCC.txt b/docs/reports/STM32F107-72-GCC.txt index 884a1b30e..3240b2663 100644 --- a/docs/reports/STM32F107-72-GCC.txt +++ b/docs/reports/STM32F107-72-GCC.txt @@ -98,7 +98,7 @@ Settings: SYSCLK=72, ACR=0x12 (2 wait states) --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.1 (Benchmark, messages #1) ---- Score : 249425 msgs/S, 498850 ctxswc/S +--- Score : 249426 msgs/S, 498852 ctxswc/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.2 (Benchmark, messages #2) @@ -130,7 +130,7 @@ Settings: SYSCLK=72, ACR=0x12 (2 wait states) --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.9 (Benchmark, I/O Queues throughput) ---- Score : 474216 bytes/S +--- Score : 478964 bytes/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.10 (Benchmark, virtual timers set/reset) diff --git a/os/kernel/include/chqueues.h b/os/kernel/include/chqueues.h index 1913e8bdd..8a00f404d 100644 --- a/os/kernel/include/chqueues.h +++ b/os/kernel/include/chqueues.h @@ -134,7 +134,8 @@ typedef GenericQueue InputQueue; * * @iclass */ -#define chIQIsFullI(iqp) ((bool_t)(chQSpaceI(iqp) >= chQSizeI(iqp))) +#define chIQIsFullI(iqp) ((bool_t)(((iqp)->q_wrptr == (iqp)->q_rdptr) && \ + !chIQIsEmptyI(iqp))) /** * @brief Input queue read. @@ -205,7 +206,8 @@ typedef GenericQueue OutputQueue; * * @iclass */ -#define chOQIsEmptyI(oqp) ((bool_t)(chQSpaceI(oqp) >= chQSizeI(oqp))) +#define chOQIsEmptyI(oqp) ((bool_t)(((oqp)->q_wrptr == (oqp)->q_rdptr) && \ + !chOQIsFullI(oqp))) /** * @brief Evaluates to @p TRUE if the specified output queue is full. diff --git a/readme.txt b/readme.txt index a86e0265b..d1534bd9b 100644 --- a/readme.txt +++ b/readme.txt @@ -71,6 +71,7 @@ ***************************************************************************** *** 2.3.1 *** +- FIX: Fixed wrong checks in I/O Queues (bug 3219197)(backported to 2.2.3). - FIX: Fixed invalid assertion in adcConvert() (bug 3205410)(backported to 2.2.3). - NEW: Added support for PLL3 in STM32 HAL driver. Note, the format of the