Environment Setup - RIT-Launch-Initiative/Liftoff-Project GitHub Wiki

Tools

To develop flight software, there are a few tools that are necessary for development

CMake - CMake simplifies the creation of build files and integrates well with IDEs when developing C/C++

GNU Embedded Toolchain - Allows for compiling ARM files regardless of your PC's architecture

IDEs and Editors

Integrated Development Environments and Editors facilitate software development by providing tools that can help the programmer. You can use any editor of your choice but these are the most convenient, commonly used ones by the team.

VSCode - Simple, basic editor that you most likely would be using in your classes too. Good for beginners.

CLion - IDE that provides various tools for C and C++ development. Free for students through verification. Recommended for more experienced programmers who may be less overwhelmed by the extensive tooling.

CubeIDE - Eclipse based IDE dedicated to STM32 development. Simple and interfaces well with STM32 devices with little setup, but UI can be unintuitive.

Compiling STM32 Code

Windows

Compiling C and C++ code can be a little more complicated on Windows, but it is possible. The easiest, minimal setup method would be to take advantage of our usage of CMake and have your IDE figure out compiling. In VSCode, do Ctrl + Shift + P and find CMake: Build and run it. In CLion, create a new OpenOCD target and hit play on that target to build and flash. CubeIDE already has a build button for compiling and play button for flashing the build. If you want to compile in more of a Linux way, refer to the WSL setup section.

Linux / Mac

Since UNIX systems normally provide the make utility, there is little setup to compiling STM32 code. The above method for Windows will work, but you can also create a new directory which stores your compiled files (ideally a folder named build inside your related repository), run cmake (path to CMakeLists.txt) and then make.

Windows Subsystem for Linux (WSL)

Ask Yev until he writes a guide here.