 FreeRTOS Configuration There are two main configuration files within FreeRTOS. FreeRTOS.h, keeping more advanced settings, and FreeRTOS.config.h, where we can configure most of the parameters and add or remove FreeRTOS components and functions. FreeRTOS.h file should be modified manually if needed. Using STM32Cube IDE or STM32Cube MX Code Generator tool, FreeRTOS.config.h file are available within FreeRTOS mode and configuration window at the configuration parameters tab, which is covering main FreeRTOS configuration parameters, what we can see currently on the screen, and include parameter tab, allowing us shrinking code usage by removing most used OS components and its features. Rest of the tabs is used to create OS components like tasks, queues, semaphores, mutexes and software timers. We will not find there neither signals nor event groups. Those components need to be added manually from the code. We will focus on this point in a separate section on this training. Let's start with use preemption settings, which specifies what kind of a kernel algorithm we will use with or without preemption. Some additional settings related to scheduler operations can be found within FreeRTOS.h configuration file, which should be modified manually if needed. Here we can see some examples of most important settings of the FreeRTOS available within config parameters tab and stored within FreeRTOS config.h file. All of the settings have their default values, which are correct for simple system. Config CPU clock hertz is configured automatically based on clock configuration of the MCU. T-grade is configured to 1kHz, which is the most commonly used value. Total hip size is a size of the RAM memory, which would be dedicated to operating system. Please notice that the total hip size is given in bytes, while stack size for a particular task is given in words. To last components are extremely important due to the coexistence of the operating system of the rest of the hardware resources of the MCU. Library lowest interrupt priority is set automatically to lowest possible priority value. In Cortex M3 and M4 and M7 based STM32s it is 15, while in Cortex M0 and M0 Plus based STM32s it is set to 3. This priority value is set for the interrupts responsible for the context switching, so for the SysTik and PentSv. Library max syscall interrupt priority is the maximum priority value for the interrupts, which would be allowed to execute operating system functions. One of the most common mistakes is usage of operating system functions from the interrupts, which have higher priority value than this one. Thank you for watching this video.