...
Clone repo
Update wsl2 stuff https://learn.microsoft.com/en-us/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package and install a distro (do Ubuntu, makes it much easier, I was just able to run
wsl --install
and it worked)Open a Windows terminal and run
winget install usbipd
Open a WSL terminal and run
sudo apt install linux-tools-virtual hwdata
andsudo update-alternatives --install /usr/local/bin/usbip usbip `ls /usr/lib/linux-tools/*/usbip | tail -n1` 2
(might need to runsudo update-alternatives
before running that last command ?)Open Docker Desktop
Open a terminal in the repo directory
Build sample STM dockerfile with
docker build -f ./Dockerfile -t ner-gcc-arm .
Note that you only have to do this once really or if the environment was updated, not every time you want to develop
Start sample STM dockerfile with
docker run --rm -it --privileged -v "$(PWD):/home/app" ner-gcc-arm:latest bash
Start the Ubuntu WSL client with
wsl -d ubuntu
in one terminal(If interacting with hardware) Mount the Ra spberry Raspberry Pi probe by finding the device in the 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 --distribution=ubuntu --busid=<BUSID>
Usage
To build repo: make all
To flash with OpenOCD:
...
Start Container on MacOS/Linux
In any terminal that is in the directory:
Code Block |
---|
# if need to rebuild image
sudo docker build -f ./Dockerfile -t ner-gcc-arm .
sudo docker run --rm -it --privileged -v "$(PWD):/home/app" ner-gcc-arm:latest bash |
Start Container on Windows
In any terminal that is in the directory:
Code Block |
---|
# if need to rebuild image
# docker build -f ./Dockerfile -t ner-gcc-arm .
docker run --rm -it --privileged -v "$(PWD):/home/app" ner-gcc-arm:latest bash
# mounting probe
# in another terminal run wsl -d ubuntu
usbipd wsl list
usbipd wsl attach --distribution=ubuntu --busid=<BUSID>
# close the other wsl window, the device should be mounted to any wsl instance |
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 flash STM board with Raspberry Pi Probe (WIP)
openocd -f interface/cmsis-dap.cfg -f target/stm32f4x.cfg -c "adapter speed 5000" -c "program ./build/cerberus.elf verify reset exit" |
Old:
List of STM tools to download (lowkey might not even need to download them):
https://www.st.com/en/development-tools/stm32cubeclt.html
...