2014-07-25 01:33 AM
Hi,
I'd like to program STM32F373s via their usart1 from an STM32F2, though the latter should be irrelevant, I think. The board has the STM32F2 controlling four STM32F373 processors as peripheral controllers and talks independently with each via a dedicated usart or uart. I need to field reprogram the whole unit, so I need bootloaders in all CPUs. The F2 can control BOOT0 and RST on the F3s. I would _like_ to be able to program the F3s in production using the same method, though JTAG remains as a fallback if I can't. It appears that to use the system bootloader in the F3s I must set their nBOOT1 register bit to zero. One of the many documents says ''The ST-LINK can do this'', but the aim here is to avoid the JTAG if feasible. That makes it sound to me like I can't actually do what I'd like here, but that seems silly. Can it be done? How? Or is there another method? Thanks. Gordon. #stm32f3-system-bootloader2014-07-25 02:59 AM
I think you do not need to rely on BOOT pins. You can simply change your firmware architecture to include a bootloader so that it becomes field programmable.
If you want to use system bootloader which is already in ROM then only you need to change your boot pins. Better to refer AN2606 application note.Pradeepa2014-07-25 07:09 AM
You should be able to jump to it from flash based code.
Unless I'm mistaken you can use BOOT0 to alternate between FLASH and ROM booting, and that you'd only need to do other magic if you wanted to boot to RAM. This could probably be most easily demonstrated with an STM32F3-DISCO, and jumpering BOOT0 to VDD2014-07-25 09:41 AM