main: restore compatibility with single-core RTOS operation
diff --git a/src/FreeRTOSConfig.h b/src/FreeRTOSConfig.h index 3b89b1c..7a18bda 100644 --- a/src/FreeRTOSConfig.h +++ b/src/FreeRTOSConfig.h
@@ -104,7 +104,9 @@ /* SMP port only */ #define configNUMBER_OF_CORES 2 #define configTICK_CORE 0 +#if (configNUMBER_OF_CORES > 1) #define configUSE_CORE_AFFINITY 1 +#endif #define configRUN_MULTIPLE_PRIORITIES 1 #define configUSE_PASSIVE_IDLE_HOOK 0
diff --git a/src/main.c b/src/main.c index 47d476b..72fc5bb 100644 --- a/src/main.c +++ b/src/main.c
@@ -140,8 +140,14 @@ if (THREADED) { xTaskCreate(usb_thread, "TUD", configMINIMAL_STACK_SIZE, NULL, TUD_TASK_PRIO, &tud_taskhandle); +#if (configNUMBER_OF_CORES > 1) + vTaskCoreAffinitySet(tud_taskhandle, (1 << 0)); +#endif #if PICO_RP2040 xTaskCreate(dev_mon, "WDOG", configMINIMAL_STACK_SIZE, NULL, TUD_TASK_PRIO, &mon_taskhandle); +#if (configNUMBER_OF_CORES > 1) + vTaskCoreAffinitySet(mon_taskhandle, (1 << 0)); +#endif #endif vTaskStartScheduler(); } @@ -274,7 +280,11 @@ xTaskCreate(dap_thread, "DAP", configMINIMAL_STACK_SIZE, NULL, DAP_TASK_PRIO, &dap_taskhandle); /* Autobaud detection using PIO as a frequency counter */ xTaskCreate(autobaud_thread, "ABR", configMINIMAL_STACK_SIZE, NULL, AUTOBAUD_TASK_PRIO, &autobaud_taskhandle); +#if(configNUMBER_OF_CORES > 1) vTaskCoreAffinitySet(autobaud_taskhandle, (1 << 1)); + vTaskCoreAffinitySet(dap_taskhandle, (1 << 0)); + vTaskCoreAffinitySet(uart_taskhandle, (1 << 0)); +#endif was_configured = 1; } }