2021-09-30 12:00 AM
Hello,
We are migrating from STM32F769 to ST32H743 controller and we have a unique requirement to have single hex file for both controllers to address backward compatibility in the future. The plan is to detect the controller in the runtime and to initialize the necessary peripherals according to the detection. Based on the controller detection all controller access will be directed to either STM32F769 or STM32H743.
We are just studying the feasibility.
Regards
AnanD
2021-09-30 01:16 AM
Wow this looks complicated.
If i was the unlucky engineer in charge of doing this:
2021-09-30 01:58 AM
Id suggest using the SCB->CPUID register for CPU detection. See "programming manual" for details.
Architecture wise, I would stick as close as possible to:
If you lack memory, and have to share data between H7 and F7 your whole compilation setup is gonna get very "custom" and complicated.
Otherwise, the H7 and F7 implementation can simply be separate CubeIDE projects with slightly customized linker scripts (and you just merge the hexfiles together).
This is all doable but adds complexity to your project (=> more time required to customize build process, to debug all this, to onboard developers and also more difficult to comprehensively test your firmware releases).
I would avoid it if I could.
2021-09-30 06:13 AM
Hello Javier,
Thanks for your feedback, I will discuss your vies with our team.
2021-09-30 06:14 AM
Thanks for your valuable input. This would help us to make a decision.
2021-09-30 07:06 AM
The CMSIS header files for the STM32F7 and STM32H7 are significantly different. I don't see how this would a productive thing to do from a development standpoint. Some things are in the same memory location on both chips, but many are not.
But is it possible? Yes.