This container makes setting up the development environment for the RP2040 and RP2350 series of MCUs easy. The container is based on the Fedora:40 image. It creates an image with the following:
- arm-none-eabi compiler toolchain
- pico-sdk
- picotool
- JLink tools
- Invoke
The resources required for the container are to be downloaded separately into the same directory as the Dockerfile. Alternatively, you can uncomment the curl commands in the Dockerfile. These are:
- Once those are in place, build the image based on the Dockerfile by running:
docker buildx build -t namespace/image_name -f path_to_Dockerfile .
- The default user is
rpx
. However, it can be set by passing the build argument--build-args MAIN_USER=your_user
.
In order to allow the container to connect with USB devices(like JLink programmer), pass the --privileged
flag and mount /dev/bus/usb
in the container.
For example:
docker run -it --mount type=bind,src=project/directory/,dst=/home/rpx/dev --privileged -v /dev/bus/usb/:/dev/bus/usb namespace/image_name /bin/bash
The arm toolchain and the pico-sdk are in the ~/opt
directory. As shown here:
~/opt/arm-none-eabi/
and ~/opt/pico-sdk
.
The container uses the Invoke tool for managing tasks within the project environment.
At the terminal, type invoke -l
or inv -l
to see a list of the tasks defined in the tasks.py
defined in your project.
There's a sample tasks.py
file defined here as an example.
invoke build
Having connected the JLink Debugger and the powered the MCU board, run:
invoke flash