Developer's Guide
This page was last updated: September 3, 2024
Dev Tools
The following are necessary and useful for developing the DAQ's firmware.
- Code Editors – Installing CubeIDE and/or VSCode.
- View Serial Output – Read logs transmitted from the device.
The following pages are for those curious about using VSCode as a development environment, instead of STM32 Cube IDE. It is very much possible and doable. The only caveat of using VSCode is that the user must re-import the CubeIDE project every time a CubeMX setting is changed. Importing is done through the official STM32 extension.
- Build, Flash, and Debug – Run the firmware on the microcontroller development board.
- View Threads, Queues, and Memory – Extra debugging tools to examine data within concurrency.
Note
An alternative is to compile Makefiles. This can be generated by the CubeMX stand-alone app. That is, Makefile generation is not offered through the CubeMX that is made available on CubeIDE. So, no project settings are saved — which is a huge drawback for our use-case while project requirements may be ill-defined and continue to change.
Automation and DevOps Tools
The following tools enable us to leverage DevOps to introduce automation for efficiently sustaining a long-term project.
- Unit Testing – Test Driven Development (TDD) and Countinuous Integration (CI).
- Source Code Docs – Writing API docs and Continuous Delivery (CD).
Standardized Practices
Records of team-agreed standards to maintain consistency within our development. These are by no means a mandate, and may be modified overtime.
- Contributing and Version Control – Maintaining traceability between branches and issues.
- Style Guide – Consistent code formatting patterns.
Project Configurations
- Code Generation Configs – Modifying CubeIDE's organization of the HAL library.
- Enabling printf( ) – Overriding C's
printf()
to output through the UART peripheral. - Enabling C++ – Setting up the environment to compile our codebase.