Amazon projects tasks1/14/2024 ![]() When CONFIG_FREERTOS_UNICORE is false, an IPC task ( ipcx) is created for (and pinned to) each CPU. This task will self delete when app_main returns List of Tasks Created During Startup Īn idle task ( IDLEx) is created for (and pinned to) each CPU, where x is the CPU’s number.įreeRTOS will create the Timer Service/Daemon Task if any FreeRTOS Timer APIs are called by the application. The app_main function is called from the main task.ĭuring startup, ESP-IDF and FreeRTOS will automatically create multiple tasks that run in the background (listed in the the table below). The app_main function is allowed to return at any point (i.e., before the application terminates). Typically, users would spawn the rest of their application’s task from app_main. Users must define a void app_main(void) function which acts as the entry point for user’s application and is automatically called on ESP-IDF startup. Instead, ESP-IDF will start FreeRTOS automatically. Unlike Vanilla FreeRTOS, users of FreeRTOS in ESP-IDF must never call vTaskStartScheduler() and vTaskEndScheduler(). Using FreeRTOS Application Entry Point The FreeRTOS ports themselves (e.g., tick timer selection, ISR stack size)Īdditional features added to the FreeRTOS implementation or ports Alternatively, users can also search for occurrences of CONFIG_FREERTOS_UNICORE in the ESP-IDF components.ĬONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY enables backward compatibility with some FreeRTOS macros/types/functions that were deprecated from v8.0 onwards.Īll other FreeRTOS related configuration options that are not part of the kernel configuration are exposed via menuconfig under Component Config/FreeRTOS/Port. For more details regarding the effects of running FreeRTOS on a single core, refer to ESP-IDF FreeRTOS Single Core (if using ESP-IDF FreeRTOS) or the official Amazon SMP FreeRTOS documentation. Furthermore, this option may affect behavior of components other than freertos. Note that this is not equivalent to running Vanilla FreeRTOS. ![]() The list below highlights some commonly used kernel configuration options:ĬONFIG_FREERTOS_UNICORE will run FreeRTOS only on CPU0. All kernel configuration options that are configurable by the user will be exposed via menuconfig under Component Config/FreeRTOS/Kernel.įor the full list of user configurable kernel options, see Project Configuration. A large number of kernel configuration options in FreeRTOSConfig.h are hard coded as they are either required or not supported in ESP-IDF. However, for all FreeRTOS ports in ESP-IDF, the ``FreeRTOSConfig.h`` file is considered private and must not be modified by users. Vanilla FreeRTOS supports a list of kernel configuration options which allow various kernel behaviors and features to be enabled or disabled. Vanilla FreeRTOS requires that ports and applications configure the kernel by adding various #define config. Therefore, significant behavioral changes and breaking API changes can occur. The Amazon SMP FreeRTOS implementation (and its port in ESP-IDF) are currently in experimental/beta state. ![]() For more details regarding ESP-IDF FreeRTOS and its modifications, please refer to the FreeRTOS (ESP-IDF) document. ESP-IDF FreeRTOS only supports two cores at most (i.e., dual core SMP), but is more optimized for this scenario by design. ESP-IDF FreeRTOS ĮSP-IDF FreeRTOS is a FreeRTOS implementation based on Vanilla FreeRTOS v10.4.3, but contains significant modifications to support SMP. In order to support the various multi-core ESP targets, ESP-IDF supports different FreeRTOS implementations, namely ESP-IDF FreeRTOS and Amazon SMP FreeRTOS. The official FreeRTOS (henceforth referred to as Vanilla FreeRTOS) is a single-core RTOS. This document provides an overview of the FreeRTOS component, the FreeRTOS implementations offered by ESP-IDF, and the common aspects across all implementations. Furthermore, ESP-IDF provides different implementations of FreeRTOS in order to support SMP (Symmetric Multiprocessing) on multi-core ESP targets. The FreeRTOS component in ESP-IDF contains ports of the FreeRTOS kernel for all the CPU architectures used by ESP targets (i.e., Xtensa and RISC-V). FreeRTOS is an open source real-time operating system kernel that acts as the operating system for ESP-IDF applications and is integrated into ESP-IDF as a component.
0 Comments
Leave a Reply.AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |