Skip to content

This ReadMe contains links and information on Cypress and third-party middleware for ModusToolbox, as well as BSPs and other resources.

Notifications You must be signed in to change notification settings

Infineon/modustoolbox-software

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 

Repository files navigation

ModusToolbox™ software

ModusToolbox™ software is a modern, extensible development environment supporting a wide range of Infineon microcontroller devices. It provides a flexible set of tools and a diverse, high-quality collection of application-focused software. These include configuration tools, low-level drivers, libraries, and operating system support, most of which are compatible with Linux, macOS, and Windows-hosted environments.

This page helps you identify and find the ModusToolbox™ resources available. These resources are grouped in the following top-level categories:

Training material

Infineon offers several levels of training classes for different devices and different focuses. Each class provides examples and helps you understand the concepts faster. All the material is located on GitHub here: link to separate page

Tools packages

The ModusToolbox™ ecosystem offers a variety of tools packages to install through our Setup program. Base Packages provide fundamental software tools to create and develop applications. There are also Additional Packages that include Programming Tools, Machine Learning, and Industrial MCU support. The Setup program is available from our main website, and it is available for Windows, Linux, and macOS.

Board support packages

For any ModusToolbox™ application, you must specify a Board Support Package (BSP), which defines basic device features and capabilities. The BSP is a central feature of ModusToolbox™ software. The BSP specifies several critical items for the application, including:

  • hardware configuration files for the device (for example, design.modus)
  • startup code and linker files for the device
  • other libraries that are required to support a kit

BSPs are aligned with our kits; they provide files for basic device functionality. A BSP typically has a design.modus file that configures clocks and other board-specific capabilities. That file is used by the ModusToolbox™ configurators. A BSP also includes the required device support code for the device on the board. You can modify the configuration to suit your application.

We release BSPs independently of the Tools package. This search link finds all currently available BSPs on the GitHub site. Use the Project Creator available in the ModusToolbox Base Tools package to create the projects with the specific BSPs (get from main website).

The search results include links to each repository, named TARGET_kitnumber. For example, you will find links to repositories like TARGET_CY8CPROTO-062-4343W. Each repository provides links to relevant documentation. The following links use this BSP as an example. Each BSP has its own documentation.

The information provided varies, but typically includes one or more of:

A BSP is specific to a board and the device on that board. For custom development, you can create or modify a BSP for your device. See the ModusToolbox™ BSP Assistant user guide for how they work and how to create your own for a custom board.

Libraries

There are many other parts of ModusToolbox™ software that are provided as libraries. You do not need to use these libraries directly. When you create a ModusToolbox™ application, the system downloads all the libraries your application needs to take full advantage of the various features of our devices. A ModusToolbox™ application can use different libraries based on the Active BSP. If you wish to add various libraries to your application, use the Library Manager tool.

The following tables provide brief descriptions about the libraries available and links to the various repos. Refer to the ModusToolbox™ run-time software reference guide for more details about how these libraries are used in the ModusToolbox™ ecosystem.

Device families
CAT1: PSoC™ 6, CYW20829, TRAVEO™ II, XMC7000
Library Details Docs
cat1cm0p Arm® Cortex®-M0+ prebuilt images enabling flash write services and Bluetooth® Low Energy event handling. README
mtb-hal-cat1 The PSoC™ 6 Hardware Abstraction Layer package provides a set of APIs to initialize, configure, and use the PSoC™ 6 MCU resources using our defined Hardware Abstraction Layer. API reference
mtb-pdl-cat1 The Peripheral Driver Library (PDL) integrates device header files, startup code, and low-level peripheral drivers into a single package. API reference

CAT2: PSoC™ 4, PMG
Library Details Docs
mtb-hal-cat2 PSoC™ 4 Hardware Abstraction Layer package, provides a set of APIs to initialize, configure, and use the PSoC™ 4 MCU resources using the defined Hardware Abstraction Layer. API reference
mtb-pdl-cat2 The Peripheral Driver Library (PDL) integrates device header files, startup code, and low-level peripheral drivers into a single package. API reference

CAT3: XMC1000, XMC4000
Library Details Docs
mtb-xmclib-cat3 The XMC peripheral library (XMC Lib) consists of low-level drivers and CMSIS startup code for the XMC product family peripherals. API reference

