System tick frequency. Typically set to 1000 (provides a 1 millisecond tick resolution). configMAX_PRIORITIES Maximum priority levels available to tasks (e.g., 5 or 32 ). configMINIMAL_STACK_SIZE
Defines the RTOS clock tick frequency. 1000 equals a 1ms resolution. configMAX_PRIORITIES 5 to 32
Combines adjacent free blocks to prevent fragmentation. Highly recommended for most general-purpose applications. freertos tutorial pdf
Avoid empty while() loops within your tasks. Instead, use vTaskDelay() or block on queues and semaphores to free up processor time for lower-priority tasks.
This is why you use an RTOS. Standard Linux or Windows cannot guarantee timing. FreeRTOS can. System tick frequency
Task A holds Mutex 1 and waits for Mutex 2. Simultaneously, Task B holds Mutex 2 and waits for Mutex 1. Neither task can ever proceed.
This is the de facto official tutorial and should be the first PDF any learner downloads. Highly recommended for most general-purpose applications
Allows allocation and freeing, but does not combine adjacent free memory blocks. Can lead to fragmentation.
FreeRTOS is a market-leading, open-source real-time operating system kernel designed specifically for microcontrollers and small microprocessors. Unlike standard operating systems (like Linux or Windows) designed for high-throughput, an RTOS prioritizes and deterministic execution . Key Characteristics
[ Task 1: Sensor Read ] ---> Priority: High [ Task 2: Display UI ] ---> Priority: Low Tasks can exist in one of four states: The task is currently utilizing the CPU.
// Create the tasks xTaskCreate(sender_task, "Sender", configMINIMAL_STACK_SIZE, NULL, 1, NULL); xTaskCreate(receiver_task, "Receiver", configMINIMAL_STACK_SIZE, NULL, 2, NULL);