cancel
Showing results for 
Search instead for 
Did you mean: 

Bootloader use in-system

Stefan_S
Associate

Hello,

I am beginning development with MCUs, am new to this.  At the moment, I am at the design stage.

I have identified a device which seems most suitable for my application, STM32G0B1CET in this case.

I am trying to understand the I/O constraints.  I would like to be able to, once in a while, use the bootloader to update firmware in-system.

On this particular device, If I understand correctly, the bootloader is designed to use any of a long list of peripherals (two USART, two I2C, two SPI, USB, and FDCAN) - and it accordingly configures the device for this purpose.

This appears to very seriously constrain how the pins may be connected on my board (to avoid unwanted interaction or conflict during the boot phase).

So it seems that, even if "naively" the device has enough I/O for my application, many of them can't be used just because of how the bootloader (even temporarily) configures them.

What am I missing?

Thank you.

1 REPLY 1
TDK
Super User

The bootloader isn't typically ran on startup, so the configuration of pins doesn't take place.

If you use SWD to program, this isn't a concern. If you rely on the system bootloader for things, then yes, this is a concern and you will need to take it into consideration during board design.

This isn't typically a large hurdle. If a pin is used by the bootloader, ensure it can be driven high/low without consequence or that it is pulled to a particular state with an external resistor.

If you feel a post has answered your question, please click "Accept as Solution".