CAT4: CYW43907, CYW54907
Library Details Docs
mtb-hal-cat4 Hardware Abstraction Layer package, provides a set of APIs to initialize, configure, and use the CYW43907/CYW54907 resources using the defined Hardware Abstraction Layer. API reference
Drivers and Core Middleware
Library Details Docs
core-lib Header files that declare basic types and utilities (such as result types or ASSERT) that can be used by multiple BSPs. API reference
cmsis used by application or middleware to link CMSIS Core headers README
freertos FreeRTOS kernel, distributed as standard C source files with configuration header file, for use with the PSoC 6 MCU. FreeRTOS webpage
freertos-posix The Portable Operating System Interface (POSIX) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. freertos-posix implements a small subset of the POSIX threading API. POSIX API Reference
command console Provides a framework to add command console support to the application (or) product use cases. API reference
csdadc Enables the ADC functionality of the CAPSENSE™ Sigma-Delta (CSD) hardware block. Useful for devices that do not include other ADC/IDAC options. API reference
csdidac The same, for IDAC functionality. API reference
emeeprom The Emulated EEPROM library provides an API to manage an emulated EEPROM in flash. It has support for wear leveling and restoring corrupted data from a redundant copy. API reference
emfile A FAT16/32 filesystem for embedded systems supporting SPI NOR flash and SD card. User guide
emusb-host CPU-independent USB Host stack. API reference
emusb-device Enables easy integration of USB functionality into an embedded system. API reference
usbdev The USB Device library provides a full-speed USB 2.0 Chapter 9 specification compliant device framework. API reference
littlefs A little fail-safe filesystem designed for microcontrollers. README
mtb-littlefs Provides a set of block device drivers for use with the littlefs file system. API reference
abstraction-rtos Abstraction layers provide APIs that allow different libraries to interact with each other without having to know specific details about a given library. This library provides a common API that allows code or middleware to use RTOS features. In the ModusToolbox™ Library Manager, this library is listed under "Abstraction Layer." API reference
clib-support The CLib FreeRTOS support library provides the necessary hooks to make C library functions such as malloc and free thread safe. API reference
retarget-io Provides a board-independent API to retarget text input/output to a serial UART on a kit API reference
serial-flash Provides a board-independent API to use the serial flash on a kit API reference
ModusToolbox™ for Connectivity
Library Details Docs
aws-iot-device-sdk-embedded-C Collection of C source files under the MIT open source license that can be used in embedded applications to securely connect IoT devices to AWS IoT Core. README.md
aws-iot-device-sdk-port Contains the port layer implementation for the MQTT and HTTP Client libraries to work with the AWS-IoT-Device-SDK-Embedded-C library on PSoC™ 6 MCU based platforms with network connectivity. API Reference
azure-c-sdk-port Implements the port layer for the Azure SDK for Embedded C to work on PSoC™ 6 MCU based platforms with network connectivity. API reference
azure-sdk-for-c Allows small embedded (IoT) devices to communicate with Azure services. README
http-client Provides the HTTP Client implementation that can work on the PSoC™ 6 MCU platforms with Wi-Fi connectivity. API reference
http-server Provides communication functions for an HTTP server. README
lpa The Low Power Assistant (LPA) is a library and associated settings in the ModusToolbox™ Device Configurator that allow you to configure a PSoC 6 Host and WLAN (Wi-Fi / BT Radio) device for optimized low-power operation. API reference
mqtt This library includes the open source AWS IoT device SDK embedded C library plus some glue to ensure seamless MQTT cloud connectivity. API reference
secure-sockets The Secure Sockets library eases application development by exposing a socket like interface for both secured and non-secured socket communication. API reference
connectivity-utilities General purpose middleware connectivity utilities, for instance a linked_list or a json_parser. API reference
ota-update Provides support for Over-The-Air update of the application code running on a PSoC™ 6 MCU with AIROC™ CYW4343W or CYW43012 Wi-Fi & Bluetooth® combo chip, using Wi-Fi or Bluetooth®. API reference
netxduo Advanced, industrial-grade TCP/IP network stack designed specifically for deeply embedded real-time and IoT applications. README
memfault-firmware-sdk An SDK responsible for working with Memfault device monitoring, debugging and OTA management platform. External README
golioth-firmware-sdk A software development kit for connecting embedded devices to the Golioth IoT Cloud External README
lwIP Lightweight open-source TCP/IP stack. External website
virtual-connectivity-manager Virtual-Connectivity-Manager (VCM) is a library that enables connectivity libraries to add multi-core support through virtualization. Virtualization allows the connectivity stack running on one core to be accessed from another core using Inter Process Communication (IPC). API reference
ModusToolbox™ for Wi-Fi
Library Details Docs
wifi-mw-core The Wi-Fi Middleware Core library bundles the core libraries that any Wi-Fi application needs. API reference
wifi-host-driver The Wi-Fi Host Driver (WHD) is an independent, embedded driver that provides a set of APIs to interact with our WLAN chips. API reference
wifi-connection-manager The Wi-Fi Connection Manager (WCM) includes the wifi-mw-core library by default and provides easy to use APIs to establish and monitor Wi-Fi connections on our devices that support Wi-Fi connectivity. API reference
smartcoex Provides an API to configure the coex parameters for WLAN and Bluetooth® Low Energy on PSoC™ 6 MCU based platforms with Wi-Fi & Bluetooth® combo chip. API reference
enterprise-security This library implements a collection of the most commonly used Extensible Authentication Protocols (EAP) used in enterprise Wi-Fi networks API reference
wpa3-external-supplicant The WPA3 External Supplicant supports WPA3 SAE authentication using HnP (Hunting and Pecking Method) using RFC, as well as H2E (Hash to Element Method) using RFC following 802.11 spec 2016. README
ModusToolbox™ for Bluetooth®
Library Details Docs
ble-mesh Provides Application Programming Interfaces (APIs) for application developers to use and create Mesh Applications. API reference
btstack BTSTACK is our Bluetooth® Host Protocol Stack implementation. The stack is optimized to work on our Bluetooth® controllers. API reference Dual Mode API reference
btstack-integration Platform adaptation layer (porting layer) between AIROC™ BT Stack and Abstraction Layers (CYHAL and CYOSAL) for different hardware platforms. README
bless This library is specific to devices like CY8C6347BZI-BLD53, with onboard Bluetooth® and no separate connectivity device. The Bluetooth® Low Energy Subsystem (BLESS) library contains a comprehensive API to configure the Bluetooth® LE Stack and the underlying chip hardware. API reference

