Merged Comms Software Repo
Currently there are 3 comms software repos:
- The eqm software repo, containing code for the STM32H743VITX (the one we use in the eqm)
- The comms software repo, containing code for the STM32H7A3ZI (it is used sometimes to test simple feature with nucleo, without setting up the eqm)
- The h743 devboard repo for the STM32H7ZITX (unused)
Having to maintain all these repos wastes a lot of time, so we should create a unified repo (and archive the rest), like OBC. It should work with the eqm mcu, plus one more nucleo board mcu. After some research, there are 3 nucleo boards to be considered (nucleo specification sheet here):
-
NUCLEO-H743ZI with the STM32H743ZIT6. This is the closest one to STM32H743VITX, with the only difference being the I/O pin count. We have only one in stock and it is unfortunately no longer sold. For this reason, it is disqualified.
-
NUCLEO-H753ZI with the STM32H753ZIT6. This is supposed to the successor of STM32H743ZIT6, with the only difference being the crypto/hash engine (can be disabled). We have zero in stock.
-
NUCLEO-H755ZI with the STM32H755ZIT6. Same as STM32H743ZIT6 with the addition of a crypto/hash engine, a second core (M4) and an SMPS power mode (all of those can be disabled). We have one in stock.
Considering we already have a NUCLEO-H755ZI and there is the ability to buy more if needed, this will be the second mcu the project will work with. If for some reason we want it to work for NUCLEO-H743ZI or NUCLEO-H753ZI, we can add it in the future.
Since we are creating a new project here, we should also do 2 changes, compared to comms eqm and comms sw:
- Conan integration
- Removal of the cross platform library, since it is designed with ATSAMs in mind, and is not compatible with STM32. The temporary fix was to be checked out in an outdated "compatibility" branch, filled with code like this:
#ifdef STM32
// stm32 specific code here...
#endif
but this is not a very clean solution, so it should be removed (here is the issue as well) and integrate only the few things we need, like ecss-services and CAN drivers.