About this document
Scope and purpose
This guide provides information and instructions for using the ModusToolbox™ tools provided by the tools package installer and the make build system. This document contains the following chapters:
Chapter 1
describes the various aspects of ModusToolbox™ software.
Chapter 2
provides instructions for getting started using the ModusToolbox™ tools.
Chapter 3
provides instructions for working with an application after it has been created.
Chapter 4
discusses using version control systems and methods to share an application.
Chapter 5
describes the ModusToolbox™ build system.
Chapter 6
covers different aspects of the ModusToolbox™ board support packages (BSPs).
Chapter 7
explains the ModusToolbox™ manifest files and how to use them with BSPs, libraries, and code examples.
Chapter 8
provides instructions for using a ModusToolbox™ application with various third-party tools.
A newer version of this document may be available on the web here
.
Document conventions
Convention | Explanation |
---|---|
Bold | Emphasizes heading levels, column headings, menus and sub-menus |
Italics | Denotes file names and paths. |
Monospace | Denotes APIs, functions, interrupt handlers, events, data types, error handlers, file/folder names, directories, command line inputs, code snippets |
File > New | Indicates that a cascading sub-menu opens when you select a menu item |
Abbreviations and definitions
Term | Definition |
---|---|
Application | A ModusToolbox™ Application is required to have a Makefile that supports the standard make targets (for example,
,
,
). There is generally one directory that contains one or more Projects that are meant to build and work together. The Application Makefile forwards the make targets along to the Projects in the appropriate order. |
Board (e.g.,: EVK/DVK/kit) | This is a physical collection of electronics that have been grouped together to show of capabilities of a chip or an end product created by a customer that incorporates Infineon silicon. Boards may be developed by Infineon, 3 rd party partners such as Future, or the customer themselves. This is a Target for which a ModusToolbox™ Application can be built. |
Board Support Package (BSP) | A library that you may customize, which adds support to build and boot a Target board and related devices. This includes source code, headers, resources, linker scripts, startup code, and they define common aliases for resources like GPIOs to aid in portability. All ModusToolbox™ Applications require at least one BSP. |
BSP Configurator | A specific type of configurator that is used to configure aspects of the system that are specific to the BSP. Since the BSP contains the base microcontroller, the Device Configurator, as an example, would be a BSP configurator. |
Chip/device | This is a specific piece of silicon that Infineon sells. |
Code Example | This is the starting point / template for an Application. It is typically a Git repo, but it can also be another directory. |
Configurator | GUI and/or CLI tools that simplify the configuration of a run-time asset (chip, board, or middleware). There are various types of configurators, and they generally create code or data structures that become part of the target application. |
Device Configurator | A BSP Configurator that is used to configure hardware on the main Target device. It allows configuration of device GPIOs, peripherals, clocks, DMA, etc. This is generally the starting configurator that can also be used to open other BSP Configurators. |
Device database (device-db) | Contains a set of devices that can be used by various tools for Application and BSP creation. |
Driver | Low-level firmware that enables a specific hardware peripheral. |
Firmware | Program code that runs on a Chip as a result of a building the Application and Programming (flash). |
Hardware Abstraction Layer (HAL) | A set of firmware Drivers that provide an interface to low-level hardware that is consistent across most Infineon devices. |
Kit | See Board. |
Lastest Locking | A mechanism that tracks and locks versions of libraries to specific versions for a given Application when that Application is created. Older versions of the tools package used a file named locking-commit.log . Version 3.3 and later use a file named assetlocks.json . |
Library Configurator | A specific type of Configurator that is used to configure aspects of the system that are specific to the project, but not specific to the BSP. The Bluetooth® Configurator that is used to configure items such as advertising settings, services and characteristics that are part of a project is an example of a Library Configurator. This type of configurator is generally tightly coupled to a middleware library (i.e. Bluetooth®, etc.). |
Manifests | This is a set of XML files that describe the downloadable content that is available. This includes code examples, BSPs, and middleware libraries. |
Middleware | A set of related firmware, distributed as a library of source code, headers, pre-compiled code, and resources that is designed to be used by a variety of applications. |
Module | A piece of silicon or PCB developed by Infineon or a 3 rd party partner that contains one or more Infineon chips that have been qualified to work together. |
ModusToolbox™ packs | An additional set of tools, manifests, and firmware assets that are installed as a group through Infineon Developer Center to extend the capabilities of the basic ModusToolbox™ tools package. There are Technology Packs that usually add some sort of functionality and Early Access Packs that enable early access to new devices. Early Access Packs are usually restricted to select customers. |
ModusToolbox™ Setup program | A stand-alone tool used to install ModusToolbox™ packages. |
ModusToolbox™ tools package | The basic set of tools, build system, and IDE support installed from a package for Windows, macOS, and Linux. |
mtb-shared directory | Provides the default and added library code used for the Applications within a given Workspace. |
Peripheral Driver Library (PDL) | A set of low level, device specific, firmware Drivers that provide access to hardware peripherals |
Program | This term can mean different things. When you download an Application onto a device, it is often referred to as Programming the device. In the context of a Tool, program can refer to that Tool's executable file and that is described by the props.json file found in that Tool's directory. |
Programming/debugger probes | Hardware connected to the kit/device that provides protocols to communicate between the device and the software. These include KitProg3, MiniProg4, I-Jet, J-Link, etc. |
Project | For a ModusToolbox™ single-core Application, there is only one Project and so the terms Application and Project are combined into a single entity. A ModusToolbox™ Project contains a makefile that uses the "core-make" asset to build a set of source files into a linked library or ELF image. For a ModusToolbox™ multi-core application, there are Projects for each core. So, a Project is a sub-unit of the Application, and each project is associated with a particular core of the targeted Board. The term "project" has slightly different meanings in the context of 3 rd party tools. It will be disambiguated where necessary (for example, "Eclipse project"). |
props.json | A file that contains properties for the given Tool. |
Target | The BSP for which a project is currently building. |
Tool | This is any program that is installed as part of the ModusToolbox™ tools package or through the ModusToolbox™ Setup program to provide build or configuration functionality. Specifically, a tool is a directory in the tools_x.y installation directory or under the tools subdirectory of a ModusToolbox™ Pack and that contains a valid props.json file. Examples of tools include: Dashboard Project Creator Library Manager BSP Assistant Configurators |
Workspace | A collection of files and directories that contain one or more Applications and a common "mtb_shared" directory for shared libraries. These are defined differently by different IDEs. |