Bootloaders
HCC has developed optimized bootloaders for years and has a range of high quality solutions to fit almost any scenario. Rather than create an inflexible, single-function bootloader, HCC has a library of bootloader components that can be snapped together to support almost any boot scenario. Simply let us know what trigger mechanisms, interfaces and target memory you will use and we will assemble and test a comprehensive solution from our off-the-shelf components.
All bootloaders have the ability to boot using Flash, USB or serial interfaces using minimal resources on the target controller. The benefits of using HCC bootloaders include small footprint, high-speed operation, optimized performance and a high quality stable implementation that has been widely used in commercial applications. HCC bootloaders are fail-safe and if the boot process is interrupted for any reason the system will still be able to fully recover. All bootloaders have the option of adding an advanced AES encryption module for secure data transfer and can be configured to support multiple complex interfaces.
Serial
HCC’s straightforward serial bootloader consists of a simple serial protocol, together with an appropriate flash-programming algorithm. This quick and reliable solution is sufficient for applications that do not require complex interface or device support. It can be used together with HCC’s encryption module for applications that require secure data transfer
USB Device
The USB bootloader loads a new code image from a host application over a USB interface. It uses a special version of HCC’s EUSBD stack and a simple transfer protocol to minimize overhead. This
gives the application developer several easy options for loading target programs over USB from a host. On the host side the developer has several options to manage downloads:
- HCC’s free sample application that works with libusb (freely available).
- HCC’s sample C# or VB application with generic HID interface on Windows.
- Use another generic USB host interface such as Winusb from Microsoft.
USB Host
The USB Host bootloader reads a new code image from any USB drive and uses it to update the target device’s firmware safely. It contains a special, read-only version of HCC’s optimized small footprint FAT file system, together with HCC’s USB stack and Mass Storage class driver.
HCC’s optimized small-footprint FAT file system is used as the basis of a simple bootloader. Typically it is installed as a fixed bootstub in the target which is never erased. A trigger mechanism checks an attached SD card (or other similar media) for a new code image. If available, the bootloader will then automatically program the image to the target device.
Fail-safety
All HCC bootloaders are fail-safe and will fully recover in the event of an unexpected interruption, reset or power loss. The system is configured to operate automatically and requires no user intervention to recover or handle unexpected system events.
AES Encryption
An advanced AES encryption add-on is available for all HCC bootloaders. The module completely conceals the program image using the AES encryption module so that only the bootloader for which the code is destined can decode it. Manufacturers can freely distribute new code and upgrades with full confidence that it cannot be dis-assembled, copied or tampered with.
Hybrid Configuration
HCC’s bootloader products are configured from a core library of robust software components. This means that as well as the single function bootloaders described, HCC can supply composite bootloaders to support multiple interfaces. HCC’s consulting process can easily and quickly deliver a bootloader built from tested core components to meet any system requirements.