I think it would be a good idea to pull the HAL library back into the FSFW because it is tightly bound to the FSFW in some aspects, and compiling it as a separate library makes some steps a lot more complicated when using CMake.
I think it would be a good idea to rethink the internal structure of the FSFW if this is done, also keeping issue #429 in mind. A new internal structure could also be used to avoid using relativ paths in the internal include structure. This would require separating header files fron source files. The new structure could look like this
opt would contain optional components like RMAP and Datalinklayer. These would only be compiled if the user application explicitely linked against FSFW::DATALINKLAYER or FSFW::RMAP.
osal contains the OSAL, and is linked through a CMake target like FSFW::OSAL::LINUX or FSFW::OSAL::FREERTOS
contribcomponents and thehalwhich would be exposed through targers likeFSFW::HAL::STM32H7, FSFW::HAL::LINUXorFSFW::CONTRIB::SPG4`.
test contains the unittests source files, and would only be compiled when linking again FSFW::TESTS
Separating source from header files allows using something like #include "fsfw/returnvalues/HasReturnvaluesIF.h" in the framework again without changing the API for a user. This increased the number of include paths add by the FSFW (core/inc/fsfw, hal/inc/fsfw) but I don't think this is an issue.
I think it would be a good idea to pull the HAL library back into the FSFW because it is tightly bound to the FSFW in some aspects, and compiling it as a separate library makes some steps a lot more complicated when using CMake.
I think it would be a good idea to rethink the internal structure of the FSFW if this is done, also keeping issue #429 in mind. A new internal structure could also be used to avoid using relativ paths in the internal include structure. This would require separating header files fron source files. The new structure could look like this
```
fsfw
- core
-- inc/fsfw
--- returnvalues
---- HasReturnvaluesIF.h
---- ...
-- src
--- returnvalues
---- ...
- osal
-- inc/fsfw
--- linux
--- freertos
-- src
--- linux
--- freertos
- hal
- doc
- contrib
- opt
- test
```
1. `opt` would contain optional components like RMAP and Datalinklayer. These would only be compiled if the user application explicitely linked against FSFW::DATALINKLAYER or FSFW::RMAP.
2. `osal` contains the OSAL, and is linked through a CMake target like `FSFW::OSAL::LINUX` or `FSFW::OSAL::FREERTOS`
3. contrib` components and the `hal` which would be exposed through targers like `FSFW::HAL::STM32H7`, `FSFW::HAL::LINUX` or `FSFW::CONTRIB::SPG4`.
4. `test` contains the unittests source files, and would only be compiled when linking again `FSFW::TESTS`
Separating source from header files allows using something like `#include "fsfw/returnvalues/HasReturnvaluesIF.h"` in the framework again without changing the API for a user. This increased the number of include paths add by the FSFW (`core/inc/fsfw`, `hal/inc/fsfw`) but I don't think this is an issue.
muellerr
added this to the v2.0.0 milestone 2021-07-13 15:19:55 +02:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
I think it would be a good idea to pull the HAL library back into the FSFW because it is tightly bound to the FSFW in some aspects, and compiling it as a separate library makes some steps a lot more complicated when using CMake.
I think it would be a good idea to rethink the internal structure of the FSFW if this is done, also keeping issue #429 in mind. A new internal structure could also be used to avoid using relativ paths in the internal include structure. This would require separating header files fron source files. The new structure could look like this
optwould contain optional components like RMAP and Datalinklayer. These would only be compiled if the user application explicitely linked against FSFW::DATALINKLAYER or FSFW::RMAP.osalcontains the OSAL, and is linked through a CMake target likeFSFW::OSAL::LINUXorFSFW::OSAL::FREERTOScontrib
components and thehalwhich would be exposed through targers likeFSFW::HAL::STM32H7,FSFW::HAL::LINUXorFSFW::CONTRIB::SPG4`.testcontains the unittests source files, and would only be compiled when linking againFSFW::TESTSSeparating source from header files allows using something like
#include "fsfw/returnvalues/HasReturnvaluesIF.h"in the framework again without changing the API for a user. This increased the number of include paths add by the FSFW (core/inc/fsfw,hal/inc/fsfw) but I don't think this is an issue.Probably better (for developers especially):
Was merged in #445