cancel
Showing results for 
Search instead for 
Did you mean: 

Running STM32F407 Program on STM32F429 .

Tauqir  Hassan
Associate III

I am new to ARM cortex programming .Following is my program , code is generated using stm32cubemx (board : stm32f407vgtx) and then shifted to Eclipse.

I was wondering , If this program will successfully load and run on stm32F429ZITX.

If there are any changes to be made what are they ? (changes regarding RAM size and clock config etc & any other changes in "STM32F407VGTX.LD" file . )

Thanks!0690X000008AUp7QAG.png0690X000008AUp2QAG.png

6 REPLIES 6
Zaher
Senior II

Well, basically the binaries are compatible across the same family of devices and I did that myself for many of my projects. However, you have to take into account the following constraints:

1- Core Clock

The STM32F429xx can be clocked at up to 180 Mhz, while the maximum for the STM32F407xx is 168 Mhz, so first thing to do is to modify your clock settings accordingly.

2- Pins, peripherals that are only available on one of these devices

From the attached screenshot, it appears all of the pins/peripherals you have used in your project are available on both devices, so I suppose no problem here.

3- Hardware constraints

Make sure your STM32F429xx project doesn't use a hardware that is only available on one board but not the other. For example, if you are using the external SRAM mounted on the STM32F429-Disco board as a frame-buffer for LCD project or the like, then you will have to modify your source code to use a buffer declared in the internal SRAM.

I hope that helps.

Zaher

Thanks for the Quick Response !

I don't have any hardware constraints so looks like that I only have to configure the core clock . Kindly confirm that whether I have to make these clock related changes only in the "STM32F407VGTx_FLASH.ld" file or any other file too ?

Imen.D
ST Employee

Hello,

You can refer to this AN4547 Application note Migrating from STM32F407xx/417xx to STM32F427xx/429xx/437xx/439xx, summarizes the main differences between the STM32F407 and STM32F429 product features.

Regards,

Imen

When your question is answered, please close this topic by clicking "Accept as Solution".
Thanks
Imen

You're welcome. Well, depending on the prescalers/multipliers chosen in your initial CubeMX generated settings, the clock might sill work without any change. However, if you want to change the settings for the clock, you'll have to modify the SystemClock_Config(); function inside main.c file.

You don't need to change the linker file when migrating from STM32F407xx to STM32F429xx, unless you need more flash/ram in your project. By then, you will have to use a linker file for the STM32F429xx.

Thanks ! seems like a helpful document.

Just one more thing. As you suggested the case of using linker file for STM32F429xx (for more RAM/flash) , in this case will I have to replace the "startup_stm32F407xx.s" with the Startup file of STM32F429xx ? Or just the Linker file ?