pw_rp2350#

This directory contains Pigweed target definitions and application setups for the Pigweed RP2350 board. It supports running the Pigweed rust examples under three different kernels/RTOS options:

  1. FreeRTOS (under freertos/)

  2. Pigweed Kernel (under pigweed/)

  3. Zephyr (under zephyr/)

All kernels can compile and run the same Rust example binaries, as long as all dependent backends are supported by the particular RTOS.

All output is logged to the UART.

Flashing Targets#

Before flashing, connect your PW RP2350 target board to your host machine.

FreeRTOS#

To compile and flash the FreeRTOS loop example, run the following command from the root of the Pigweed repository:

bazelisk run //targets/pw_rp2350/freertos:flash_sleep_example

Pigweed Kernel#

To compile and flash the Pigweed kernel loop example, run the following command from the root of the Pigweed repository:

bazelisk run //targets/pw_rp2350/pigweed:flash_sleep_example

Zephyr#

To build and flash the Zephyr loop example, navigate to the Zephyr sub-workspace directory:

cd targets/pw_rp2350/zephyr

Then run the flash command:

bazelisk run //:flash_sleep_example

Running Unit Tests#

Pigweed supports running on-device unit tests using the RPC unit test runner. This requires running a test server on the host that communicates with the connected board.

FreeRTOS#

  1. Start the test server on the host.

    bazelisk run //targets/pw_rp2350/py:unit_test_server
    
  2. Run the tests using bazelisk test with the pw_rp2350_freertos config:

    bazelisk test --cache_test_results=no --test_output=all --config=pw_rp2350_freertos //targets/pw_rp2350:unit_test_example
    

Zephyr#

  1. Start the test server on the host (from the root of the Pigweed repository):

    bazelisk run //targets/pw_rp2350/py:unit_test_server
    
  2. Navigate to the Zephyr sub-workspace directory:

    cd targets/pw_rp2350/zephyr
    
  3. Run the tests:

    bazelisk test --cache_test_results=no --test_output=all --config=pw_rp2350_zephyr //:unit_test_example