2019-04-14 09:08 AM
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!
2019-04-14 01:04 PM
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
2019-04-15 04:09 AM
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 ?
2019-04-15 07:33 AM
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
2019-04-15 07:56 AM
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.
2019-04-16 07:21 PM
Thanks ! seems like a helpful document.
2019-04-16 07:25 PM
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 ?