The ModusToolbox™ tools package provides you with all the desktop products needed to build sophisticated, low-power embedded, connected and IoT applications. The tools enable you to create new applications (Project Creator), add or update software components (Library Manager), set up peripherals and middleware (Configurators), program and debug (OpenOCD and Device Firmware Updater), and compile (GNU C compiler).

Infineon Technologies understands that you want to pick and choose the tools and products to use, merge them into your own flows, and develop applications in ways we cannot predict. That's why ModusToolbox™ software is not a monolithic, proprietary software tool that dictates the use of any particular IDE.

The

ModusToolbox™ tools package installer

provides required and optional core resources for any application. This section provides an overview of the available resources:

The installer does not include

Code examples

or

Libraries (middleware)

, but it does provide the tools to access them.

Directory structure

Refer to the

ModusToolbox™ tools package installation guide

for information about installing ModusToolbox™ software. Once it is installed, the various ModusToolbox™ top-level directories are organized as follows:



Note:

This image shows ModusToolbox™ version 3.6 installed. Your installation may include more than one ModusToolbox™ version. Refer to the

Product versioning

section for more details.

The "

ModusToolbox

" directory contains the following subdirectories for version 3.6:

docs_<version>

This is the top-level documentation directory. It contains various top-level documents and the

doc_landing.html

file with links to documents provided as part of ModusToolbox™ software. This file is also available from the Dashboard.



resources_<version>

This directory contains a .

json

file with details about the version of the tools package. There are also a couple helper files for the icon and launch-tool.

tools_<version>

This contains all the various tools and scripts installed as part of ModusToolbox™ tools package. See

Tool descriptions

for more information.



Packs

Packs can be installed separately from a tools package release. These packs include additional software and tools for specific features, such as machine learning. If you install a pack, it will create a "packs" subdirectory in the root "ModusToolbox" installation directory. Refer to the pack documentation for specific details about a pack.

To install a pack, use the Setup program or go to

https://softwaretools.infineon.com/tools

. There will be links to either install the pack directly or download it to install manually. The pack documentation will provide additional instructions and requirements, as needed.

Tool descriptions

The

tools_<version>

directory includes the following configurators, tools, and utilities:

Configurators

Each configurator is a cross-platform tool that allows you to set configuration options for the corresponding hardware peripheral or library. When you save a configuration, the tool generates the C code and/or a configuration file used to initialize the hardware or library with the desired configuration.

Configurators are independent of each other, but they can be used together to provide flexible configuration options. They can be used stand alone, in conjunction with other configurators, or as part of a complete application. All of them are installed during the ModusToolbox™ installation. Each configurator provides a separate guide, available from the configurator's

Help

menu.

Configurators perform tasks such as:

  • Displaying a user interface for editing parameters

  • Setting up connections such as pins and clocks for a peripheral

  • Generating code to configure middleware

Note:

Some configurators may not be useful for your application.

Configurators store configuration data in an XML data file that provides the desired configuration. Each configurator has a "command line" mode that can regenerate source based on the XML data file. Configurators are divided into two types: BSP Configurators and Library Configurators.

The following diagram shows a high-level view of the configurators that could be used in a typical application.

BSP configurators

BSP configurators configure the hardware on a specific device. This can be a board provided by us, a partner, or a board that you create that is specific to your application. Some of these configurators interact with the design.modus file to store and communicate configuration settings between different configurators. Code generated by a BSP Configurator is stored in a directory named GeneratedSource, which is in the same directory as the design.modus file. This is generally located in the BSP for a given target board. Some of the BSP configurators include:



  • Device Configurator : Set up the system (platform) functions such as pins, interrupts, clocks, and DMA, as well as the basic peripherals, including UART, Timer, etc. Refer to the Device Configurator user guide for more details.

  • CAPSENSE™ Configurator : Configure CAPSENSE™ hardware, and generate the required firmware. This includes tasks such as mapping pins to sensors and how the sensors are scanned. Refer to the CAPSENSE™ Configurator user guide for more details.

    There is also a

    CAPSENSE™ Tuner

    to adjust performance and sensitivity of CAPSENSE™ widgets on the board connected to your computer. Refer to the

    CAPSENSE™ Tuner user guide

    for more details.

  • QSPI Configurator : Configure external memory and generate the required firmware. This includes defining and configuring what external memories are being communicated with. Refer to the QSPI Configurator user guide for more details.

  • Smart I/O Configurator : Configure the Smart I/O. This includes Chip, I/O, Data Unit, and LUT signals between port pins and the HSIOM. Refer to the Smart I/O Configurator user guide for more details.

  • SegLCD Configurator : Configure LCD displays. This configuration defines a matrix Seg LCD connection and allows you to setup the connections and easily write to the display. Refer to the SegLCD Configurator user guide for more details.

Library configurators

Library configurators support configuring application middleware. Library configurators do not read nor depend on the design.modus file. They generally create data structures to be consumed by software libraries. These data structures are specific to the software library and independent of the hardware. Configuration data is stored in a configurator-specific XML file (for example, *.cybt, *.cyusbdev, etc.). Any source code generated by the configurator is stored in a GeneratedSource directory in the same directory as the XML file. The Library configurators include:

  • Bluetooth® Configurator : Configure Bluetooth® settings. These include options for specifying what services and profiles to use and what features to offer by creating SDP and/or GATT databases in generated code. This configurator supports both PSOC™ MCU and AIROC™ Bluetooth® applications. Refer to the Bluetooth® Configurator user guide for more details.

  • USB Configurator : Configure USB settings and generate the required firmware. This includes options for defining the Device Descriptor and Settings. Refer to the USB Configurator user guide for more details.

  • LIN Configurator : Configure various LIN settings, such as frames and signals, and generate the required firmware. Refer to the LIN Configurator user guide for more details.

  • EZ-PD™ Configurator : Configure the features and parameters of the PDStack middleware for PMG1 family of devices. Refer to the EZ-PD™ Configurator user guide for more details.

