cancel
Showing results for 
Search instead for 
Did you mean: 

Your experiences with the in-built bootloaders ?

LCE
Principal II

Heyho,

I'm currently designing a new modular system, with an STMH7 on the base-card. That one's basically up and running, including a self-made bootloader.

Now I'm working on some new modules, these will be connected to the "base H7", probably via I2C, 2 extra UART lines might also be possible.

The previous system used ATmega-MCUs on the modules, now we'll surely use some STM32 type. These modules will not do any DSP or computing, so a "small" STM32 will do (tending towards L07x because of the EEPROM).

To save some dev time I'm thinking about using the internal bootloader for the module MCU, controlled by the base H7.

I have checked the application notes (AN2606 and the ANs depending on the BL interface), also found the example source code from ST on Github.

So far that looks okay and doable, nevertheless user experience always wins over "reading". :D

So...

  1. Anybody using the ST bootloaders in some real-life products ?
  2. How did that go and work out ? Documentation and source code examples good enough for smooth development ?

Thanks in advance!

16 REPLIES 16

IIRC somebody here reported that the in-built bootloaders can be confused by state of various pins vs. order of interfaces. For example you want it to boot from SPI, but it checks UART first. Some toggles on the UART pins make it believe that the UART is active, though these pins are wired to something else, not to any UART. 

 

TDK
Super User

I've used the UART and SPI and DFU bootloaders a bunch on a number of different boards. Never had a problem with any of them.

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

@Pavel A.  & @TDK :

Thanks! This is some info I'm looking for! :)

I have used the Bootloader via FD-CAN and I2C on H730, non problems to implement this (the FDCAN gets connected to a Windows PC via a Peak FDCAN-USB dongle, the I2C is used together with a WEC7 Host) .

mƎALLEm
ST Employee

@LCE 

So if your question has been answered, don't forget to accept the solution ;)

Thanks

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.

Yes, but still waiting for some more input... which might get less if solution accepted. ;)

LCE
Principal II

Thanks again for all your input.

With all the info, having checked all documentation, I have decided against the system bootloader.

Reasons for that:

  • Interface 1): the L07x / L08x  devices I'll probably use have only UART bootloaders - which doesn't really fit into my design, as the main communication between base / modules will be via I2C. And I prefer "clocked" interfaces anyway (and don't want to have baud rate troubles or scale down below 115k2).
  • Interface 2): I don't like the interface scanning, I'll have different modules in the system, and it might be too much trouble keeping the unused IOs quiet.
  • Debugging: a self-made bootloader will give me the opportunity for debugging via UART, and / or at least LEDs.
  • Documentation: is still a little bit lacking, or distributed among too many documents. And I don't like having "black boxes" in a system.
  • I have enough experience writing my own bootloader, I could re-use lots of stuff that I already have (BL for H7, many AVRs).