Managing the Makefile for ModusToolbox® v2.x


The ModusToolbox build infrastructure creates a project based on information in a makefile. This document explains how you can manage the makefile to accomplish common tasks, and it is in the form of questions and answers. As appropriate, the answer provides a common use case, what you need to know to get the task done, and an example snippet. For a more general view of ModusToolbox, including the build system, refer to the ModusToolbox User Guide.

This document uses the following terms:

  • makefile directory: The folder that contains the makefile; this may be a code example (starter application) or your project.

  • project directory: The folder created during the project creation process; contains all files for the project, including a copy of the makefile.

  • .lib file: A text file that contains a URL to a GitHub repository and a tag or SHA for a specific commit.

  • auto-discovery: The process by which the build infrastructure automatically finds files.

When you create a project using the ModusToolbox build system, all files required by the project are copied into the project directory. This includes the original makefile found in the code example (starter application).

1. What is the makefile and how do I use it?

The makefile describes how to create and build a project. It contains information about what files to use, what libraries to include, what build tools to use, and so forth. This makefile is specific to the ModusToolbox build system. For general background and reference information on the command line interface, refer to the ModusToolbox User Guide.

Cypress provides many code examples on GitHub, which can be thought of as starter applications. Each contains a makefile and source files specific to the application. A code example is not self-contained. When you use the ModusToolbox IDE’s New Application wizard, or the stand-alone Project Creator tool, the build system is invoked, and all files required for the project appear in the project directory. If you use the Eclipse IDE for ModusToolbox, this folder is in your Eclipse workspace. If you use the Project Creator, the project directory is wherever you put it. You can then add the files to your preferred IDE, or work from the command line.

The makefile controls the project creation and build process. The original makefile from the code example is duplicated in the project directory.

2. Which makefile should I edit, the one in the code example or the one in the project directory?

Typically, you create a project from a code example, and then edit the makefile in your project directory. The changes are local to your project.

However, you can download a local copy of the code example from GitHub and edit that makefile. If you edit the makefile in your copy of the code example, any project built from that example has your changes.

In other questions and answers, this document refers to the makefile directory. This could be either your project directory or a local copy of the code example.

3. How do I add files to the project so that auto-discovery finds them?

The build infrastructure automatically finds all source files in the makefile directory. This includes .c, .cpp, .h, .hpp, .S, .s, .o, and .a files.

As a result, a simple solution is to add the files to the makefile directory. The search is recursive, so you can add the files anywhere in the makefile directory tree and the make build command finds them.

However, the common use case is that you have files that exist outside the makefile directory; for example, a collection of source code on a company server.

To discover files outside the makefile directory, you can add the path to the external directory using the CY_EXTAPP_PATH variable.

CY_EXTAPP_PATH=./../external_source_folder

Use the SOURCES and INCLUDES variables to explicitly specify the source and header files to the build process from a location not searched by the build system.

The SOURCES value must be a space-separated list of specific files. Paths can be absolute or relative to the makefile directory to locate the files. You can create a search pattern with wildcards to find multiple files.

SOURCES=$(wildcard ../MySource1/.c) $(wildcard ../MySource2/.c)

Use the INCLUDES variable to specify the folder for header files. The value is a space-separated list of relative paths to the directories.

INCLUDES=../MySource1 ../MySource2

You can also specify that certain files or folders should be ignored. See `How do I make sure auto-discovery ignores certain files?

For more information refer to the Section Adding Source Files in the ModusToolbox User Guide.

4. How can I add a path that contains spaces?

Spaces in paths are problematic with many build tools, so avoid them whenever possible. If you must have spaces in a path, use the $(wildcard) function to properly escape paths that contain spaces.

INCLUDES=$(wildcard ../My Source/)

CY_COMPILER_PATH=$(wildcard C:/Program Files (x86)/IAR Systems/Embedded Workbench 7.3/arm/bin)

5. How can I use an absolute path when the variable value requires a relative path?

The files you want to add may live someplace specific on a company server or your local machine. An absolute path can be easier to manage. In this case, you can create a make variable configured with an absolute path and use that as part of your “relative” path.

ABS_PATH=C:/<path_to_source>/ExternalSourceFiles/

SOURCES=$(ABS_PATH)/external_source.c

6. How are slashes handled by the build system?

On Windows, ModusToolbox uses Cygwin make under the hood. Cygwin is a POSIX-compatible environment. POSIX paths use forward slash “/” as the separator for paths. Therefore, “/” must be used when specifying any path in the makefile.

Windows path names use backslash “” as the path separator. In cases when there is a long absolute path and you need to replace “” with “/”, you can use the $(subst) function to make the conversion easier.

WIN_PATH=C:Users<some_long_path>HeaderFiles

HEADER_FILE=$(subst \,/,$(WIN_PATH))

INCLUDES=$(HEADER_FILE)

When specifying a value for ModusToolbox Make variables using the System Variable in the Environment Variable dialog, make sure you use forward slashes. For example, to specify the tools directory to be used, you can make use of the CY_TOOLS_PATHS system variable. Note that the value you enter must use forward slashes.

7. How do I make sure auto-discovery ignores certain files?

For example, you may have a subfolder with files used by a test or verification system, and you don’t want those compiled into your executable.

Use the CY_IGNORE variable. The value is a space-separated list of folders and/or specific files you want ignored by auto-discovery. Use paths relative to the makefile directory. You can create a search pattern with wildcards to ignore multiple files.

CY_IGNORE=./filename.c ./TestFolder

CY_IGNORE+=$(wildcard ./lib/lib1/tests/*.c)

8. How do I add an external library using a .lib text file?

The ModusToolbox build infrastructure uses the git version control system. A .lib file is typically a single line of text that represents a URL to a git repository, and a specific commit within that repository. The .lib files provided by Cypress always point to a publicly available Cypress-owned repository, typically on GitHub. For example, this .lib file imports the latest version of the Peripheral Driver Library into a project.

To add your own library, create a .lib file that points to a git repository. Place the .lib file in the makefile directory. For example:

The make getlibs command finds and processes all .lib files and uses the git command to clone or pull the code as appropriate. Then, it checks out the specific hash or tag listed in the .lib file. The source files are copied into the libs folder at the root of the project folder. The Project Creator and Library Manager tools invoke make getlibs automatically.

9. How do I add an external library by specifying files and file paths?

See `“How do I add files to the project so that auto-discovery finds them?” in this document.

