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,

get_app_info

,

build

,

getlibs

). 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.