Find out more about HCC software and activities by watching some of our short video clips.
HCC has developed optimized bootloaders for many years and has a range of high quality solutions that will fit almost any scenario. The 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.
HCC’s straightforward serial bootloader consists of a simple serial protocol, together with an appropriate flash-programming algorithm. It can be used together with HCC’s encryption module for applications that require secure distribution.
The USB Device 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:
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 that 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.
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.
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.
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.
Broad Range of Target Processors & Tools
HCC’s Bootloaders can operate efficiently on a broad range of target processors. Designed to be ported easily and quickly to new architectures, it is available with drivers for a range of leading embedded processors.
Although the bootloaders do not require an RTOS to run, they commonly support applications running under the following systems: CMX RTX, eCOS, emBOS, EUROS, FreeRTOS, Keil RTX, MQX, Nucleus, Quadros RTXC, ThreadX, µ-velOSity, µC/OS-II, and many others. Importantly, for custom schedulers and super loops, HCC offers an abstraction for ‘No RTOS’.
Extensive Compiler Support
Eclipse/GCC, IAR Embedded Workbench, Keil ARM Compiler, Freescale CodeWarrior, Atmel AVR Studio, Green Hills Multi, MPLAB, Renesas HEW, TI Code Composer Studio, Mentor CodeSourcery, Atollic True Studio and many more.
Atmel AVR32, SAM3/7/9; ARM Cortex-M0/M3/M4, ARM7/9/11; Freescale ColdFire, Kinetis, PowerPC, i.MX; Infineon C164; Microchip PIC24, PIC32; NXP LPC1000/2000/3000/4000; Renesas SH-2A, RX600; STMicro STM32; Texas Instruments MSP430, Stellaris, C2000, Hercules.