UAVCAN bootloader options for STM32

415 views
Skip to first unread message

Jonathan Challinger

unread,
Nov 3, 2016, 3:55:53 PM11/3/16
to UAVCAN
Hello,

I'd like to understand what UAVCAN bootloaders currently exist for STM32. It seems that sapog and vectorcontrol duplicate the same bootloader. Is there a "master copy" of this bootloader somewhere? Why isn't it a submodule?

What about the implementation of UAVCAN in vectorcontrol? Is that separated out somewhere?

Pavel Kirienko

unread,
Nov 3, 2016, 4:09:47 PM11/3/16
to Jonathan Challinger, UAVCAN
Hi Jonathan,

The "master copy" is located in the PX4 Firmware repository at https://github.com/PX4/Firmware/tree/nuttx_next_cmake/src/drivers/bootloaders (I'm not sure why it still hasn't been merged into master), the bootloader's board-specific drivers are separated at https://github.com/PX4/Firmware/tree/nuttx_next_cmake/src/drivers/boards. Note that this bootloader does not rely on any existing UAVCAN libraries, the protocol is implemented there from scratch.

Vectorcontrol uses an ad-hoc implementation of UAVCAN for the purposes of minimizing overhead, with some dependencies on libuavcan's DSDL marshaller (and possibly something else).

There is no good reason for maintaining independent copies of the same bootloader codebase in different projects; this approach is clearly suboptimal in many ways and it may be changed in the future.

Pavel.

--
You received this message because you are subscribed to the Google Groups "UAVCAN" group.
To unsubscribe from this group and stop receiving emails from it, send an email to uavcan+unsubscribe@googlegroups.com.
To post to this group, send email to uav...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/uavcan/CAHEFQQyH2QToiyyjyxA%2B%2BynhZCW8o4PCbeUii0hArf2wE-YFeQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Pavel Kirienko

unread,
Apr 2, 2017, 10:21:16 AM4/2/17
to UAVCAN
Jonathan, and everyone who cares about bootloaders like I do,

You might find this useful: https://github.com/Zubax/zubax_chibios/tree/master/zubax_chibios/bootloader. It is a simple C++ library (MIT license) that implements bootloader routines, supporting UAVCAN (via Libcanard), XMODEM, XMODEM-1K, and YMODEM over USB CDC ACM and UART. A usage example is available here (GPL v3 license): https://github.com/Zubax/zubax_gnss/tree/master/bootloader. The library is platform independent but dependent on ChibiOS. The ROM footprint in the full configuration is under 32K on STM32F105.

Hope this helps.

Pavel.
Reply all
Reply to author
Forward
0 new messages