1# RTOS Abstraction Library 2The RTOS Abstraction APIs allow middleware to be written to be RTOS aware, but not need to care about what the actual RTOS is. 3 4### What's Included? 5The this release of the RTOS Abstraction API includes support for the following: 6* APIs for interacting with common RTOS Features including: 7 * Threads 8 * Mutexes 9 * Semaphores 10 * Timers 11 * Queues 12 * Events 13* Implementations are provided for 14 * FreeRTOS 15 * RTX (CMSIS RTOS) 16 * ThreadX 17 18### What Changed? 19#### v1.5.0 20* Added additional parameter validation for ThreadX 21#### v1.4.0 22* Added new thread functions: cy_rtos_wait_thread_notification and cy_rtos_set_thread_notification 23* Minor documentation updates for clarity 24#### v1.3.1 25* Fixed a couple bugs in the FreeRTOS port 26#### v1.3.0 27* Update to work with a wider range of MCUs 28* Fixed a race condition in the worker thread 29* Fixed possible issue with thread priorities 30* Minor documentation updates 31#### v1.2.2 32* Minor update for documentation & branding 33#### v1.2.1 34* Fixed possible race condition in cy_rtos_join_thread for FreeRTOS 35* Minor documentation updates 36#### v1.2.0 37* Added utility library for for creating background worker threads: cy_worker_thread.h 38* Added support for getting a semaphore's count: cy_rtos_get_count_semaphore() 39* Added support for non-recursive mutexes: cy_rtos_init_mutex2() 40* Added default implementations for FreeRTOS vApplicationGetIdleTaskMemory, vApplicationGetTimerTaskMemory, and vApplicationSleep 41* Added support for ThreadX 42NOTE: The vApplicationSleep implementation for FreeRTOS depends on the psoc6hal 1.2.0 or later. 43#### v1.1.0 44* Fixed an issue with the FreeRTOS implementation where it would always allocate memory for the thread stack, even if a pre-allocated buffer was provided. 45* Removed usage of assert() and replaced with CY_ASSERT() 46#### v1.0.1 47* Added a new function to get the ID of the currently running thread. 48* A few minor updates to avoid possible warnings depending on compiler. 49* Minor documentation updates 50#### v1.0.0 51* Initial release supporting FreeRTOS & RTX 52 53### Supported Software and Tools 54This version of the RTOS Abstraction API was validated for compatibility with the following Software and Tools: 55 56| Software and Tools | Version | 57| :--- | :----: | 58| ModusToolbox™ Software Environment | 2.4.0 | 59| GCC Compiler | 10.3.1 | 60| IAR Compiler | 8.4 | 61| ARM Compiler | 6.11 | 62 63Minimum required ModusToolbox™ Software Environment: v2.0 64 65### More information 66Use the following links for more information, as needed: 67* [API Reference Guide](https://infineon.github.io/abstraction-rtos/html/modules.html) 68* [Cypress Semiconductor, an Infineon Technologies Company](http://www.cypress.com) 69* [Infineon GitHub](https://github.com/infineon) 70* [ModusToolbox™](https://www.cypress.com/products/modustoolbox-software-environment) 71 72--- 73© Cypress Semiconductor Corporation (an Infineon company) or an affiliate of Cypress Semiconductor Corporation, 2019-2021.