FSFW Restructuring #445

Merged
mohr merged 77 commits from mueller/restructuring into development 2021-08-09 16:00:27 +02:00
Owner
  • 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. internalError renamed to internalerror and FreeRTOS renamed to freertos
  • General decision regarding CMake variables in the FSFW: All variables should be prefixed with FSFW_ in the future. OS_FSFW renamed to FSFW_HOST accordingly
  • hal and tests have their own src and inc folder structure which would principally allow them to be extracted to submodules again
  • Updated CHANGELOG with entries from 1.0.0 to 1.1.0 and added first entries for 1.1.0 to 1.2.0
  • separate folder contrib in root
  • misc folder which contains logos and default configuration template folder
  • doc folder for documentation, which is currently in Markdown format
  • tests folder for both internal unit tests which can be used on each OSAL and unittests which can only be built hosted with Catch2 support
  • cmake folder might be part of a separate PR to introduce a FindFSFW.cmake file which allows using find_package to 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

Changes in #include:

  • Rename internalError in includes to internalerror
  • Rename fsfw/hal to fsfw_hal
  • Rename fsfw/tests to fsfw_tests
  • Rename osal/FreeRTOS to osal/freertos

Changes in CMakeLists.txt:

  • Rename OS_FSFW to FSFW_OSAL
- 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. `internalError` renamed to `internalerror` and `FreeRTOS` renamed to ` freertos` - General decision regarding CMake variables in the FSFW: All variables should be prefixed with `FSFW_` in the future. `OS_FSFW` renamed to `FSFW_HOST` accordingly - `hal` and `tests` have their own `src` and `inc` folder structure which would principally allow them to be extracted to submodules again - Updated `CHANGELOG` with entries from 1.0.0 to 1.1.0 and added first entries for 1.1.0 to 1.2.0 - separate folder `contrib` in root - `misc` folder which contains logos and default configuration template folder - `doc` folder for documentation, which is currently in Markdown format - `tests` folder for both internal unit tests which can be used on each OSAL and unittests which can only be built hosted with Catch2 support - `cmake` folder might be part of a separate PR to introduce a `FindFSFW.cmake` file which allows using `find_package` to 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 Changes in `#include`: - Rename `internalError` in includes to `internalerror` - Rename `fsfw/hal` to `fsfw_hal` - Rename `fsfw/tests` to `fsfw_tests` - Rename `osal/FreeRTOS` to `osal/freertos` Changes in `CMakeLists.txt`: - Rename `OS_FSFW` to `FSFW_OSAL`
muellerr added 16 commits 2021-07-14 10:53:14 +02:00
muellerr added this to the v2.0.0 milestone 2021-07-14 10:53:22 +02:00
muellerr changed title from FSFW Restructuring to WIP: FSFW Restructuring 2021-07-14 10:55:38 +02:00
muellerr added the
feature
label 2021-07-14 10:58:43 +02:00
muellerr added 1 commit 2021-07-14 11:04:00 +02:00
muellerr added 1 commit 2021-07-14 11:05:54 +02:00
muellerr added 1 commit 2021-07-14 11:14:32 +02:00
muellerr added the
Refactor
API Change
labels 2021-07-14 11:16:30 +02:00
muellerr added a new dependency 2021-07-14 11:23:42 +02:00
muellerr removed a dependency 2021-07-14 11:23:48 +02:00
muellerr added a new dependency 2021-07-14 11:23:55 +02:00
muellerr added 13 commits 2021-07-15 18:55:57 +02:00
muellerr added 5 commits 2021-07-15 19:28:30 +02:00
muellerr added 2 commits 2021-07-19 14:35:25 +02:00
muellerr added 1 commit 2021-07-19 15:01:53 +02:00
muellerr added 1 commit 2021-07-19 15:03:10 +02:00
muellerr added 1 commit 2021-07-19 15:04:15 +02:00
muellerr added 1 commit 2021-07-19 15:04:41 +02:00
muellerr added 7 commits 2021-07-19 18:30:48 +02:00
Author
Owner

Changes on second iteration after feedback from @mohr:

  • Source files and header files stay together for now
  • All source files in src folder except for contrib, tests and hal
  • Added way for CMake to emitt warnings if optional modules like rmap or datalinklayer are excluded but header files are included
  • Added some stubs for BinarySemaphore and SemaphoreFactory in 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
Changes on second iteration after feedback from @mohr: - Source files and header files stay together for now - All source files in `src` folder except for `contrib`, `tests` and `hal` - Added way for CMake to emitt warnings if optional modules like `rmap` or `datalinklayer` are excluded but header files are included - Added some stubs for `BinarySemaphore` and `SemaphoreFactory` in 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
muellerr added 2 commits 2021-07-19 18:37:12 +02:00
muellerr added 1 commit 2021-07-19 18:41:07 +02:00
muellerr changed title from WIP: FSFW Restructuring to FSFW Restructuring 2021-07-19 18:44:58 +02:00
mohr was assigned by gaisser 2021-07-26 15:19:18 +02:00
muellerr added 1 commit 2021-07-27 13:08:13 +02:00
muellerr added 10 commits 2021-08-02 20:49:05 +02:00
muellerr added 2 commits 2021-08-02 20:55:35 +02:00
Author
Owner

Some changes to make the include namespace more explicit as suggested by @mohr:

  • hal/src/fsfw/hal changed to hal/src/fsfw_hal
  • contrib has fsfw-contrib folder now
  • tests/src/fsfw/tests changed to hal/src/fsfw_tests
Some changes to make the include namespace more explicit as suggested by @mohr: - `hal/src/fsfw/hal` changed to `hal/src/fsfw_hal` - contrib has `fsfw-contrib` folder now - `tests/src/fsfw/tests` changed to `hal/src/fsfw_tests`
muellerr added 1 commit 2021-08-02 20:59:06 +02:00
mohr added 1 commit 2021-08-02 21:22:58 +02:00
muellerr added 2 commits 2021-08-03 18:47:13 +02:00
mohr added
Breaking API Change
and removed
API Change
labels 2021-08-09 14:47:30 +02:00
muellerr requested review from mohr 2021-08-09 15:20:47 +02:00
mohr added 2 commits 2021-08-09 15:24:46 +02:00
mohr added 5 commits 2021-08-09 15:39:20 +02:00
90a1571707
Linux HAL updates
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
mohr approved these changes 2021-08-09 15:42:02 +02:00
mohr merged commit d92a796705 into development 2021-08-09 16:00:27 +02:00
Sign in to join this conversation.
No description provided.