У нас вы можете посмотреть бесплатно 2 Getting Started RTOS или скачать в максимальном доступном качестве, видео которое было загружено на ютуб. Для загрузки выберите вариант из формы ниже:
Если кнопки скачивания не
загрузились
НАЖМИТЕ ЗДЕСЬ или обновите страницу
Если возникают проблемы со скачиванием видео, пожалуйста напишите в поддержку по адресу внизу
страницы.
Спасибо за использование сервиса ClipSaver.ru
This guide demonstrates how to implement FreeRTOS on the ESP32 microcontroller using the Arduino IDE for simplified development. It outlines the process for downloading the source code, navigating official documentation, and understanding the core differences between standard FreeRTOS and the version modified for multi-core architectures. The tutorial provides a practical example by creating a "Blinky" program, where tasks are defined, prioritized, and pinned to specific processor cores. Key concepts like non-blocking delays, tick timers, and stack management are highlighted to ensure proper task scheduling. Users are encouraged to explore configuration files and official manuals to master the nuances of real-time operating systems.N To use the ESP32 with FreeRTOS in the Arduino IDE, you must add the Espressif systems URL to the Boards Manager, install the ESP32 package, and select your specific board (e.g., Adafruit Feather HUZZAH32). The ESP32 relies on a FreeRTOS config file (FreeRTOSConfig.h) to define system variables. In this environment, the configuration includes: • Priority Levels: A maximum of 25 priority levels (0 to 24), with 0 being the lowest priority. • Stack Size: The minimum task stack size is 768 bytes. Task Fundamentals and Creation A task is a function that returns nothing (void) and accepts a single void pointer as a parameter. To make the scheduler aware of a task, you must call a creation function with the following parameters: 1. Function Name: The name of the task function. 2. Task Name: A descriptive string. 3. Stack Size: Defined in bytes for the ESP32 (whereas Vanilla FreeRTOS often uses words). 4. Arguments: A pointer to memory for passing arguments (can be NULL). 5. Priority: A number where higher values indicate higher priority. 6. Task Handle: A pointer used to manage the task (status, memory, or termination) from other tasks. 7. Core ID: (Specific to xTaskCreatePinnedToCore) The CPU core (0 or 1) where the task will run. The Scheduler and Tick Timer The RTOS operates based on a tick timer, which is a hardware timer that interrupts the processor at specific intervals (the default tick period is one millisecond). • vTaskDelay: Instead of the standard Arduino delay() function, it is recommended to use vTaskDelay. This is a non-blocking function that tells the scheduler to run other tasks until the specified number of ticks has passed. • Startup: In many systems, you must call vTaskStartScheduler to begin execution. However, in the ESP32 Arduino framework, the scheduler is started automatically before the setup() function is called. • Setup and Loop: In the ESP32 environment, the setup() and loop() functions actually run as their own task with a priority of 1 on core 1. Practical Example and Challenge The source demonstrates these concepts by creating a "Blinky" program. To further practice, the video suggests a challenge: create a second task (or thread) with a different delay rate to produce a complex, multi-rate LED blinking pattern. How do priority levels affect task execution in FreeRTOS? What are the risks of using too little stack memory? How does vTaskDelay differ from a standard blocking delay?