FSFW Restructuring #445
- Restructuring as mentioned in #443
- API for users mostly changed the same, internal structure revamped completely. Clear separation between sources which are the foundation of the static library, and the includes which expose both the internal and external API
- Both users and FSFW use central include folder now, all includes are prefixed with ` "fsfw/..."
- Relative includes not necessary anymore
- Consistency: All folder names are lower case now.
- General decision regarding CMake variables in the FSFW: All variables should be prefixed with
FSFW_in the future.
testshave their own
incfolder structure which would principally allow them to be extracted to submodules again
CHANGELOGwith entries from 1.0.0 to 1.1.0 and added first entries for 1.1.0 to 1.2.0
- separate folder
miscfolder which contains logos and default configuration template folder
docfolder for documentation, which is currently in Markdown format
testsfolder for both internal unit tests which can be used on each OSAL and unittests which can only be built hosted with Catch2 support
cmakefolder might be part of a separate PR to introduce a
FindFSFW.cmakefile which allows using
find_packageto integrate the FSFW as mentioned in #429
All changes were tested like this:
- FSFW Linux example to test Linux OSAL
- FSFW FreeRTOS STM32H7 to test FreeRTOS OSAL
- FSFW RTEMS STM32H7 to test the RTEMS OSAL
- Test Host OSAL
Instruction how to update existing / user code
internalErrorin includes to
Changes on second iteration after feedback from @mohr:
- Source files and header files stay together for now
- All source files in
srcfolder except for
- Added way for CMake to emitt warnings if optional modules like
datalinklayerare excluded but header files are included
- Added some stubs for
SemaphoreFactoryin RTEMS OSAL to allow STM32 HAL to compile for RTEMS (this was required if everything was working as before). Full implementation will follow as separate PR
Some changes to make the include namespace more explicit as suggested by @mohr:
- contrib has
1. The type correction was merged as part of eive/fsfw#7 in the EIVE project. Quotation of PR definition of getSpiParameters is `void getSpiParameters(spi::SpiModes& spiMode, uint32_t& spiSpeed, UncommonParameters* parameters = nullptr) const;`. Here, size_t spiSpeed is passed, which implicitely gets converted to a temporary, which can not be bound to uint32_t& and, at least in gcc 9.3.0, leads to a compiler error. 2. Allow flushing the UART buffers
No due date set.
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?