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/bashThe 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 buildHaving connected the JLink Debugger and the powered the MCU board, run:
invoke flash