lib/cmsis_rtos_v1: Implement support for osDelay This API is used to specify delay in ms. This is analogous to k_sleep in the kernel. Signed-off-by: Rajavardhan Gundi <rajavardhan.gundi@intel.com>
diff --git a/lib/cmsis_rtos_v1/CMakeLists.txt b/lib/cmsis_rtos_v1/CMakeLists.txt index 4a1fdc4..c99aca6 100644 --- a/lib/cmsis_rtos_v1/CMakeLists.txt +++ b/lib/cmsis_rtos_v1/CMakeLists.txt
@@ -4,7 +4,11 @@ target_include_directories(CMSIS INTERFACE ${PROJECT_SOURCE_DIR}/include/cmsis_rtos_v1) zephyr_library() -zephyr_library_sources_ifdef(CONFIG_CMSIS_RTOS_V1 cmsis_thread.c) +zephyr_library_sources_ifdef( + CONFIG_CMSIS_RTOS_V1 + cmsis_thread.c + cmsis_wait.c +) zephyr_library_link_libraries(CMSIS) target_link_libraries(CMSIS INTERFACE zephyr_interface)
diff --git a/lib/cmsis_rtos_v1/cmsis_wait.c b/lib/cmsis_rtos_v1/cmsis_wait.c new file mode 100644 index 0000000..deefa22 --- /dev/null +++ b/lib/cmsis_rtos_v1/cmsis_wait.c
@@ -0,0 +1,21 @@ +/* + * Copyright (c) 2018 Intel Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include <kernel_structs.h> +#include <cmsis_os.h> + +/** + * @brief Wait for Timeout (Time Delay in ms). + */ +osStatus osDelay(uint32_t delay_ms) +{ + if (_is_in_isr()) { + return osErrorISR; + } + + k_sleep(delay_ms); + return osEventTimeout; +}