#ifndef FREERTOS_CONFIG_H #define FREERTOS_CONFIG_H /*----------------------------------------------------------- * Application specific definitions. * * These definitions should be adjusted for your particular hardware and * application requirements. * * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. * * See http://www.freertos.org/a00110.html. *----------------------------------------------------------*/ // Scheduler Configuration #define configUSE_PREEMPTION 1 // 1: Preemptive scheduler, 0: Cooperative scheduler #define configUSE_PORT_OPTIMISED_TASK_SELECTION 0 // Use optimized task selection if available #define configUSE_IDLE_HOOK 0 // 1: Use Idle hook function #define configUSE_TICK_HOOK 0 // 1: Use Tick hook function #define configIDLE_SHOULD_YIELD 1 // 1: Idle task yields to same priority tasks // System Clock Configuration #define configCPU_CLOCK_HZ ((unsigned long)150000000) // CPU frequency: 150 MHz for RP2350 #define configTICK_RATE_HZ ((TickType_t)1000) // RTOS tick frequency (1000 Hz = 1ms tick) // Task Configuration #define configMAX_PRIORITIES 5 // Maximum number of priority levels #define configMINIMAL_STACK_SIZE ((unsigned short)256) // Minimum stack size in words #define configMAX_TASK_NAME_LEN (16) // Maximum length of task names // Memory Configuration #define configTOTAL_HEAP_SIZE ((size_t)(16 * 1024)) // Total RTOS heap size (16 KB) #define configSUPPORT_DYNAMIC_ALLOCATION 1 // 1: Enable dynamic memory allocation // Synchronization Primitives #define configUSE_MUTEXES 1 // 1: Enable mutexes #define configUSE_RECURSIVE_MUTEXES 1 // 1: Enable recursive mutexes #define configUSE_COUNTING_SEMAPHORES 1 // 1: Enable counting semaphores #define configQUEUE_REGISTRY_SIZE 8 // Number of queues/semaphores that can be registered // Debugging and Diagnostics #define configUSE_TRACE_FACILITIES 0 // 1: Enable trace/debug facilities #define configCHECK_FOR_STACK_OVERFLOW 2 // Stack overflow checking method (0=off, 1=method1, 2=method2) #define configUSE_MALLOC_FAILED_HOOK 0 // 1: Use memory allocation failure hook #define configUSE_APPLICATION_TASK_TAG 0 // 1: Enable task tagging #define configGENERATE_RUN_TIME_STATS 0 // 1: Generate run-time statistics // Timer Configuration #define configUSE_TIMERS 1 // 1: Enable software timers #define configTIMER_TASK_PRIORITY (2) // Timer service task priority #define configTIMER_QUEUE_LENGTH 10 // Timer command queue length #define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) // Timer task stack size // Co-routine Configuration #define configUSE_CO_ROUTINES 0 // 1: Enable co-routines #define configMAX_CO_ROUTINE_PRIORITIES (2) // Maximum co-routine priorities // Hardware Specific Configuration #define configENABLE_FPU 1 // 1: Enable Floating Point Unit #define configENABLE_TRUSTZONE 0 // 1: Enable TrustZone #define configENABLE_MPU 0 // 1: Enable Memory Protection Unit (defined twice in original) #define configRUN_FREERTOS_SECURE_ONLY 1 // 1: Run in secure mode only #define configUSE_16_BIT_TICKS 0 // 0: Use 32-bit ticks, 1: Use 16-bit ticks // API Inclusion Configuration #define INCLUDE_vTaskPrioritySet 1 // Include task priority set API #define INCLUDE_uxTaskPriorityGet 1 // Include task priority get API #define INCLUDE_vTaskDelete 1 // Include task delete API #define INCLUDE_vTaskCleanUpResources 0 // Include task cleanup API #define INCLUDE_vTaskSuspend 1 // Include task suspend API #define INCLUDE_vTaskDelayUntil 1 // Include delay until API #define INCLUDE_vTaskDelay 1 // Include delay API #define INCLUDE_xTaskGetSchedulerState 1 // Include scheduler state API #define INCLUDE_xTaskGetCurrentTaskHandle 1 // Include current task handle API #define INCLUDE_uxTaskGetStackHighWaterMark 0 // Include stack high water mark API #define INCLUDE_xTaskGetIdleTaskHandle 0 // Include idle task handle API #define INCLUDE_eTaskGetState 0 // Include task state API #define INCLUDE_xSemaphoreGetMutexHolder 0 // Include mutex holder API #define INCLUDE_xTimerPendFunctionCall 1 // Include timer pend function call API (defined twice in original) #define INCLUDE_xQueueGetMutexHolder 0 // Include queue mutex holder API #define INCLUDE_xEventGroupSetBitFromISR 1 // Include event group set bit from ISR API // Cortex-M Interrupt Configuration #ifdef __NVIC_PRIO_BITS #define configPRIO_BITS __NVIC_PRIO_BITS // Use CMSIS defined priority bits #else #define configPRIO_BITS 3 // 7 priority levels (default) #endif #define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0x7 // Lowest interrupt priority #define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5 // Highest priority for FreeRTOS API calls #define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) #define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) // Assertion Definition #define configASSERT(x) if((x) == 0) { taskDISABLE_INTERRUPTS(); for(;;); } // Basic assert implementation #endif /* FREERTOS_CONFIG_H */