10. How do I add a precompiled binary to my project?

The build infrastructure automatically finds .o and .a binary files in the makefile directory. A simple solution is to add the files to the makefile directory.

However, a common use case is that the binary file(s) exist outside the makefile directory. Use the LDLIBS variable to specify application-specific precompiled binaries. The LDLIBS value must be a space-separated list of specific files. Use paths relative to the makefile directory to locate the files. You can create a search pattern with wildcards to find multiple files. These files are included in the link process.

LDLIBS=../MyBinaryFolder/binary.o

LDLIBS+=$(wildcard ../lib/*.a)

If you need to include the header files for the binary, use the INCLUDES variable. See `How do I add files to the project so that auto-discovery finds them?

11. How do I specify a set of build tools?

The makefile by default uses GCC , which comes packaged with the ModusToolbox installer. In the makefile, the combination of variables TOOLCHAIN and CY_COMPILER_PATH are used to specify the build tools you want to use.

The other supported toolchains include the ARM Compiler and the IAR compiler, which must be installed separately.

The options for the TOOLCHAIN variable include:

  • TOOLCHAIN=GCC_ARM (Uses GCC provided with the Eclipse IDE)

  • TOOLCHAIN=ARM (Uses ARM Compiler)

  • TOOLCHAIN=IAR (Uses IAR Compiler)

Based on the compiler chosen, specify the absolute path to the compiler’s bin directory using the CY_COMPILER_PATH variable.

CY_COMPILER_PATH=$(wildcard C:/Program Files (x86)/IAR Systems/Embedded Workbench 7.3/arm/bin) CY_COMPILER_PATH=$(wildcard C:/Keil/ARM/ARMCC/bin)

12. How do I tell the build system where custom build tools are?

To use a custom toolchain that is not directly supported by ModusToolbox, follow these steps:

(1) In your project directory, navigate to libspsoc6makemaketoolchains. Note: These files do not exist in the original code example folder. They are added to the project by the build system when you create the project.

  1. Create a new file <NEW_TOOLCHAIN>.mk and add the toolchain

configuration.

(3) In the BSP directory, navigate to TARGET_<BSP>linker\ and create a directory named TOOLCHAIN_<NEW_TOOLCHAIN>. Add the custom linker script inside this directory. Note that the prefix TOOLCHAIN_ is important.

  1. In the BSP directory, navigate to TARGET_<BSP>startup\ and create

a directory named TOOLCHAIN_<NEW_TOOLCHAIN>. Add the custom startup file inside this directory.

  1. Follow the steps mentioned in `How do I specify a set of build

tools <#page4>`__ to add the toolchain and the compiler path. Make sure the value you provide for TOOLCHAIN is same as the name of the mk file you created in the Step 2.

  1. Build the application.

ModusToolbox BSPs include startup and linker files for supported toolchains. If your toolchain requires different files, you need to provide them.

13. How do I pass compiler flags?

Use the CFLAGS and CXXFLAGS variables to add additional C and C++ compiler flags respectively. Refer to the respective toolchain documentation for various options.

Example: For the GNU ARM Toolchain, the various options for the compiler can be found here. They can be added as follows:

CFLAGS=-Wall -O2

CXXFLAGS=finline-functions

The value of each variable is a space-separated list of flags supported by the compiler.

To view the changes taking effect, set the variable VERBOSE to ‘1’ in the makefile. This displays the full command lines when building.

Precisely where the compiler flags appear depends upon the toolchain or IDE in use. You can also specify the VERBOSE option using the IDE instead of the makefile. For example, in the ModusToolbox IDE, open the project properties and go to the C/C++ Build panel. Here, you can specify VERBOSE=1 in the Build command item as shown in Figure 1.

Figure 1. Build Command

image1

Click Apply and Close to save your changes and then build the application. Note that changes made to the IDE options are not reflected in the makefile.

Similarly, when using the command line, you can specify “make build VERBOSE=1” to display the full command lines when building.

14. How do I create a custom build configuration?

By default, ModusToolbox provides Debug and Release build configurations for different toolchains. They are defined in the respective <TOOLCHAIN>.mk file in libspsoc6makemaketoolchains in the project folder. To create your own build configuration, set the CONFIG variable to a value. For example:

CONFIG=MyBuild

The build system also uses the value in the CONFIG variable to generate the name of the output directory inside the project folder on this path: build<BSP>\ .

Do not set this variable to a null or empty value.

15. How do I pass linker flags?

Use the LDFLAGS variable to add custom linker flags. Refer to the respective toolchain documentation for various options.

Example: For the GNU ARM Toolchain, the various options for the linker can be found here.

LDFLAGS=-nodefaultlibs

The values must be space-separated.

16. How do I use a custom linker script?

The build infrastructure automatically uses default linker scripts. Default linker scripts are provided in the board support package for all supported toolchains (Arm, GCC, and IAR).

To use a custom linker script, specify the file in the LINKER_SCRIPT variable. The value must be a relative path from the makefile to the linker script.

LINKER_SCRIPT=../../MyFiles/myLinkerScript.ld

The script must be compatible with your toolchain (.sct, .ld, .icf).

17. How do I specify a pre-build or post-build task?

Refer to the Section Pre-builds and Post-builds in the ModusToolbox User Guide.

18. How do I build a static library?

The build system supports creating either an executable or a library. If the project builds an executable, it has the APPNAME variable set, and the LIBNAME variable is empty.

To build a library file, ensure that the APPNAME variable is empty, and specify the library name in LIBNAME.

19. What is a COMPONENT?

A COMPONENT is a folder that contains a collection of files. Typically, a component consists of files that implement some feature or functionality in an application. For example, in a Cypress BSP, the hardware design is encapsulated in a COMPONENT named BSP_DESIGN_MODUS. It contains the design.modus file and may contain other hardware configuration files associated with the BSP.

You can add or disable components.

20. How do I create a custom COMPONENT and add it to the application?

Create a folder named “COMPONENT_<NAME>”. It can be created in any location found by auto-discovery. Put the files for that component in the folder. Note that the folder must have the prefix COMPONENT_.

You then add the component to your application using COMPONENTS+=<NAME>. Note that the folder prefix is not used. For example, if you created a folder named COMPONENT_MY_COMPONENT, to add that component to the application you would do this in the makefile:

COMPONENTS+=MY_COMPONENT

21. How do I disable a COMPONENT?

Use DISABLE_COMPONENTS+=<NAME> to disable a component. For example:

DISABLE_COMPONENTS+=MY_COMPONENT

22. How do I override the default design.modus file in a BSP?

You may wish to have a custom hardware configuration for your project. The design.modus file is part of the default BSP_DESIGN_MODUS component. To do this, you disable the default component and add a custom component.

# Disable default component

DISABLE_COMPONENTS+=BSP_DESIGN_MODUS

  • Add my custom component

COMPONENTS+=CUSTOM_DESIGN_MODUS

Detailed information about how to do this is in the “Overriding the BSP Configuration Files” section of the ModusToolbox User Guide.

23. How do I create my own BSP?

You need a custom BSP when your project does not use a Cypress kit.

Detailed information about how to do this is in the “Creating a BSP for your Board” section in the ModusToolbox User Guide. For a BSP used for the Bluetooth SDK, the information is in the “Custom BSP” section in the ModusToolbox User Guide.

24. How do I use a custom BSP for my application?

You are likely to create a project for hardware that is not a Cypress kit. You use a custom BSP to support your board. The custom BSP is in a folder named TARGET_<BSP_NAME>. In the makefile, you set the value of the TARGET make variable to match your custom BSP.

For example, if your BSP is named “MyBoard”, the contents of the BSP must be in a folder named TARGET_ MyBoard, and your makefile looks like this:

  • Target board/hardware

    TARGET=MyBoard

When you execute make getlibs, your BSP files appear in a folder named TARGET_MyBoard inside your project.

Related Categories:

Keywords: ModusToolbox Eclipse Import Code Example

Product Family: PSoC 6 MCU

Related Tags: [Select the Tags by clicking the checkbox associated to the Tags]

Clocks & Buffers Tags

☐ Adapter

☐ Algorithm

☐ Bitmap

☐ Buffer

☐ Bypass

☐ CLKMAKER

☐ CML

☐ CY3670

☐ CY3672

☐ CY3675

☐ CY36800

☐ Cascade

☐ Charge Pump

☐ Clock Tree

☐ Clocks

☐ Clocks and Buffers

☐ ComLink

☐ Crystal Osc illators

☐ CyClock

☐ CyClo ckWizard

☐ Cyb erClocks

☐ Cyb erClocks Online

☐ Cycle to Cycle

☐ DCXO

☐ Delay

☐ Deter ministic Jitter

☐ Diff erential

☐ Divider

☐ Duty Cycle

☐ EMI

☐ Enhanced Per formance

☐ Ent

☐ Entrant

☐ FNOM

☐ Factory

☐ Failsafe

☐ Fanout

☐ FastEdge

☐ Feedback

☐ Field

☐ Flexo

☐ F requency

☐ F requency M argining

☐ Function Select

☐ Ge nerators

☐ Ground Bounce

☐ HPB

☐ HSTL

☐ Hershey Kiss

☐ I2C

☐ IBIS Model

☐ I mpedance

☐ Input

☐ In staClock

☐ Inverted

☐ Jed

☐ Jedec

☐ Jitter

☐ LVCMOS

☐ LVDS

☐ LVPECL

☐ Layout

☐ Lexmark Profile

☐ Loop B andwidth

☐ MoBL

☐ Mo dulation Rate

☐ Mu ltiplier

☐ NZDB

☐ Non- Volatile Memory

☐ OTP

☐ Offset

☐ Os cillator

☐ Output

☐ Ove rvoltage

☐ PCI Express

☐ PLL

☐ PPM

☐ PREMIS

☐ Period

☐ Phase

☐ Phase Noise

☐ Power Supply Noise

☐ Program

☐ Prog rammable

☐ Pro pagation

☐ Pul lability

☐ RMS

☐ Rambus

☐ Random Jitter

☐ R eference

☐ Rise Fall Time

☐ R oboClock

☐ S chematic

☐ Serial

☐ Signal I ntegrity

☐ Skew

☐ Socket

☐ S pecialty Clocks

☐ Spread %

☐ Spread Aware

☐ Spread Profile

☐ Spread Spectrum

☐ Syn thesizer

☐ TCXO

☐ TIE

☐ Ter mination

☐ Thermal

☐ Tr anslator

☐ Unde rvoltage

☐ UniClock

☐ Unit Interval

☐ VCO

☐ VCXO

☐ Volatile Memory

☐ Voltage Droop

☐ XCG

☐ XDR

☐ XO

☐ Xtal

☐ ZDB

☐ Zepto

Lighting & Power Control Tags

☐ Board Layout

☐ Boost R egulator

☐ Buck R egulator

☐ CY3261

☐ CY3267

☐ CY3268

☐ CY3269

☐ Color Mixing

☐ Current Sense

☐ DALI

☐ DMX

☐ FN Pins

☐ HB LEDs

☐ Hy steretic Co ntroller

☐ MOSFETs

☐ MPPT

☐ Mo dulators

☐ PrISM

☐ Pro gramming

☐ SSDM

☐ Sc hematics

☐ S witching Re gulators

☐ Trip

☐ Voltage R egulator

Wireless/RF Tags

☐ 2.4 GHz

☐ 8DR

☐ Antenna

☐ Audio

☐ AgileHID

☐ Bridge

☐ CY3271

☐ CY3630

☐ CY4636

☐ CY4672

☐ CYFI

☐ CYFISNP

☐ CYRF6936

☐ CYRF7936

☐ Channel

☐ DDR

☐ DSSS

☐ GFSK

☐ HID

☐ HUB

☐ IRQ

☐ Inte rference A voidance

☐ Keyboard

☐ Link Budget

☐ Mouse

☐ Node

☐ PMU

☐ PN Code

☐ PRoC

☐ PRoC-CS

☐ PRoC-EMB

☐ PRoC-TT

☐ PRoC-USB

☐ PRoC-UI

☐ Power A mplifier

☐ Preamble

☐ Pseudo Noise code

☐ RF

☐ RSSI

☐ Range

☐ Remote

☐ SCD

☐ SDR

☐ SOP

☐ SPIM

☐ Star -Network Protocol

☐ S treaming

☐ Trackpad

☐ Wireless

☐ Wireless USB

☐ Wireless USB LP

☐ Wireless USB LS

☐ Wireless USB LR

☐ Wireless USB NL

☐ Wireless Ca pacitive Touch

Memory Tags

☐ Address Bus

☐ Async

☐ Au tomotive

☐ A utostore

☐ BHE / BLE

☐ BUSY

☐ Battery Backup

☐ Burst

☐ Bus Co ntention

☐ Clock

☐ DDR

☐ Data Bus

☐ Data I ntegrity

☐ Data R etention

☐ D atasheet

☐ Dual Port

☐ Echo Clocks

☐ FIFO

☐ FPGA

☐ Flags

☐ Flo wthrough

☐ Fullflex

☐ FRAM

☐ HOLD

☐ HD-FIFO

☐ HSB

☐ I2C

☐ INT

☐ I mpedance Matching

☐ I nterface

☐ Inte rleaving

☐ JTAG

☐ Junction Tem perature

☐ Low Power

☐ MSL

☐ M igration Path

☐ MoBL

☐ Models

☐ NoBL

☐ ODT

☐ Obsolete

☐ PCB

☐ PLL / DLL

☐ P ackaging

☐ Parallel

☐ Parity

☐ Part Decoder

☐ Part Di fference

☐ Password Pr otection

☐ Pin Confi guration

☐ Pipeline

☐ Power Con sumption

☐ Power On State

☐ P rocessor

☐ QDR

☐ Quali fication Reports

☐ Quality

☐ RECALL

☐ RTC

☐ Race C ondition

☐ Read

☐ SER

☐ SPCM

☐ SPI

☐ SRAM

☐ Serial

☐ Signal I ntegrity

☐ Sync

☐ Te chnology

☐ Ter mination

☐ Timing

☐ Vcap

☐ Vddq

☐ Voltage Levels

☐ Vref

☐ Width / Depth E xpansion

☐ Write

☐ nvSRAM

☐ uPower

Interface Tags

☐ 10B/8B Decoder

☐ 3 Level Inputs

☐ ALDEC

☐ ATM

☐ Altera

☐ BIST

☐ BSDL

☐ Biasing

☐ CDR

☐ CML

☐ CPLD

☐ CY3900i

☐ CY3950i

☐ CY USBISRPC

☐ Cable

☐ Cable Driver

☐ Channel Bonding

☐ Clock Mu ltiplier

☐ Clocking Modes

☐ Coaxial Cable

☐ Copper Cable

☐ Coupling

☐ Crystal

☐ Current

☐ DVB

☐ Data C haracter

☐ Data rate

☐ Delta39K

☐ Des erialize

☐ Dese rializer

☐ Dual Channel

☐ EPLD

☐ EPROM

☐ ESCON

☐ El asticity Buffer

☐ E qualizer

☐ Error

☐ Ev aluation Board

☐ FPGA

☐ Fiber Optics

☐ F lash370i

☐ Framer

☐ Framing C haracter

☐ Framing Mode

☐ Gigabit Ethernet

☐ Hex

☐ High Speed Serial Links

☐ Hotlink

☐ HotlinkI

☐ H otlinkII

☐ IP

☐ Isr

☐ Jtag

☐ LFI

☐ LVTTL

☐ Logic Level

☐ Loop Back

☐ M acrocell

☐ Max340

☐ Model

☐ Non- Volatile

☐ OC-1

☐ OC-2

☐ OC-3

☐ O perating System

☐ PAL

☐ PECL

☐ PLD

☐ PLL

☐ Parallel Input

☐ Parallel Output

☐ Parity

☐ Phase Align Buffer

☐ PoF

☐ Point To Multi Point

☐ Point To Point

☐ Power Supply

☐ Pro gramming

☐ Quad Channel

☐ Qu antum38K

☐ Receiver

☐ R ecovered Clock

☐ R edundant Outputs

☐ R eference Clock

☐ Report File

☐ Reprog rammable

☐ SMA

☐ SMPTE

☐ SM PTE-259M

☐ SM PTE-292M

☐ SONET

☐ SPICE

☐ SPLD

☐ STAPL

☐ SVF

☐ Serial Input

☐ Serial Output

☐ Se rializer

☐ S imulator

☐ Size

☐ Special C haracter

☐ Speci fication

☐ TTL

☐ Tem perature

☐ Third Party Tool

☐ Tra nsceiver

☐ Tra nsmitter

☐ USBISRPC Cable

☐ Ultra37K

☐ User Guide

☐ VHDL

☐ Verilog

☐ Voltage

☐ Warp

☐ Word Sync Sequence

PSoC 1 Tags

☐ ADC

☐ ADCINC

☐ Analog

☐ Analog Bus

☐ API

☐ Assembly Language

☐ Boot.asm

☐ Bo otloader

☐ BSDL Files

☐ Build Errors

☐ Cal ibration

☐ Capsense

☐ Clock

☐ Clock Synchro nization

☐ Cloning

☐ Column Clock

☐ Commu nication

☐ Co mparator

☐ Compiler

☐ Counter

☐ CPU Speed

☐ Crystal

☐ CT Block

☐ DAC

☐ D ebugging

☐ D ecimator

☐ Delta Sigma ADC

☐ Dev elopment Kit

☐ Digital

☐ Dynamic Reconfi guration

☐ ECO

☐ EEPROM

☐ Errata

☐ Filter

☐ Flash

☐ Flash Security

☐ Global R esources

☐ GPIO

☐ Hex File

☐ I2C

☐ I2C-USB Bridge

☐ ICE Cube

☐ Inst allation

☐ Internet Explorer

☐ I nterrupt

☐ ISR

☐ ISSP

☐ Large Memory Model

☐ LCD

☐ License

☐ MAC

☐ M iniProg1

☐ M iniProg3

☐ Mux

☐ Mux Bus

☐ OCD

☐ Offset

☐ Pod

☐ Port and Pins

☐ Power Ma nagement

☐ Pr oduction Pr ogrammer

☐ PWM

☐ RAM

☐ RTC

☐ SAR

☐ SC Block

☐ SMP

☐ SPI

☐ System Level Design

☐ Timer

☐ UART

☐ USB

☐ USBUART

☐ Watchdog

☐ A mplifier UM

☐ Analog R eference

☐ Analog UM

☐ Build Tools

☐ Commu nication UM

☐ CRC UM

☐ CYFI

☐ Device Pro gramming

☐ Digital UM

☐ DTMF

☐ Fan Co ntroller UM

☐ Firmware UM

☐ FMEA

☐ Port Expander

☐ PSoC Power System Arch itecture

☐ Voltage S equencer UM

PSoC 3/4/5 Tags

Component tags

☐ Analog Hardware Mux

☐ Analog Mux

☐ Boost C onverter

☐ Bo otloader / Boot loadable

☐ CAN

☐ CapS ense_CSD

☐ C haracter LCD

☐ Clock

☐ Co mparator

☐ Control / Status Register

☐ Counter

☐ CRC

☐ DAC

☐ D ebouncer

☐ Delta Sigma ADC

☐ DFB

☐ DFB A ssembler

☐ Die Tem perature

☐ Digital Co mparator

☐ Digital Mul tiplexer

☐ DMA

☐ EEPROM

☐ emFile SPI Mode

☐ EMIF

☐ EzI2C Slave

☐ Fan Co ntroller

☐ Filter

☐ F requency Divider

☐ Glitch Filter

☐ Global Signal R eference

☐ Graphic LCD

☐ I2C /I 2S

☐ iAP

☐ I nterrupt

☐ LIN

☐ Logic Gates

☐ Lookup Table

☐ Manual Routing

☐ MDIO

☐ Mixer

☐ Opamp

☐ PGA

☐ Ports and Pins

☐ Power Monitor

☐ PRS

☐ PWM

☐ Qu adrature Decoder

☐ R esistive Touch

☐ RTC

☐ RTD Ca lculator

☐ Sample / Track and Hold

☐ SAR ADC

☐ SAR S equencer

☐ Segment LCD

☐ SGPIO

☐ Shift Register

☐ Sleep Timer

☐ SM / PMBus

☐ SPDIF

☐ SPI

☐ Sync

☐ Th ermistor Ca lculator

☐ Ther mocouple Ca lculator

☐ TIA

☐ Timer

☐ TMP05 I nterface

☐ Tr imMargin

☐ UART

☐ UDBClkEn

☐ USBFS

☐ USBMIDI

☐ USBUART (CDC In terface)

☐ Voltage Fault Detector

☐ Voltage S equencer

☐ Vref

☐ WaveDAC

General Tags

☐ Analog Bus

☐ Analog Global Bus

☐ Analog Mux Bus

☐ API

☐ App lication Specific

☐ Assembly Language

☐ Bo otloader Host

☐ Boundary Scan / BSDL

☐ Bridge Control Panel

☐ Build Settings

☐ Clock

☐ Compiler - GCC

☐ Compiler - KEIL

☐ Compiler - MDK

☐ Compiler - RVDS

☐ C ortex-M0

☐ C ortex-M3

☐ Creator Regi stration

☐ Custom C omponent Inte rconnect

☐ Datapath Confi guration Tool

☐ D ebugging

☐ DMA Wizard

☐ DVK

☐ ECO

☐ Errata

☐ Error Message

☐ Flash

☐ Hex File

☐ Inst allation

☐ ISSP / HSSP

☐ KEIL Regi stration

☐ Linux Platform

☐ Low Power Modes

☐ LVD / HVD

☐ MFi

☐ M iniProg3

☐ Opti mization

☐ Pr ogrammer COM

☐ PSoC Creator

☐ PSoC Pr ogrammer

☐ Reset

☐ RTOS

☐ S chematic

☐ Silicon

☐ Software Download

☐ STA

☐ Supply Voltage

☐ System R eference Guide

☐ Verilog

☐ Watchdog

☐ Windows Platform

Kit Tags

☐ CAN / LIN EBK

☐ CapSense E xpansion EBK

☐ CY8 CKIT-001 Kit

☐ CY8 CKIT-030 / 050 Kit

☐ CY8 CKIT-042 Kit

☐ Digital Audio EBK

☐ First Touch Kit

☐ LCD Segment Drive EBK

☐ MFI EBK

☐ Power Su pervisor EBK

☐ PSoC 3/4/5 P rocessor Module

☐ Thermal Ma nagement EBK

Touch Sensing Tags

☐ ADC

☐ Air gap

☐ Back lighting

☐ Bleeder Resistor

☐ Bo otloader

☐ CMOD

☐ CSA

☐ CSD

☐ CSD Pa rameters

☐ CSD2X

☐ CSDADC

☐ CSDAUTO

☐ CY3203A

☐ CY3213A

☐ CY3214

☐ CY3218

☐ CY32 80-20x34

☐ CY32 80-20xx6

☐ CY32 80-21x34

☐ C Y8C20x34

☐ C Y8C20xx6

☐ C Y8C21x34

☐ CY 8C21xxx- CapSense Express

☐ C Y8C24x94

☐ CY8 CMBR2044

☐ CapSense Express

☐ Circuit Housing

☐ Co nductive Objects

☐ Confi guration

☐ D iplexing

☐ Dynamic Reconfi guration

☐ EEPROM

☐ EMI

☐ ESD

☐ Errors

☐ FR4

☐ Filters

☐ Finger T hreshold

☐ Flex PCB

☐ I2C

☐ I2C-USB Bridge

☐ IDAC

☐ IMO and P rescaler

☐ ITO

☐ Layout Gu idelines

☐ Metal

☐ Noise

☐ Overlay

☐ PSoC3 CapSense

☐ P arasitic Cap acitance

☐ Pa thfinder

☐ Power Con sumption

☐ P roximity

☐ SNR

☐ SPI

☐ Scanning Te chniques

☐ S chematic

☐ Sensors

☐ Shield

☐ Sliders

☐ Sm artSense

☐ Tuning

☐ UART

☐ Water

☐ Water Proofing

USB Controllers Tags

☐ 8051

☐ AN2131

☐ AT2LP

☐ ATA / ATAPI

☐ ATA Commands

☐ Asyn chronous

☐ Auto Mode

☐ B andwidth

☐ Blaster

☐ Bulk Transfer

☐ Bus Power

☐ C#

☐ C++

☐ CAT5

☐ CF Card

☐ CY3216

☐ CY3649

☐ CY3654

☐ CY3655

☐ CY3660

☐ CY3662

☐ CY3664

☐ CY3674

☐ CY3681

☐ CY3684

☐ CY3685

☐ CY3686

☐ CY4605

☐ CY4606

☐ CY4611B

☐ CY4615

☐ CYUSB

☐ Clock

☐ Co mpliance

☐ Control Center

☐ Control Transfer

☐ Crystal

☐ C yConsole

☐ DLL

☐ Debug

☐ Des criptors

☐ Driver

☐ EEPROM

☐ EZ-HOST

☐ EZ-OTG

☐ EZ-USB

☐ E mulation

☐ EnCoreII

☐ E nCoreIII

☐ EnCoreV

☐ Encore

☐ Endpoint

☐ Enu meration

☐ Errata

☐ FIFO

☐ FX

☐ FX1

☐ FX2

☐ FX2LP

☐ Firmware

☐ Firmware Debug

☐ Flags

☐ F ramework

☐ Full Speed

☐ GPIF

☐ HDD

☐ HID

☐ HX2

☐ HX2LP

☐ Hi-Lo Pr ogrammer

☐ High Speed

☐ Host App lication

☐ Hub

☐ I2C

☐ ICE

☐ IN Transfer

☐ I nterrupt Transfer

☐ In terrupts

☐ Iso chronous Transfer

☐ Keil

☐ Keyboard

☐ Layout

☐ Library

☐ Loader

☐ Low Speed

☐ M8A

☐ M8B

☐ Manual Mode

☐ Mass Storage

☐ Memory

☐ Mouse

☐ NX2LP

☐ NX 2LP-Flex

☐ Nand Flash

☐ Nand Manuf acturing Utility

☐ OTP

☐ OUT Transfer

☐ Port IO

☐ Register

☐ Renu meration

☐ Report

☐ Reset

☐ SFR

☐ SIE

☐ SL811HS

☐ SPI

☐ SX2

☐ S chematic

☐ S chematic Review

☐ Screamer

☐ Script

☐ Self Power

☐ Slave FIFO

☐ S treaming

☐ SuiteUSB

☐ Syn chronous

☐ TX2

☐ TX2UL

☐ Tetra Hub

☐ Th roughput

☐ Timer

☐ UART

☐ UDMA

☐ USBFS

☐ USBUART

☐ U SBSerial

☐ Vendor Command

☐ Video Class

☐ WHQL

☐ WLK

☐ cyapi

☐ uVision

Super Speed

☐ FX3

☐ ADMux

☐ ARM926EJ -S

☐ Bo otloader

☐ DMA

☐ Eclipse

☐ FX3 GPIO

☐ FX3 Power Man agement

☐ FX3 Power supply

☐ FX3 SDK

☐ GPIF II

☐ HS-OTG

☐ JTAG

☐ LPP

☐ MSC

☐ Os cillator

☐ RTOS

☐ SD Card

☐ S lavefifo

☐ USB 3.0

☐ USB Co mpliance Test

☐ USB Host

☐ UVC

☐ FX3S

☐ eMMC

☐ SDIO

☐ S-Ports

☐ Bay

☐ Benicia

☐ HX3

☐ ASSP

☐ Battery charging

☐ Bo otloader

☐ C ortex-M0

☐ EEPROM

☐ GPIOs

☐ H X3 Power Man agement

☐ H X3 Power supply

☐ I2C

☐ I n-system pro gramming

☐ Os cillator

☐ USB 3.0 hub

☐ USB Shared Link™

Automotive MCU Tags (16FX/FR/FCR4/Traveo)

☐ Traveo

☐ S6J3110

☐ S6J3120

☐ S6J3200

☐ S6J3300

☐ S6J3310

☐ S6J3320

☐ S6J3330

☐ S6J3340

☐ S6J3350

☐ S6J3400

☐ S6J3510

☐ S6J326C

☐ S6J324C

☐ S6J327C

☐ S6J328C

☐ S6J32DA

☐ S6J32BA

☐ S6J3360

☐ S6J3370

☐ S6J32G0

☐ MB9D560

☐ CY9D560

☐ FR81S

☐ MB91520

☐ MB91550

☐ MB91580

☐ MB91570

☐ MB91590

☐ CY91520

☐ CY91550

☐ CY91580

☐ CY91570

☐ CY91590

☐ FCR4

☐ MB9DF125

☐ MB9DF126

☐ MB9EF226

☐ CY9DF125

☐ CY9DF126

☐ CY9EF226

☐ 16FX

☐ MB96600

☐ CY96600

☐ Power

☐ Current

☐ PSS

☐ Low Power

☐ Mode

☐ Clock

☐ Reset

☐ External Bus

☐ DDR HSSPI

☐ Hyper Bus

☐ CPU

☐ MPU

☐ PPU

☐ TPU

☐ Flash

☐ RAM

☐ Backup RAM

☐ DMA

☐ I nterrupt

☐ Port

☐ A/D C onverter

☐ D/A C onverter

☐ Timer

☐ Base Timer

☐ UDC/QPRC

☐ Real Time clock

☐ Watchdog

☐ SHE

☐ Security

☐ BootROM

☐ Multi- Function Serial

☐ UART

☐ CSIO

☐ I2C

☐ CAN

☐ CAN FD

☐ LIN

☐ FlexRay

☐ Ethernet

☐ CRC

☐ Graphics

☐ Sound

☐ SMC

☐ LCDC

☐ Media LB

APIX

☐ Audio DAC

☐ I2S

☐ PCMPWM

☐ Motor Control

☐ Waveform G enerator

☐ RDC

☐ MVA

☐ AUTOSAR

☐ Safety

☐ Ev aluation Kit

☐ Flash Pr ogrammer

☐ Tool

☐ Document

☐ Board

Automotive MCU Tags (Traveo II)

☐ Traveo II

☐ Body Control

☐ Gateway

☐ Chassis

☐ Cluster

☐ CYT2B7

☐ Power

☐ Power mode

☐ Chip o peration mode

☐ Clock

☐ Reset

☐ CPU

☐ MPU

☐ SMPU

☐ PPU

☐ SWPU

☐ IPC

☐ Flash

☐ SRAM

☐ ROM

☐ DMA

☐ I nterrupt

☐ IO S ubsystem

☐ ADC

☐ TCPWM

☐ WDT

☐ RTC

☐ Trigger Mul tiplexer

☐ CRYPTO

☐ EVTGEN

☐ EFUSE

☐ Boot

☐ SCB

☐ LIN

☐ CAN/CAN FD

☐ CXPI

☐ Fault

☐ Program and Debug IF

☐ AUTOSAR

☐ Safety

☐ Ev aluation Kit

☐ Flash Pr ogrammer

☐ Tool

☐ Document

☐ Board

Automotive Power Management ICs (PMICs)Tags

☐ PMIC

☐ DC/DC c onverter

☐ LDO

☐ Buck

☐ Boost

☐ Bu ck-boost

☐ S6BP201A

☐ S6BP202A

☐ S6BP203A

☐ S6BP401A

☐ S6BP501A

☐ S6BP502A

☐ Channel

☐ Input voltage

☐ Output voltage

☐ Load current

☐ Q uiescent current

☐ Ef ficiency

☐ A utomatic PWM/PFM

☐ Fixed PWM

☐ Syn chronous

☐ Current mode

☐ S witching f requency

☐ So ft-start

☐ Cold Crank

☐ MOSFET

☐ Sc hematics

☐ PCB Layout

☐ Current Sense

☐ Line Re gulation

☐ Load re gulation

☐ Watchdog timer

☐ Power good

☐ UVLO

☐ Thermal re sistance

☐ SSCG

☐ OCP

☐ OVP

☐ Thermal shutdown

☐ Ripple

☐ Gain margin

☐ Phase margin

☐ Osc illation

☐ Junction tem perature

☐ Ambient tem perature

☐ BOM

☐ Phase comp ensation

☐ Tem perature rise

☐ EMI

☐ R adiation noise

☐ Co nduction noise

☐ Snubber

Automotive CXPI Tags

☐ CXPI Transceiver

☐ S6BT112A01

☐ S6BT112A02

Knowledge Base Article Type: [Select the category by clicking the checkbox associated]

KB Type-1

KB Type-2

Compiler

ByteCraft

Imagecraft

Keil

HiTech

Component Development

Training/Things you should know

Component Architecture

Component/Project management

Datapath

Analog components

Digital components

Component software/tools

Component Testing

Development Kits

FirstTouch Kit

Development Tools

Device Drivers

Pullability

Mass Storage

Device Programming

PSoC Programmer

Documentation

Firmware

General

Hardware

Digital

Specifications

Analog

Known Problems and Solutions

Microcontrollers

8051

M8

M8C

Traveo

Traveo II

FCR4

FR

16FX

Modules

Automotive Power Management ICs (PMICs)

Automotive CXPI

Platforms

MacOS X

Windows

Protocols

HID

I2C

Quality

Reference Designs

Software

PSoC Designer

PSoC Creator

User Modules

Analog

Digital

DOCUMENT HISTORY

Document Title: Managing the Makefile for ModusToolbox® v2.x – KBA229177

Document Number: 002-29177

Rev.

ECN No.

Description of Change

**

6760595

Initial release

*A

6823491

Updated question 0 with the location of new BSP.

*B

6885483

Updated question 0 to point to MTB User Guide (the help information is relocated)

*C

6895151

Updated information regarding the Eclipse IDE for ModusToolbox and the ModusToolbox User Guide.

Updated Question 3 to include the CY_EXTAPP_PATH variable.

Updated Question 6 to include information about using forward slashes in Windows System Variables.

Updated diagram in Question 13.

Combined Questions 17 and 18 to refer to ModusToolbox User Guide.

Updated Questions 22 and 23 to refer to ModusToolbox User Guide.