Configuring Visual Studio Code
VSCode is the recommended IDE for working with the ODrive codebase. It is a light-weight text editor with Git integration and GDB debugging functionality.
Before doing the VSCode setup, make sure you’ve installed all of your prerequisites.
Setup Procedure
Clone the ODrive repository
Open VSCode
Install extensions. This can be done directly from VSCode (Ctrl + Shift + X)
- Required extensions:
C/C++
ext install ms-vscode.cpptools
Cortex-Debug
ext install marus25.cortex-debug
Cortex-Debug: Device Support Pack - STM32F4
ext install marus25.cortex-debug-dp-stm32f4
- Recommended Extensions:
Include Autocomplete
Path Autocomplete
Auto Comment Blocks
Create an environment variable named
ARM_GCC_ROOT
whose value is the location of theGNU Arm Embedded Toolchain
(.e.gC:Program Files (x86)GNU Tools Arm Embedded7 2018-q2-update
) that you installed in the prerequisites section of the developer’s guide. This is not strictly needed for Linux or Mac, and you can alternatively use theCortex-debug: Arm Toolchain Path
setting in VSCode extension settings.Relaunch VSCode
Open the VSCode Workspace file, which is located in the root of the ODrive repository. It is called
ODrive_Workspace.code-workspace
. The first time you open it, VSCode will install some dependencies. If it fails, you may need to change your proxy settings.
You should now be ready to compile and test the ODrive project.
Building the Firmware
Terminal -> Run Build Task (Ctrl1 + Shift + B)
A terminal window will open with your native shell. VSCode is configured to run the command make -j4
in this terminal.
Flashing the Firmware
Terminal -> Run Task -> flash
A terminal window will open with your native shell. VSCode is configured to run the command make flash
in this terminal.
If the flashing worked, you can connect to the board using the odrivetool.
Debugging
An extension called Cortex-Debug has recently been released which is designed specifically for debugging ARM Cortex projects. You can read more on Cortex-Debug here.
Note: If developing on Windows, you should have arm-none-eabi-gdb
and openOCD
on your PATH.
Make sure you have the Firmware folder as your active folder
Set
CONFIG_DEBUG=true
in the tup.config fileFlash the board with the newest code (starting debug session doesn’t do this)
In the Run tab (Ctrl + Shift + D), select “Debug ODrive (Firmware)”
Press Start Debugging (or press F5)
The processor will reset and halt.
Set your breakpoints. Note: you can only set breakpoints when the processor is halted, if you set them during run mode, they won’t get applied.
Continue (press F5)
Stepping over/in/out, restarting, and changing breakpoints can be done by first pressing the “pause” (F6) button at the top the screen.
When done debugging, simply stop (Shift + F5) the debugger. It will kill your openOCD process too.
Cleaning the Build
This sometimes needs to be done if you change branches.
Open a terminal (View -> Integrated Terminal) and enter
make clean