For information about BTSDK, see https://Infineon.github.io/btsdk-docs/BT-SDK/index.html.

ModusToolbox™ for Graphics
Library Details Docs
emwin SEGGER embedded graphic library and graphical user interface (GUI) framework designed to provide processor- and display controller-independent GUI for any application that needs a graphical display. Overview
ModusToolbox™ for Security
Library Details Docs
trusted-firmware-m Provides secure world software for Arm Cortex-M processors. README
dfu The Device Firmware Update (DFU) library provides an API for updating firmware images. API reference
Arm Mbed TLS A library to include cryptographic and SSL/TLS capabilities in an embedded application. API reference
cy-mbedtls-acceleration We provide a library that extends MbedTLS to enable hardware-accelerated encryption on PSoC™ 6 MCUs. README
MCUBoot Secure bootloader for 32-bits microcontrollers. README
ModusToolbox™ for Machine Learning
Library Details Docs
ml-inference A set of pre-compiled libraries which provide easy to use API's to run ML workloads on embedded platforms. API reference
ml-middleware Helper functions to simplify integration of ML models. API reference
ml-tflite-micro A pre-configured TensorFlow tflite-micro runtime library for the Infineon PSoC6™ platform. README
ModusToolbox™ for Voice
Library Details Docs
cyberon-dspotter-lib-psoc6-cm0p Highly-accurate and lightweight wake word engine. It enables building always-listening voice-enabled applications for the CM0p Infineon devices External website
cyberon-dspotter-lib-psoc6-cm4 Highly-accurate and lightweight wake word engine. It enables building always-listening voice-enabled applications for the CM4 Infineon devices External website
ModusToolbox™ for HMI
Library Details Docs
CAPSENSE™ Capacitive sensing can be used in a variety of applications and products where conventional mechanical buttons can be replaced with sleek human interfaces to transform the way users interact with electronic systems. API reference

About

This ReadMe contains links and information on Cypress and third-party middleware for ModusToolbox, as well as BSPs and other resources.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published