Running STM32F407 Program on STM32F429 .
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎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!
- Labels:
-
STM32F4 Series
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎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 ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎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
Thanks
Imen
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2019-04-16 07:21 PM
Thanks ! seems like a helpful document.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎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 ?