Does single core FreeRTOS in a dual core RP2040 use just one core?

I am developing an ROS2 application (using MicroROS) on a RP2040 (Raspberry Pico) and FreeTROS. The current FreeRTOS SMB branch appears to be problematic on this device and crashes somewhere in the ROS2 publishing and subscribing routines. I moved to using the non-smb branch and thus “single core FreeRTOS”, with configUSE_CORE_AFFINITY set to 0. A very basis question - does using “single core FreeRTOS” really use just one of the two RP2040 cores, leaving one core dormant, or are both cores actually used with the scheduler?

Assuming you are taking about the FreeRTOS-Kernel repo, the current main branch has code for both single core and SMP.

It depends on the value of configNUMBER_OF_CORES:

  • If configNUMBER_OF_CORES is set to 1, only one core is used.
  • If configNUMBER_OF_CORES is set to 2, both the cores are used.

This is a single core example for RP2040 - FreeRTOS-Community-Supported-Demos/CORTEX_M0+_RP2040/Standard at main · FreeRTOS/FreeRTOS-Community-Supported-Demos · GitHub.
This is an SMP example for RP2040 - FreeRTOS-Community-Supported-Demos/CORTEX_M0+_RP2040/Standard_smp at main · FreeRTOS/FreeRTOS-Community-Supported-Demos · GitHub.