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.