middleware selector stm32

5
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, supported 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 support 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 No compromise embedded middleware for STM32

Upload: kit2

Post on 28-Oct-2015

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Middleware Selector 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, supported 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 support 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

No compromise embedded middleware for STM32

Page 2: Middleware Selector STM32

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 support almost any embedded USB configuration. The USB suite provides highly efficient basic class drivers like HID, Hub and Mass Storage. Support 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 support 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 support 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 support any storage media, RTOS, compiler or microcontroller. Highlights include;

• Highly optimized file systems: a number of finely-tuned file systems designed to provide the best performance for a range of scenarios. With full support for traditional FAT and flash file systems, developers can choose a system optimized for flexibility, performance or resource-limited environments.

• Extensive target media drivers: HCC collaborates closely with the industry’s leading storage suppliers and can provide support 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.

• No-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.

Page 3: Middleware Selector STM32

TCP/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 TCP/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 support 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 user 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 support 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 & PurchasingAll HCC reusable software components are royalty-free and distributed in source form. Support 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 contact 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 SupportRTOS AbstractionsRTOS 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.

Page 4: Middleware Selector STM32

Extensive Compiler SupportEclipse/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.

MicrocontrollersAtmel 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/3000/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][email protected] • www.hcc-embedded.com

Page 5: Middleware Selector STM32

Middleware Selector Tables

Product Code Product Description STM

32

F05

0/

51

STM

32

F10

0

STM

32

F10

1

STM

32

F10

2

STM

32

F10

3

STM

32

F10

5/

07

STM

32

F20

5

STM

32

F20

7

STM

32

F21

5/

21

7

STM

32

F30

2/

03

STM

32

F31

3

STM

32

F37

2/

73

STM

32

F38

3

STM

32L1

51/

152/

162

STM

32

F40

5/

15

STM

32

F40

7/

17

STM

32

F42

7/

37

File SystemsFAT File Systems FAT High Peformance FAT 16/32 File System no ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔

THIN '"THIN" File System for Resource Limited Applications

✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔

SAFEFAT SafeFAT Fail Safe File System no ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔

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 ✔ ✔ ✔

MD-MMCSD-SPI SD/MMC SPI Media Driver ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔

MD-CF Compact Flash Media Driver no ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔*

MD-HDD HDD IDE-ATA Driver no ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔* ✔*

MD-SCSI USB Mass Storage Media Driver no no no ✔ ✔ ✔ no no ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔

MD-RAM RAM Drive Media Driver no ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔

*requires external controller

Flash ManagementFlash Translation Layer

MD-SAFEFTL Fail-safe Flash Translation Layer no ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ no no ✔ ✔ ✔ ✔

MD-SSD-FTL SSD Media Driver for Parallel NAND no n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a 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 ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔

Failsafe Flash File System

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 ✔ ✔ ✔ ✔

TINY- DF TINY File System for Atmel Dataflash ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔

TINY-STF Tiny File System for ST Flash ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔

TINY-RAM Tiny File System for RAM no ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔

TINY-BWA Tiny File System for Byte Writable Arrays no ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔

NetworkingIPv4/v6 Stack - MISRA Compliant

TCP-MISRA MISRA Compliant TCP/IPv4 stack n/a n/a n/a n/a n/a ✔ n/a ✔ ✔ n/a n/a n/a n/a n/a n/a ✔ ✔

IPv4 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 ✔ ✔

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 ✔ ✔

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 ✔ ✔

DHCP 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 ✔ ✔

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 ✔ ✔

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 ✔ ✔

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 ✔ ✔

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 ✔ ✔

Target 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 ✔ ✔

Product Code Product Description STM

32

F05

0/

51

STM

32

F10

0

STM

32

F10

1

STM

32

F10

2

STM

32

F10

3

STM

32

F10

5/

07

STM

32

F20

5

STM

32

F20

7

STM

32

F21

5/

21

7

STM

32

F30

2/

03

STM

32

F31

3

STM

32

F37

2/

73

STM

32

F38

3

STM

32L1

51/

152/

162

STM

32

F40

5/

15

STM

32

F40

7/

17

STM

32

F42

7/

37

USBUSB Host 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 ✔ ✔ ✔ ✔

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 ✔ ✔ ✔ ✔

EUSBH-CDCACM USB Host Class Driver For CDC Abstract Control Model

n/a n/a n/a n/a n/a ✔ ✔ ✔ ✔ n/a n/a n/a n/a ✔ ✔ ✔ ✔

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 ✔ ✔ ✔ ✔

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 ✔ ✔ ✔ ✔

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 ✔ ✔ ✔ ✔

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 ✔ ✔ ✔ ✔

USB Host Target Drivers

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 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 ✔ ✔ ✔ ✔

EUSBD-Audio USB Device Class Driver for Audio n/a n/a n/a ✔ ✔ ✔ ✔ ✔ ✔ ✔ n/a ✔ n/a ✔ ✔ ✔ ✔

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 Health-care Devices

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 ✔ ✔ ✔ ✔

EUSBD-PRNT USB Device Class Driver for Printers n/a n/a n/a ✔ ✔ ✔ ✔ ✔ ✔ ✔ n/a ✔ n/a ✔ ✔ ✔ ✔

USB Device Target Support

EUSBD-TRGT USB Device Target Specific Driver 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 ✔ ✔ ✔ ✔

BootloadersSD Card bootloader BL-FAT Bootloader using SD Card n/a ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔

Serial bootloader BL-SER Bootloader using Serial Link 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 ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔

SchedulingeTaskSync Scheduler TASK MISRA compliant cooperative scheduler ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