64 lines
2.0 KiB
ReStructuredText
64 lines
2.0 KiB
ReStructuredText
.. _target-raspberry-pi-pico:
|
|
|
|
-----------------
|
|
Raspberry Pi Pico
|
|
-----------------
|
|
.. warning::
|
|
This target is in an early state and is under active development. Usability
|
|
is not very polished, and many features/configuration options that work in
|
|
upstream Pi Pico CMake build have not yet been ported to the GN build.
|
|
|
|
-----
|
|
Setup
|
|
-----
|
|
To use this target, Pigweed must be set up to build against the Raspberry Pi
|
|
Pico SDK. This can be downloaded via ``pw package``, and then the build must be
|
|
manually configured to point to the location of the downloaded SDK.
|
|
|
|
.. code:: sh
|
|
|
|
pw package install pico_sdk
|
|
|
|
gn args out
|
|
# Add these lines, replacing ${PW_ROOT} with the path to the location that
|
|
# Pigweed is checked out at.
|
|
PICO_SRC_DIR = "${PW_ROOT}/.environment/packages/pico_sdk"
|
|
|
|
-----
|
|
Usage
|
|
-----
|
|
The Pi Pico is currently configured to output logs and test results over UART
|
|
via GPIO 1 and 2 (TX and RX, respectively) at a baud rate of 115200. Because
|
|
of this, you'll need a USB TTL adapter to communicate with the Pi Pico.
|
|
|
|
Once the pico SDK is configured, the Pi Pico will build as part of the default
|
|
GN build:
|
|
|
|
.. code:: sh
|
|
|
|
ninja -C out
|
|
|
|
Pigweed's build will produce ELF files for each unit test built for the Pi Pico.
|
|
While ELF files can be flashed to a Pi Pico via SWD, it's slightly easier to
|
|
use the Pi Pico's bootloader to flash the firmware as a UF2 file.
|
|
|
|
Pigweed currently does not yet build/provide the elf2uf2 utility used to convert
|
|
ELF files to UF2 files. This tool can be built from within the Pi Pico SDK with
|
|
the following command:
|
|
|
|
.. code:: sh
|
|
|
|
mkdir build && cd build && cmake -G Ninja ../ && ninja
|
|
# Copy the tool so it's visible in your PATH.
|
|
cp elf2uf2/elf2uf2 $HOME/bin/elf2uf2
|
|
|
|
Flashing
|
|
========
|
|
Flashing the Pi Pico is as easy as 1-2-3:
|
|
|
|
#. Create a UF2 file from an ELF file using ``elf2uf2``.
|
|
#. While holding the button on the Pi Pico, connect the Pico to your computer
|
|
via the micro USB port.
|
|
#. Copy the UF2 to the RPI-RP2 volume that enumerated when you connected the
|
|
Pico.
|