The STM32_extSettings_Generator is a Python tool designed to simplify the development process for STM32 microcontroller projects by converting human-readable JSON files into .extSettings files for use with STM32CubeMX project generation. The .extSettings file facilitates specifying additional project settings such as include directories, file groups, and preprocessor defines, which are crucial for customizing the project setup but can be cumbersome to edit manually.
- Converts JSON to .extSettings format for easy project configurations.
- Supports custom grouping of files and directories for better project organization.
- Allows specifying preprocessor defines and HAL modules directly through a JSON file.
- Handles multi-core configurations (e.g., Cortex-M4/M7 dual-core projects)
- Supports middleware integration with version control and variants (FreeRTOS, LwIP, MbedTLS, etc.)
- Provides an interactive CLI for middleware configuration
Clone the Repository
https://github.com/Orel138/STM32_extSettings_Generator.git
Install required dependencies
pip install -r requirements.txt
For detailed usage instructions and examples, please refer to our Usage Guide.
Define your project settings in a JSON file. See examples/example.json
for structure and syntax.
python ./extSettingsGenerator.py
or with a Command-Line Interface (CLI) :
python src/extSettingsManagerCLI.py --input examples/example.json --output examples/.extSettings
python src/extSettingsManagerCLI.py --middleware FreeRTOS --middleware-dir examples/middleware --output examples/.extSettings
For more examples, including multi-core configurations and middleware integration, see the Usage Guide.
examples/
: Contains example JSON configurations and middleware templatessrc/
: Source code for the generatortests/
: Unit testsdocs/
: Documentation including detailed usage instructionsrequirements.txt
: Python dependencies
Contributions are welcome! Here's how you can help:
- Report Bugs: Open an issue describing the bug and how to reproduce it.
- Suggest Enhancements: Share your ideas for making the tool better by opening an issue.
- Pull Requests: Contribute directly to the code by forking the repository, making your changes, and submitting a pull request.
- Documentation: Help improve our documentation or add more examples
STM32_FreeRTOS-Kernel is released under the MIT license © Orel138.
This tool was created to facilitate STM32 project development using STM32CubeMX. It is not officially associated with STMicroelectronics or the STM32CubeMX tool.
Tip
I trust you'll find this project enjoyable. Should you appreciate the project, bestowing a small ⭐ on it is a meaningful gesture, signifying: My efforts are recognized. Your support would be greatly valued. Many thanks!