Other tools

ModusToolbox™ software includes other tools that provide support for application creation, device firmware updates, and so on. All tools are installed by the

ModusToolbox™ tools package installer

. With rare exception each tool has a user guide located in the

docs

directory beside the tool itself. Most user guides are also available online.

Other tools

Details

Documentation

dashboard

Top-level starting point to create applications and BSPs.

user guide

project-creator

Create a new application.

user guide

library-manager

Add and remove libraries and BSPs used in an application; edits the

Makefile

.

user guide

bsp-assistant

Create and update BSPs.

user guide

mtb-settings

ModusToolbox™ Settings tool provides one place to configure various settings for all tools, such as proxy settings, content mode, manifest DB location, etc.

user guide is in the tool's docs directory

cymcuelftool

Older tool used to merge CM0+ and CM4 application images into a single executable. Typically launched from a post-build script. This tool is not used by most applications.

user guide is in the tool's docs directory

dfuh-tool

Communicate with a device that has already been programmed with an application that includes device firmware update capability. Provided as a GUI and a command-line tool. Depending on the ecosystem you target, there may be other over-the-air firmware update tools available.

user guide

lcs-manager-cli

Command-line tool to create local content to work without Internet.

user guide

mtbarchive

GUI and command-line tool to create a zip file archive of a project to share with colleagues.

The tool creates a readme file.

Utilities

ModusToolbox™ software includes some additional utilities that are often necessary for application development. In general, you do not use these utilities actively; they are triggered by various user actions.

Utility

Description

airoc-tools

Assorted utilities used for AIROC™ projects.

hardware-config-server

Background utility that brokers transactions between (potentially) multiple user-facing applications and a common design file.

make

Build system tools.

mtbgetlibs

Background utility that facilitates acquiring libraries.

mtbideexport

Background utility used to provide various IDE support.

mtblaunch

Background utility used to launch various tools.

mtbninja/ninja

Background utility to speed up builds.

mtbquery

Background utility used to query databases.

mtbsearch

Background utility used to search projects.

signcombinemkgen

Signer/combiner make generation tool.

SRecord

Collection of tools for manipulating EPROM load files. This is used to merge multi-core application images into a combined programmable HEX image.

Build system infrastructure

The build system infrastructure is the fundamental resource in ModusToolbox™ software. It serves three primary purposes:

  • create an application, update and clone dependencies

  • create an executable

  • provide debug capabilities

A

Makefile

defines everything required for your application, including:

  • target hardware (board/BSP to use)

  • source code and libraries to use for the application

  • ModusToolbox™ tools version, as well as compiler toolchain to use

  • compiler/assembler/linker flags to control the build

  • assorted variables to define things like file and directory locations

The build system automatically discovers all .c, .h, .cpp, .s, .a, .o files in the application directory and subdirectories, and uses them in the application. The

Makefile

can also discover files outside the application directory. You can add another directory using the

CY_SHAREDLIB_PATH

variable. You can also explicitly list files in the

SOURCES

and

INCLUDES

make variables.

Each library used in the application is identified by a .

mtb

file. This file contains the URL to a git repository, a commit tag, and a variable for where to put the library on disk. For example, a

capsense.mtb

file might contain the following line:

https://github.com/Infineon/capsense#latest-v2.X#$$ASSET_REPO$$/capsense/latest-v2.X

The build system implements the

make getlibs

command. This command finds each .

mtb

file, clones the specified repository, checks out the specified commit, and collects all the files into the specified directory. Typically, the

make getlibs

command is invoked transparently when you create an application or use the Library Manager, although you can invoke the command directly from a command-line interface. See

ModusToolbox™ build system

for detailed documentation on the build system infrastructure.

Program and debug support

For programming and debugging, the

ModusToolbox™ Programming tools package

is available separately, and you should install that package along with the base tools package using the Setup program. You can use various IDEs to program devices and establish a debug session (see

Using supported IDEs

).

The following tools are part of the Programming tools package and they are no longer installed in the base package "

ModusToolbox

" tools directory:

Tool

Description

Documentation

ModusToolbox™ Programmer

ModusToolbox™ Programmer functionality is built into ModusToolbox™ Software. ModusToolbox™ is also available as a stand-alone tool.

user guide

fw-loader

A simple command line tool to identify which version of KitProg is on a kit, and easily switch back and forth between legacy KitProg2 and current KitProg3.

readme.txt

file in the tool directory

KitProg3

This tool is managed by fw-loader, it is not available separately. KitProg3 is a low-level communication/debug firmware. Use fw-loader to upgrade your kit to KitProg3, if needed.

user guide

OpenOCD

Our specific implementation of OpenOCD is installed with ModusToolbox™ software.

developer's guide

ModusToolbox™ software supports the

Open On-Chip Debugger

(OpenOCD) using a GDB server, and supports the J-Link debug probe. See

Switch to J-Link

for details.

ModusToolbox™ Programmer uses KitProg3 low-level communication firmware. The firmware loader (fw-loader) is a software tool you can use to update KitProg3 firmware, if you need to do so. The fw-loader tool is installed with the ModusToolbox™ Programming tools package. The latest version of the tool is also available separately in a

GitHub repository

.