__________ __ __ ___ ____ ___ ______
/_ __/ __ \ ____ ___ / /_ ___ ____/ / |__ \ / __ \__ \ / ____/
/ / / /_/ /_____/ __ `__ \/ __ \/ _ \/ __ / __/ // / / /_/ //___ \
/ / / _, _/_____/ / / / / / /_/ / __/ /_/ / / __// /_/ / __/____/ /
/_/ /_/ |_| /_/ /_/ /_/_.___/\___/\__,_/ /____/\____/____/_____/
| Table of Contents |
| Prerequisites |
| Setup |
| Flashing |
| Troubleshooting |
| Documentation |
Prerequisites
We have setup guides for the major operating systems.
<strong>Please choose the appropriate setup guide for your operating system:</strong>
- ### Linux
- ### Windows Subsystem for Linux (WSL)
- ### MacOS
Setup
- Clone this repo:
git clone https://github.com/Triton-Robotics/TR-mbed.git
At this point, you may choose to diverge from the CLI setup guide and set up an IDE instead. Check out the setup instructions for @ref "/home/runner/work/TR-mbed/TR-mbed/.md/ide/clion.md" "CLion" or @ref "/home/runner/work/TR-mbed/TR-mbed/.md/ide/vscode.md" "VSCode". We higly recommend @ref "/home/runner/work/TR-mbed/TR-mbed/.md/ide/clion.md" "CLion".
- Configure
CMake project. This should only be done once per project, or after editing any CMakeLists.txt:
cmake -S . -B cmake-build-debug -GNinja
- Build the desired target using your IDE or via CLI:
cmake --build cmake-build-debug --target TR-TestBench -j $(nproc)
Viable targets for build are: TR-Engineer, TR-Infantry, TR-Sentry, TR-Hero, and TR-TestBench
Flashing and building code
Finding the Makefile
- Go into the Makefiles folder, and copy the appropriate makefile for your operating system outside the folder (aka move it one level up in the directory). Also, rename it from
Makefile-OS to Makefile for it to work with the terminal.
- Now, you can build your code with the following command:
Note: If the makefile does not work with your system, contact an embed member or team lead for assistance since it might be an issue with the drive (your computer will not work with E drive, to which you have to change it to D in the makefile).
After completing all of this you can make and flash your code to the nucleo using make testbench-jlink, make hero-jlink, make infantry-jlink, and make sentry-jlink, or build with make infantry-build, make sentry-build, make hero-build, or make testbench-build. You should see a block with many numbers when the code is flashed. If you see a red text regarding "missing embed-tools" it is likely becuase you don't have the serial monitor downloaded which is not required to make and flash code.
Flashing to JLink
- Download the JLink software on your device (J-Link Software and Documentation pack and Ozone - The J-Link Debugger).
- Flash using the makefile, similar to the cmake setup:
Flashing STM32 (Old Method)
Locate the generated executable:
eg. The built executable for TestBench will be present in cmake-build-debug/robots/TestBench/TR-TestBench.elf
- Flash the executable to the target device:
openocd -f board/st_nucleo_f4.cfg -c "program cmake-build-debug/robots/TestBench/TR-TestBench.elf verify reset exit"
For flashing device in WSL, see the WSL guide.
- View serial output:
mbed-tools sterm -b 115200
Troubleshooting
See the Troubleshooting guide for common issues and solutions.
Debugging
See the Debugging guide on how to run the debugger using STM32CubeIDE
See the Ozone Debugger guide on how to run the debugger using the Ozone Debugger.
Documentation
See our generated doxygen.