* Get setting default values from settings.yaml
* settings: Make the generator more robust and versatile
- Add support for resolving types and values in multiple compilers
- Add support for resolving types and values in clang 10
- Add support for using the host compiler for resolving the settings
This allows us to run the generator for the unit tests, since they now
need the settings_generated.h file to get the default setting values
from it.
* Fix regexps in settings.rb and add execution bit
* Fix git revision issue
* Fix issue with settings validation
* Fix issue with targets not defining USE_MAG
Co-authored-by: Alberto García Hierro <alberto@garciahierro.com>
Make the version in the CMakeLists.txt the canonical one. Instead
of redefining it in version.h, use command line flags to pass
-DFC_VERSION_{MAJOR,MINOR,PATCH_LEVEL}
The configurator does rely on the .hex start address being set to
0x08000000. I'm not sure this is actually required and we should
fix the configurator instead. However, in order to allow older
versions of configurator to flash newer firmwares, we should
the .hex files built with cmake compatible for at least some
releases.
Removing CMAKE_CURRENT_BINARY_DIR directly is problematic, since it
also removes files generated by cmake and can cause errors that will
require regenerating the build system files.
Instead, call <backend> clean (e.g. make clean or ninja clean) in
CMAKE_CURRENT_BINARY_DIR. This ensures all the files generated by
the build system are removed, but any files generated as a part of
cmake's configuration step are preserved.
While depending in the output files of other targets work fine with
cmake 3.17+ and/or ninja, it fails with cmake 3.14 and make. This
way works fine with all the combinations of cmake+backend we do
care about.
- Fix compilation on case sensitive filesystems
- Fix case sensitive paths in F7 drivers
- Fix warnings related to MSC redefinition
- Fix invalid dual gyro definition in FOXEERF722V2
- Remove FURYF3, KFC32F3_INAV and SPRACINGF3EVO from releases
- Always use usbd_storage_sd_spi.c for SDCARD + MSC
- Add targets for SPEEDYBEEF7, FRSKYPILOT and FRSKY_ROVERF7
- Add BUILD_SUFFIX configure-time option
- Add COMPILER_VERSION_CHECK boolean option defaulting to ON
When no alternative toolchain is provided, we explicitely include
the src/tests directory, so the check target (which builds and runs
tests) is available from a main source build without having to
build specifically the src/tests directory
- Rename function for target name definitions to include full MCU
names, so we can support multiple size variants of the same MCU
cleanly
- Add cmake targets for .bin/.hex files from .elf files
- Add targets for bootloader generation
- Add targets for combining the bootloader with the main firmware
- Add openocd_<target>: runs openocd for the target
- Add openocd_flash_<target>: flashes the target using openocd.
It works with both an already running openocd instance as well
as launching its own one. Uses a helper tool that requires python.
- Add openocd_cfg_<target>: generates openocd config for target. Used
for generating an openocd config automatically when launching
a debug session from an IDE.