2015-10-14 09:51 AM
Hi,
I am using CoIDE. Unfortunately it doesn't support the F411 but the 407, so I am coding for the F407. What adjustments do I have to do (linkerscript, startup.s ?) in order to make the F407 code compile and run on the F411? Thanks!2015-10-14 12:25 PM
So download a copy of the
http://www.st.com/web/en/catalog/tools/PF257901
and review the 411 specific files. You can use this to fix you vector table. The linker script you'll have to tweak the memory size as appropriate for your part, and lose the CCM RAM if defined. In system_stm32f4xx, you'll need to modify the PLL setting to suit the 100 MHz part. For other GNU/GCC stuff this might a 30 minute task with a file manager, and a merge tool. The SPL supports several GNU based tool chains, so I'd start with that, and the port in any CooCox specific oddness.2015-10-14 01:51 PM
Thanks for your answer!
But what do you mean with ''GNU/GCC stuff this might a 30 minute task'' ?2015-10-14 03:52 PM
I don't use CooCox, but I use GNU/GCC with the SPL and makefiles, I can move between different versions of the SPL, and different processors, in a relatively short time frame. Ported a couple of existing projects for a colleague the other day, where there were significantly more source files for the 401, 429 and 411 parts. Most of the project source files remained the same, all the new library source/include files were pulled in, and we had to make a couple of adjustments to the defines the compiler passed in, and the linker scripts, for the newer version of the compiler we chose to use.
How quickly you can do it, will depend on the tools you have for copying/moving files, and what merge tools you have to migrate project specific settings into files like stm32f4xx_conf.h and system_stm32f4xx.c. I usually take the new file from the SPL templates, and then merge paying attention to what ST changed, and pulling through my own changes, or adapting them to new structures/constructs that ST may have created, for example if there were new F411 targeted conditional compilation sections. The alternative of course is for you to pretend the 411 is a 407 that runs at 100 MHz, and adapt the PLL and memory maps accordingly. You'll still want to carefully review what peripherals are supported in the 411, because a lot disappeared, I noticed a lot of USARTs were missing, just be careful you don't try to use peripherals that don't exist because you'll spend a lot of time wondering why they are working. Push CooCox to get things updated.