ARM CMSIS-FreeRTOS Bundle of FreeRTOS for Cortex-M and Cortex-A http://www.keil.com/pack/ License/license.txt Updated to FreeRTOS V10.0.1 Added queue registry support to CMSIS:RTOS2:FreeRTOS component Updated CMSIS-FreeRTOS component view to display queue, mutex and semaphore objects Active development... Updated to CMSIS RTOS2 API 2.1.2 and OS Tick API 1.0.1 Fixed context switch response latency for API calls from ISR FreeRTOS 9.0.0 Maintenance release for CMSIS 5.1.0: - Added support for ARM Compiler 6 - Updated Cortex-A example to use IRQ Controller component - Corrected stack size allocation in RTOS2 osThreadNew function - Added support for OS Tick component - Added documentation for configuration options (native/CMSIS-RTOS2) - Debug event TaskIncrementTick level set to Detail Initial release version: - native FreeRTOS component (RTOS: Variant=FreeRTOS) - CMSIS-RTOS FreeRTOS for Cortex-M and Cortex-A9 (CMSIS:RTOS:FreeRTOS, CMSIS:RTOS2:FreeRTOS) Cortex-M0 or Cortex-M0+ or SC000 processor based device Cortex-M3 or SC300 processor based device Cortex-M4 processor based device Cortex-M4 processor based device using Floating Point Unit Cortex-M7 processor based device Cortex-M7 processor based device using Floating Point Unit Cortex-M7 processor based device using Floating Point Unit (SP) Cortex-M7 processor based device using Floating Point Unit (DP) Cortex-A9 processor based device using Floating Point Unit (DP) Cortex-M processor based device Cortex-A processor based device Cortex-M0 or Cortex-M0+ or SC000 processor based device for the ARM Compiler 5 Cortex-M3 or SC300 processor based device for the ARM Compiler 5 Cortex-M4 processor based device for the ARM Compiler 5 Cortex-M4 processor based device using Floating Point Unit for the ARM Compiler 5 Cortex-M7 processor based device for the ARM Compiler 5 Cortex-M7 processor based device using Floating Point Unit (SP) for the ARM Compiler 5 Cortex-M7 processor based device using Floating Point Unit (DP) for the ARM Compiler 5 Cortex-A9 processor based device for the ARM Compiler 5 Cortex-M0 or Cortex-M0+ or SC000 processor based device for the ARM Compiler 6 Cortex-M3 or SC300 processor based device for the ARM Compiler 6 Cortex-M4 processor based device for the ARM Compiler 6 Cortex-M4 processor based device using Floating Point Unit for the ARM Compiler 6 Cortex-M7 processor based device for the ARM Compiler 6 Cortex-M7 processor based device using Floating Point Unit (SP) for the ARM Compiler 6 Cortex-M7 processor based device using Floating Point Unit (DP) for the ARM Compiler 6 Cortex-A9 processor based device for the ARM Compiler 6 Cortex-M0 or Cortex-M0+ or SC000 processor based device for the GCC Compiler Cortex-M3 or SC300 processor based device for the GCC Compiler Cortex-M4 processor based device for the GCC Compiler Cortex-M4 processor based device using Floating Point Unit for the GCC Compiler Cortex-M7 processor based device for the GCC Compiler Cortex-M7 processor based device using Floating Point Unit (SP) for the GCC Compiler Cortex-M7 processor based device using Floating Point Unit (DP) for the GCC Compiler Cortex-A9 processor based device for the GCC Compiler CMSIS-RTOS implementation for Cortex-M based on FreeRTOS #define RTE_CMSIS_RTOS /* CMSIS-RTOS */ #define RTE_CMSIS_RTOS_FreeRTOS /* CMSIS-RTOS FreeRTOS */ CMSIS-RTOS2 implementation for Cortex-M based on FreeRTOS #define RTE_CMSIS_RTOS2 /* CMSIS-RTOS2 */ #define RTE_CMSIS_RTOS2_FreeRTOS /* CMSIS-RTOS2 FreeRTOS */ CMSIS-RTOS2 implementation for Cortex-A based on FreeRTOS #define RTE_CMSIS_RTOS2 /* CMSIS-RTOS2 */ #define RTE_CMSIS_RTOS2_FreeRTOS /* CMSIS-RTOS2 FreeRTOS */ FreeRTOS Real Time Kernel http://www.freertos.org/Documentation/FreeRTOS_Reference_Manual_V10.0.0.pdf Core components API (Kernel, Tasks, Semaphores, Mutexes, Queues) #define RTE_RTOS_FreeRTOS_CORE /* RTOS FreeRTOS Core */ FreeRTOS CMSIS-RTOS2 API configuration file #define RTE_RTOS_FreeRTOS_CONFIG_RTOS2 /* RTOS FreeRTOS Config for CMSIS RTOS2 API */ FreeRTOS API configuration file #define RTE_RTOS_FreeRTOS_CONFIG /* RTOS FreeRTOS Config for FreeRTOS API */ Co-routine API #define RTE_RTOS_FreeRTOS_COROUTINE /* RTOS FreeRTOS Co-routines */ Event Group API #define RTE_RTOS_FreeRTOS_EVENTGROUPS /* RTOS FreeRTOS Event Groups */ Stream Buffer API #define RTE_RTOS_FreeRTOS_STREAM_BUFFER /* RTOS FreeRTOS Stream Buffers */ Message Buffer API #define RTE_RTOS_FreeRTOS_MESSAGE_BUFFER /* RTOS FreeRTOS Message Buffers */ Timer API #define RTE_RTOS_FreeRTOS_TIMERS /* RTOS FreeRTOS Timers */ Very simple, does not permit memory to be freed. #define RTE_RTOS_FreeRTOS_HEAP_1 /* RTOS FreeRTOS Heap 1 */ Permits memory to be freed, but not does coalescence adjacent free memory blocks. #define RTE_RTOS_FreeRTOS_HEAP_2 /* RTOS FreeRTOS Heap 2 */ Wraps the standard malloc() and free() for thread safety. #define RTE_RTOS_FreeRTOS_HEAP_3 /* RTOS FreeRTOS Heap 3 */ Coalescences adjacent free memory blocks to avoid fragmentation. Includes absolute address placement option. #define RTE_RTOS_FreeRTOS_HEAP_4 /* RTOS FreeRTOS Heap 4 */ Same as Heap_4, with the ability to span the heap across multiple non-adjacent memory areas. #define RTE_RTOS_FreeRTOS_HEAP_5 /* RTOS FreeRTOS Heap 5 */ CMSIS-RTOS2 Blinky example using FreeRTOS Getting Started CMSIS-RTOS2 Blinky example using FreeRTOS for Cortex-A9 (ARM Compiler 5) Getting Started CMSIS-RTOS2 Blinky example using FreeRTOS for Cortex-A9 (ARM Compiler 6) Getting Started Blinky example using FreeRTOS natively Getting Started