Multicore idle GPIO test

The test benchmarks the idle behavior of an application that runs on multiple cores. It uses a pin as a wake-up source.

Requirements

The test supports the following development kits:

Hardware platforms

PCA

Board name

Board target

nRF54H20 DK

PCA10175

nrf54h20dk

nrf54h20dk/nrf54h20/cpuapp

Overview

The test demonstrates how to build a multicore idle application with Sysbuild.

When building with sysbuild, the build system adds child images based on the options selected in the project’s additional configuration and build files. This test shows how to inform the build system about dedicated sources for additional images. The test comes with the following additional files:

  • Kconfig.sysbuild - This file is used to add sysbuild Kconfig options that are passed to all the images.

  • sysbuild.cmake - The CMake file adds additional images using the ExternalZephyrProject_Add macro. You can also add the dependencies for the images if required.

Both the application and remote cores use the same main.c that prints the name of the DK on which the application is programmed.

Building and running

This test can be found under tests/benchmarks/multicore/idle_gpio in the nRF Connect SDK folder structure.

See Programming an application for information about how to build and program the tests.

The remote board must be specified using SB_CONFIG_REMOTE_BOARD. To build the test, use configuration setups from testcase.yaml using the -T option. See the following examples:

nRF54H20 DK

You can build the test for application and radio cores as follows:

west build -p -b nrf54h20dk/nrf54h20/cpuapp -T benchmarks.multicore.idle_gpio.nrf54h20dk_cpuapp_cpurad.s2ram .

Testing

After programming the test to your development kit, complete the following steps to test it:

  1. Connect the PPK2 Power Profiler Kit or other current measurement device.

  2. Reset the kit.

  3. Observe the low current consumption as all cores are suspended.

  4. Press a button to execute the user callback. The device will remain in active state for 1 second.

    • Button 0 - Wakes up the application core.

    • Button 1 - Wakes up the radio core.