Middleware Selector for STM32 Microcontrollers No compromise embedded middleware for STM32
STM32 Flash microcontrollers, based on the ARM Cortex™ ‘M’ processor, are a family of embedded controllers that combine real‑time capabilities and digital signal processing, ed by a broad ecosystem of tools. The large number of STM32 devices available includes controllers suitable both for small projects and for much larger system level designs. HCC provides one of the largest selections of middleware for STM32 devices and can any compiler and target board and any RTOS (or none). HCC software is highly optimized because we are focused only on storage and communications and, as a consequence, reach a level of performance that is difficult to achieve.
Middleware Selector for STM32 Microcontrollers HCC Embedded Middleware For STM32 USB Device, Host & OTG: USB solutions from HCC are mature, widely used stacks that can almost any embedded USB configuration. The USB suite provides highly efficient basic class drivers like HID, Hub and Mass Storage. is also available for more sophisticated configurations requiring Isochronous Transfer, Composite Devices and multiple USB interfaces. In addition, HCC’s range of advanced class drivers provides access to File Systems and communications networks including Ethernet. This means developers can exploit USB to its full potential with ease, without having to worry about developing highly specialized drivers. Software is distributed as source code and sample projects integrated with most popular RTOSes, MCU’s and compilers can be provided. The stacks all interface speeds, all transfer types, USB 1.1/2.0, Host, Device and OTG modes. There are implementations for an extensive range of MCUs including proprietary interfaces as well as OHCI and EHCI. Flash Management: There are many NAND and NOR Flash memory devices, interfaces and technologies that developers can choose. Integrating them reliably and achieving the maximum potential life and high performance presents a significant design challenge. HCC has developed robust fail-safe flash management software and file systems and it has for hundreds of different kinds of memory types, interfaces and controllers. HCC’s truly fail-safe SafeFTL ‘Flash Translation Layer’ provides a high-performance solution that allows developers to interface with any Flash-based media. SafeFTL presents a simple logical sector interface to an application, such as a file system, and manages the underlying complexity efficiently and safely. When used in conjunction with HCC’s advanced file systems there is a complete solution for almost any type of storage media and performance requirement. File Systems: HCC’s highly optimized range of file systems is designed to meet the performance requirements of any application. Using HCC file systems will make your application more reliable and will help to protect your customer’s data. HCC file systems can be seamlessly dropped into any environment to any storage media, RTOS, compiler or microcontroller. Highlights include; •H ighly optimized file systems: a number of finely-tuned file systems designed to provide the best performance for a range of scenarios. With full for traditional FAT and flash file systems, developers can choose a system optimized for flexibility, performance or resource-limited environments. • E xtensive target media drivers: HCC collaborates closely with the industry’s leading storage suppliers and can provide for almost any flash device or storage medium. We routinely supply drivers for everything from simple USB pen drives and SD cards, to the most advanced NAND and NOR flash. •N o-compromise fail-safety: HCC has developed truly fail-safe file systems that guarantee the highest possible data integrity. With abstractions for more than 15 real-time operating systems HCC’s “one-size-doesn’t-fit-all” approach to file systems is sure to provide an optimal solution for most applications.
T/IP: The key to a successful embedded application is to use high-quality software that is verifiably developed and ensures a stable, low-risk development platform. HCC’s T/IP stack was developed with a rigorous approach to quality using a strongly typed subset of the ‘C’ language. The approach incorporates a strong adherence to the MISRA-C:2004 standard and was validated using advanced verification tools. All software is provided with optimized Ethernet drivers and will integrate easily with any RTOS. The implementation was designed for high performance on a micro-controller. There are no unnecessary copies, well thought out static memory management and dedicated memory areas and cache are fully exploited. HCC’s networking solution provides a significant range of protocols as well as for both IPv4 and IPv6, providing flexibility and long-term network compatibility. Bootloaders: HCC has developed a range of high quality bootloader solutions that will fit almost any scenario. The bootloaders can 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. Additionally the bootloaders use a library of standard components and are customized to specifications. HCC bootloaders are truly fail-safe and, if the boot process is interrupted for any reason, the system will fully recover. All bootloaders have the option to add an advanced AES encryption module for secure data transfer. It is possible to configure them to multiple complex interfaces. eTaskSync Verifiable Kernel: HCC’s eTaskSync is a no compromise, MISRA-compliant scheduler used for running tasks in an embedded system. HCC provides many middleware products whose operations need to be properly synchronized and coordinated. This can be achieved using a small subset of the typical functions of a standard kernel: tasks, events and mutexes. eTaskSync is designed to provide that synchronization. It uses a priority based, pre-emptive scheduling mechanism that can be used in any real-time embedded application. eTaskSync is delivered with detailed MISRA compliance reports, MC-DC analysis and 100% object and statement code coverage tests. eTaskSync can be used in a broad range of embedded applications, but it is especially suitable for those that require a high level of integrity and verification such as industrial, medical and transportation applications.
Licensing & Purchasing All HCC reusable software components are royalty-free and distributed in source form. and maintenance are included for one year with all purchases, and where possible we deliver sample projects tailored to your development environment. Visit HCC’s website to find a sample license and to obtain the details of your local sales representative. Or, simply send an email to
[email protected] and we will send all the details you require.
Broad Range of RTOS & Tool RTOS Abstractions RTOS abstractions are available for the following systems: CMX RTX, eCOS, emBOS, EUROS, FreeRTOS, Keil RTX, 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’. We also offer our own eTaskSync, a small cooperative scheduler, which is designed to handle all processing and interface requirements of HCC middleware. This means that developers can choose our robust quality and outstanding performance irrespective of their legacy software.
Extensive Compiler Eclipse/GCC, IAR Embedded Workbench, Keil ARM Compiler, Freescale CodeWarrior, Atmel AVR Studio, Green Hills Multi, Microchip MPLAB, Renesas HEW, TI Code Composer Studio, Mentor CodeSourcery, Atollic True Studio and many more. Microcontrollers 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 LPC1300/1700/1800/2000/3 000/4000; Renesas SH-2A, RX600; STMicroelectronics STM32; Texas Instruments MSP430, Stellaris, C2000, Hercules, DaVinci, Sitara.
US sales office: 444 East 82nd Street New York NY 10028 • Tel: +1 212 734 1345 European sales offices: 24a Melville St, Edinburgh EH3 7NS Scotland, UK • Tel.: +44 7918 787 571 1133 Budapest, Váci út 76., Hungary • Tel.: +36 1 450 1302
[email protected] • www.hcc-embedded.com
STM32F427/37
STM32F427/37
STM32F407/17
STM32F407/17
STM32F405/15
STM32F405/15
STM32L151/152/162
STM32L151/152/162
STM32F383
STM32F383
no
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
THIN
'"THIN" File System for Resource Limited Applications
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
EUSBH- BASE
USB Host Stack Base Software
n/a n/a n/a n/a n/a
✔
✔
✔
✔
n/a n/a n/a n/a
✔
✔
✔
✔
EUSBH-HUB
USB Host Class Driver For External Hubs
n/a n/a n/a n/a n/a
✔
✔
✔
✔
n/a n/a n/a n/a
✔
✔
✔
✔
EUSBH-MST
USB Host Class Driver For Mass Storage
n/a n/a n/a n/a n/a
✔
✔
✔
✔
n/a n/a n/a n/a
✔
✔
✔
SAFEFAT
SafeFAT Fail Safe File System
no
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
EUSBH-RNDIS
USB Host Class Driver For Remote NDIS
n/a n/a n/a n/a n/a
✔
✔
✔
✔
n/a n/a n/a n/a
✔
✔
✔
Media Drivers
MD-MMCSD
SD/MMC SDIO Media Driver
no n/a n/a n/a
✔
n/a
✔
✔
n/a n/a n/a n/a n/a n/a
✔
✔
✔
✔
EUSBH-CDCACM
n/a n/a n/a n/a n/a
✔
✔
✔
✔
n/a n/a n/a n/a
✔
✔
✔
✔
✔
✔
USB Host Class Driver For CDC Abstract Control Model
MD-MMCSD-SPI
SD/MMC SPI Media Driver
✔
✔
✔
✔
✔
✔
✔
MD-CF
Compact Flash Media Driver
no ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔*
EUSBH-CDCECM
USB Host Class Driver For CDC Ethernet Control Model
n/a n/a n/a n/a n/a
✔
✔
✔
✔
n/a n/a n/a n/a
✔
✔
✔
✔
MD-HDD
HDD IDE-ATA Driver
no ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔*
MD-SCSI
USB Mass Storage Media Driver
no
no
no
✔
✔
✔
no
no
✔
✔
✔
✔
✔
✔
✔
✔
✔
EUSBH-CDCEEM
USB Host Class Driver For CDC Ethernet Emulation Module
n/a n/a n/a n/a n/a
✔
✔
✔
✔
n/a n/a n/a n/a
✔
✔
✔
✔
MD-RAM
RAM Drive Media Driver
no
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
EUSBH-CDCOBEX
USB Host Class Driver For OBEX devices
n/a n/a n/a n/a n/a
✔
✔
✔
✔
n/a n/a n/a n/a
✔
✔
✔
✔
EUSBH-CDCFTDI
USB Host Class Driver For FTDI USB serial devices
n/a n/a n/a n/a n/a
✔
✔
✔
✔
n/a n/a n/a n/a
✔
✔
✔
✔
EUSBH-AUDIO
USB Host Class Driver For Audio
n/a n/a n/a n/a n/a
✔
✔
✔
✔
n/a n/a n/a n/a
✔
✔
✔
✔
EUSBH-MIDI
USB Host Class Driver For Midi
n/a n/a n/a n/a n/a
✔
✔
✔
✔
n/a n/a n/a n/a
✔
✔
✔
✔
EUSBH-HID
USB Host Class Driver For Human Interface Device
n/a n/a n/a n/a n/a
✔
✔
✔
✔
n/a n/a n/a n/a
✔
✔
✔
✔
EUSBH-MTP
USB Host Class Driver For Media Transfer Protocol
n/a n/a n/a n/a n/a
✔
✔
✔
✔
n/a n/a n/a n/a
✔
✔
✔
✔
USB
✔ ✔
✔ ✔
✔
✔ ✔
✔ ✔
✔ ✔
✔ ✔
✔
USB Host
*requires external controller
Flash Management Flash Translation Layer
Failsafe Flash File System
STM32F372/73
STM32F372/73
High Peformance FAT 16/32 File System
STM32F313
STM32F313
STM32F302/03
STM32F302/03
STM32F215/217
STM32F215/217
STM32F207
STM32F207
STM32F205
STM32F205
STM32F105/07
STM32F105/07
STM32F103
STM32F103
FAT File Systems
STM32F102
STM32F102
FAT
File Systems
STM32F101
STM32F101
Product Description
STM32F100
Product Description
STM32F100
Product Code
STM32F050/51
Product Code
STM32F050/51
Middleware Selector Tables
MD-SAFEFTL MD-SSD-FTL
Fail-safe Flash Translation Layer SSD Media Driver for Parallel NAND
no
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
no
no n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a no
no
✔
✔
✔
✔
no n/a n/a n/a n/a
FAT+MD-SAFEFTL
FAT with Flash Translation Layer
no
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
no
no
✔
✔
✔
✔
SAFEFAT+MD-SAFEFTL
SafeFAT with Flash Translation Layer
no
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
no
no
✔
✔
✔
✔
DFML
Dataflash Flash Management Layer
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
SAFEFLASH
SafeFLASH Fail safe File System
no
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
no
no
✔
✔
✔
✔
NOR-DRV
SafeFLASH NOR Flash Driver
no
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
no
no
✔
✔
✔
✔
NAND-DRV
SafeFLASH NAND Flash Driver
no
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
no
no
✔
✔
✔
DF-DRV
SafeFLASH Atmel Dataflash Driver
no
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
no
no
✔
✔
✔
EUSBH-PRNT
USB Host Class Driver For Printers
n/a n/a n/a n/a n/a
✔
✔
✔
✔
n/a n/a n/a n/a
✔
✔
✔
✔
EUSBH-PROPDRV
USB Host STM32 Target Specific Driver
n/a n/a n/a n/a n/a
✔
✔
✔
✔
n/a n/a n/a n/a
✔
✔
✔
✔
✔
USB Host Target Drivers
✔
USB Device
EUSBD-BASE
USB Device Stack Base Software
n/a n/a n/a
✔
✔
✔
✔
✔
✔
✔
n/a
✔
n/a
✔
✔
✔
✔
✔
EUSBD-MST
USB Device Class Driver for Mass Storage
n/a n/a n/a
✔
✔
✔
✔
✔
✔
✔
n/a
✔
n/a
✔
✔
✔
✔
✔
EUSBD-RNDIS
USB Device Class Driver for RNDIS
n/a n/a n/a
✔
✔
✔
✔
✔
✔
✔
n/a
✔
n/a
✔
✔
✔
✔
✔
EUSBD-CDCACM
USB Device Class Driver for CDC-ACM
n/a n/a n/a
✔
✔
✔
✔
✔
✔
✔
n/a
✔
n/a
✔
✔
✔
✔
✔
EUSBD-CDCECM
USB Device Class Driver for CDC-ECM
n/a n/a n/a
✔
✔
✔
✔
✔
✔
✔
n/a
✔
n/a
✔
✔
✔
✔
EUSBD-CDCEEM
USB Device Class Driver for CDC-EEM
n/a n/a n/a
✔
✔
✔
✔
✔
✔
✔
n/a
✔
n/a
✔
✔
✔
✔
Networking
EUSBD-Audio
USB Device Class Driver for Audio
n/a n/a n/a
✔
✔
✔
✔
✔
✔
✔
n/a
✔
n/a
✔
✔
✔
✔
IPv4/v6 Stack MISRA Compliant
✔
EUSBD-Midi
USB Device Class Driver for Midi
n/a n/a n/a
✔
✔
✔
✔
✔
✔
✔
n/a
✔
n/a
✔
✔
✔
✔
✔
EUSBD-HID
USB Device Class Driver for HID
n/a n/a n/a
✔
✔
✔
✔
✔
✔
✔
n/a
✔
n/a
✔
✔
✔
✔
EUSBD-MTP
USB Device Class Driver for Media Transfer Protocol
n/a n/a n/a
✔
✔
✔
✔
✔
✔
✔
n/a
✔
n/a
✔
✔
✔
✔
EUSBD-PHDC
USB Device Class Driver for Personal Healthcare Devices
n/a n/a n/a
✔
✔
✔
✔
✔
✔
✔
n/a
✔
n/a
✔
✔
✔
✔
TINY- DF TINY-STF TINY-RAM TINY-BWA
Target
T-MISRA
TINY File System for Atmel Dataflash Tiny File System for ST Flash Tiny File System for RAM Tiny File System for Byte Writable Arrays
MISRA Compliant T/IPv4 stack IPv4
✔ ✔ no no
✔ ✔ ✔ ✔
✔ ✔ ✔ ✔
✔ ✔ ✔ ✔
✔ ✔ ✔ ✔
n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a
✔ ✔ ✔ ✔
✔ ✔
✔ ✔ ✔ ✔
n/a n/a
✔ ✔ ✔ ✔
✔ ✔
✔ ✔ ✔ ✔
✔ ✔
✔ ✔ ✔ ✔
✔ ✔ ✔ ✔
✔ ✔ ✔ ✔
✔ ✔ ✔ ✔
✔ ✔ ✔ ✔
✔ ✔ ✔ ✔
n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a
✔ ✔ ✔ ✔
✔ ✔
IPv6
n/a n/a n/a n/a n/a
✔
n/a
✔
✔
n/a n/a n/a n/a n/a n/a
✔
✔
BSD 4
n/a n/a n/a n/a n/a
✔
n/a
✔
✔
n/a n/a n/a n/a n/a n/a
✔
✔
UDP
n/a n/a n/a n/a n/a
✔
n/a
✔
✔
n/a n/a n/a n/a n/a n/a
✔
✔
ARP
n/a n/a n/a n/a n/a
✔
n/a
✔
✔
n/a n/a n/a n/a n/a n/a
✔
✔
EUSBD-PictBridge
USB Device Class Driver for Pictbridge
n/a n/a n/a
✔
✔
✔
✔
✔
✔
✔
n/a
✔
n/a
✔
✔
✔
✔
ICMP
n/a n/a n/a n/a n/a
✔
n/a
✔
✔
n/a n/a n/a n/a n/a n/a
✔
✔
EUSBD-PRNT
USB Device Class Driver for Printers
n/a n/a n/a
✔
✔
✔
✔
✔
✔
✔
n/a
✔
n/a
✔
✔
✔
✔
DNS Client
n/a n/a n/a n/a n/a
✔
n/a
✔
✔
n/a n/a n/a n/a n/a n/a
✔
✔
EUSBD-TRGT
USB Device Target Specific Driver
n/a n/a n/a
✔
✔
✔
✔
✔
✔
✔
n/a
✔
n/a
✔
✔
✔
✔
DH client
n/a n/a n/a n/a n/a
✔
n/a
✔
✔
n/a n/a n/a n/a n/a n/a
✔
✔
USB Device Target
FTP Server
n/a n/a n/a n/a n/a
✔
n/a
✔
✔
n/a n/a n/a n/a n/a n/a
✔
✔
USB OTG
EUSBD-OTG
Module for Systems Requiring HNP and SRP
n/a n/a n/a n/a n/a
✔
✔
✔
✔
n/a n/a n/a n/a
✔
✔
✔
✔
TFTP Server
n/a n/a n/a n/a n/a
✔
n/a
✔
✔
n/a n/a n/a n/a n/a n/a
✔
✔
PPP
PPP Module
n/a n/a n/a n/a n/a
✔
n/a
✔
✔
n/a n/a n/a n/a n/a n/a
✔
✔
Bootloaders
SMTP
SMTP
n/a n/a n/a n/a n/a
✔
n/a
✔
✔
n/a n/a n/a n/a n/a n/a
✔
✔
SD Card bootloader
BL-FAT
Bootloader using SD Card
n/a ✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
HTTP-SERV
HTTP Server Module
n/a n/a n/a n/a n/a
✔
n/a
✔
✔
n/a n/a n/a n/a n/a n/a
✔
✔
Serial bootloader
BL-SER
Bootloader using Serial Link
n/a ✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
ETHERNET-DRV
Ethernet Target Driver
n/a n/a n/a n/a n/a
✔
n/a
✔
✔
n/a n/a n/a n/a n/a n/a
✔
✔
Pendrive bootloader
BL-EUSBH
Bootloader for USB Pendrive
n/a n/a n/a ✔
✔
✔
✔
✔
✔ n/a n/a n/a n/a n/a ✔
✔
✔
PC/USB bootloader
BL-EUSBD
Bootloader for USB PC
n/a n/a n/a ✔
✔
✔
✔
✔
✔
✔ n/a ✔ n/a ✔
✔
✔
✔
Encryption
BL-ENC
AES Bootloader Encryption Module
n/a ✔
TASK
MISRA compliant cooperative scheduler
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
Scheduling eTaskSync Scheduler
✔
✔