I often noticed that the Migration of a CubeMX Project from an older CubeMX Version to a newer one fails often. Sometimes, the reason is very obvious (the HAL Lib Syntax is changed, mostly easy to fix).
But several times the reason of the failure is not so obvious. And it does not matter if I migrate between some succsessive Versions, e.g 4.18 to 4.19 or with larger steps in between, e.g. 4.18 to 4.22.
There are no compile errors or some other obvious error Messages in the Project, but the Project starts no more on the Hardware ( actual case on the STM32F746G-Disco Migration from CubeMX 4.22->4.23) or has a faulty behaviour.
In case of the actual STM32F746G-Disco Project, the TFT screen output is distorted (Looks like the SDRAM is not configured correctly).
As a quick fix, i just flash the binary of an other Project (must not be the same Project, just the same Hardware configuration !!) which runs fine and afterwards I flash the binary of the migrated Project which has some flaws. Then, the migrated Project runs again flawless until the next power cycle.
The final fix ist to create a completely new Project within the new CubeMX Version with the same pinout and configuration of the HAL and copy my additional code to the new Project. Than the "Migration" is successful.
After dissecting the Migration canges i noticed that the Startup code is on different paths in the Projects Folder.
My first guess is that the Migration of the Project scrambles the Startup code and some Registers are not configured any more and the previous loaded Project sets them to vaild values which the migrated Project does not do correctly. This would explain that the reset of the Hardware during reflashing does not overwrite these values, but the power cycle does.
Has anybody else monitored this Problem, too ? Or in best case, a solution to migrate successful ?