From 8a1e2ccd721f6b874884d0afe1bc704bbb382ec6 Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Sat, 26 Sep 2015 07:12:22 +0000 Subject: [PATCH] Fixed bug #644. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@8328 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- doc/hal/Doxyfile_chm | 2 +- doc/hal/Doxyfile_html | 2 +- doc/rt/Doxyfile_chm | 2 +- doc/rt/Doxyfile_html | 2 +- os/hal/include/hal.h | 6 +++--- os/rt/include/ch.h | 4 ++-- os/rt/ports/ARMCMx/cmsis_os/cmsis_os.c | 17 +++++++++++------ readme.txt | 1 + 8 files changed, 21 insertions(+), 15 deletions(-) diff --git a/doc/hal/Doxyfile_chm b/doc/hal/Doxyfile_chm index 5c5e56329..5dad53416 100644 --- a/doc/hal/Doxyfile_chm +++ b/doc/hal/Doxyfile_chm @@ -38,7 +38,7 @@ PROJECT_NAME = ChibiOS/HAL # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 3.0.1 +PROJECT_NUMBER = 3.1.0 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/doc/hal/Doxyfile_html b/doc/hal/Doxyfile_html index 21147269e..eda1fac78 100644 --- a/doc/hal/Doxyfile_html +++ b/doc/hal/Doxyfile_html @@ -38,7 +38,7 @@ PROJECT_NAME = ChibiOS/HAL # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 3.0.1 +PROJECT_NUMBER = 3.1.0 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/doc/rt/Doxyfile_chm b/doc/rt/Doxyfile_chm index 876a180d1..aa37e04a6 100644 --- a/doc/rt/Doxyfile_chm +++ b/doc/rt/Doxyfile_chm @@ -38,7 +38,7 @@ PROJECT_NAME = ChibiOS/RT # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 3.0.2 +PROJECT_NUMBER = 3.0.3 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/doc/rt/Doxyfile_html b/doc/rt/Doxyfile_html index 5c791e5a5..b01c56c59 100644 --- a/doc/rt/Doxyfile_html +++ b/doc/rt/Doxyfile_html @@ -38,7 +38,7 @@ PROJECT_NAME = ChibiOS/RT # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 3.0.2 +PROJECT_NUMBER = 3.0.3 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/os/hal/include/hal.h b/os/hal/include/hal.h index bb1a3281b..9ececfe77 100644 --- a/os/hal/include/hal.h +++ b/os/hal/include/hal.h @@ -101,7 +101,7 @@ /** * @brief HAL version string. */ -#define HAL_VERSION "3.0.1" +#define HAL_VERSION "3.1.0dev" /** * @brief HAL version major number. @@ -111,12 +111,12 @@ /** * @brief HAL version minor number. */ -#define CH_HAL_MINOR 0 +#define CH_HAL_MINOR 1 /** * @brief HAL version patch number. */ -#define CH_HAL_PATCH 1 +#define CH_HAL_PATCH 0 /** @} */ /** diff --git a/os/rt/include/ch.h b/os/rt/include/ch.h index cb4db9392..b9a8828a7 100644 --- a/os/rt/include/ch.h +++ b/os/rt/include/ch.h @@ -48,7 +48,7 @@ /** * @brief Kernel version string. */ -#define CH_KERNEL_VERSION "3.0.2" +#define CH_KERNEL_VERSION "3.0.3" /** * @brief Kernel version major number. @@ -63,7 +63,7 @@ /** * @brief Kernel version patch number. */ -#define CH_KERNEL_PATCH 2 +#define CH_KERNEL_PATCH 3 /** @} */ /* Core headers.*/ diff --git a/os/rt/ports/ARMCMx/cmsis_os/cmsis_os.c b/os/rt/ports/ARMCMx/cmsis_os/cmsis_os.c index 4480bd493..30174405f 100644 --- a/os/rt/ports/ARMCMx/cmsis_os/cmsis_os.c +++ b/os/rt/ports/ARMCMx/cmsis_os/cmsis_os.c @@ -224,7 +224,7 @@ osTimerId osTimerCreate(const osTimerDef_t *timer_def, */ osStatus osTimerStart(osTimerId timer_id, uint32_t millisec) { - if (millisec == 0) + if ((millisec == 0) || (millisec == osWaitForever)) return osErrorValue; timer_id->millisec = millisec; @@ -289,7 +289,8 @@ int32_t osSignalClear(osThreadId thread_id, int32_t signals) { */ osEvent osSignalWait(int32_t signals, uint32_t millisec) { osEvent event; - systime_t timeout = millisec == 0 ? TIME_INFINITE : MS2ST(millisec); + systime_t timeout = ((millisec == 0) || (millisec == osWaitForever)) ? + TIME_INFINITE : MS2ST(millisec); if (signals == 0) event.value.signals = (uint32_t)chEvtWaitAnyTimeout(ALL_EVENTS, timeout); @@ -325,7 +326,8 @@ osSemaphoreId osSemaphoreCreate(const osSemaphoreDef_t *semaphore_def, * @brief Wait on a semaphore. */ int32_t osSemaphoreWait(osSemaphoreId semaphore_id, uint32_t millisec) { - systime_t timeout = millisec == 0 ? TIME_INFINITE : MS2ST(millisec); + systime_t timeout = ((millisec == 0) || (millisec == osWaitForever)) ? + TIME_INFINITE : MS2ST(millisec); msg_t msg = chSemWaitTimeout((semaphore_t *)semaphore_id, timeout); switch (msg) { @@ -380,7 +382,8 @@ osMutexId osMutexCreate(const osMutexDef_t *mutex_def) { * @brief Wait on a mutex. */ osStatus osMutexWait(osMutexId mutex_id, uint32_t millisec) { - systime_t timeout = millisec == 0 ? TIME_INFINITE : MS2ST(millisec); + systime_t timeout = ((millisec == 0) || (millisec == osWaitForever)) ? + TIME_INFINITE : MS2ST(millisec); msg_t msg = chBSemWaitTimeout((binary_semaphore_t *)mutex_id, timeout); switch (msg) { @@ -494,7 +497,8 @@ osStatus osMessagePut(osMessageQId queue_id, uint32_t info, uint32_t millisec) { msg_t msg; - systime_t timeout = millisec == 0 ? TIME_INFINITE : MS2ST(millisec); + systime_t timeout = ((millisec == 0) || (millisec == osWaitForever)) ? + TIME_INFINITE : MS2ST(millisec); if (port_is_isr_context()) { @@ -520,7 +524,8 @@ osEvent osMessageGet(osMessageQId queue_id, uint32_t millisec) { msg_t msg; osEvent event; - systime_t timeout = millisec == 0 ? TIME_INFINITE : MS2ST(millisec); + systime_t timeout = ((millisec == 0) || (millisec == osWaitForever)) ? + TIME_INFINITE : MS2ST(millisec); event.def.message_id = queue_id; diff --git a/readme.txt b/readme.txt index 2ed2a72ad..29c3d62d2 100644 --- a/readme.txt +++ b/readme.txt @@ -116,6 +116,7 @@ - HAL: Introduced support for TIM21 and TIM22 in STM32 ST driver. - HAL: Updated STM32F0xx headers to STM32CubeF0 version 1.3.0. Added support for STM32F030xC, STM32F070x6, STM32F070xB devices. +- RT: Fixed issues in CMSIS RTOS interface (bug #644)(backported to 3.0.3). - HAL: Fixed RT dependency in STM32 SDCv1 driver (bug #643)(backported to 3.0.2). - VAR: Fixed incorrect working area size in LwIP creation in demos (bug #642)