cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F3 system memory and bootloading

gordon239955_st
Associate II
Posted on July 25, 2014 at 10:33

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-bootloader
3 REPLIES 3
pradeepa
Associate II
Posted on July 25, 2014 at 11:59

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.

Pradeepa

Posted on July 25, 2014 at 16:09

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 VDD
Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
gordon239955_st
Associate II
Posted on July 25, 2014 at 18:41

I've just read again the page from the 37x about Boot Configuration and I think I misunderstood it the first time.

The heading for BOOT1 says (inverted nBOOT1), which as nBOOT1 defaults to 1 suggests BOOT1 is zero (System) not 1 (SRAM) as I had originally understood.

If I now understand correctly, that means I _can_ run the bootloader without changing nBOOT1.

Thanks, Clive, for saying it should use Flash or ROM.  I had the sense to check again before disagreeing.  I think I now agree.