...
Make sure Docker Desktop is started
Pull down the Docker container you are using by running
docker pull <CONTAINER_NAME>
where CONTAINER_NAME can benwdepatie/ner-gcc-arm
for microcontroller developmentStart the container by running
docker run --rm -it --privileged -v "$(PWD):/home/app" <CONTAINER_NAME>:latest bash
using the same container you just pulled.Make sure you are running it in whatever directory you want to operate on
If the above command doesn’t work, try
docker run --rm -it --privileged -v "%cd%:/home/app" <CONTAINER_NAME>:latest bash
To mount any flashing hardware (this may be condensed into a script in the future):
Open a Windows terminal with admin privileges and run
winget install usbipd
Open a WSL terminal (
wsl -d ubuntu
) and run the following commands to enable mounting Windows USB devices in the Docker containersudo apt update
sudo apt install linux-tools-virtual hwdata
sudo update-alternatives --install /usr/local/bin/usbip usbip `ls /usr/lib/linux-tools/*/usbip | tail -n1` 20
docker run --rm -it --privileged -v "$(PWD):/home/app" <CONTAINER_NAME>:latest bash
replacing CONTAINER_NAME with the container name in one terminal(If interacting with hardware) Mount the Raspberry Pi probe by finding the device in another Windows terminal with
usbipd wsl list
and mount the device in a Windows terminal window (with admin privileges the first time you do this) withusbipd wsl attach bind --distribution=ubuntu --busid=<BUSID>
You’re looking for the
CMSIS-DAP v2 Interface
device
Run
usbipd attach --wsl --busid <BUSID>
Tools / Utils
Code Block |
---|
# to build project make all # to open a serial port (make sure /dev/tty0/ACM0 exists first) minicom -b 115200 -o -D /dev/ttyACM0 # to emulate MCU code renode # to flash STM board with Raspberry Pi Probe openocd -f interface/cmsis-dap.cfg -f target/stm32f4x.cfg -c "adapter speed 5000" -c "program ./build/cerberus.elf verify reset exit" |