This repo provides the core make build files and scripts for building and programming ModusToolbox applications. Builds can be run either through a command-line interface (CLI) or through a supported IDE such as Eclipse or VS Code.
This release of the core GNU make Build System includes a framework to support building, programming, and debugging application projects. It must be used in conjunction with a recipe specific make package (eg: recipe-make-cat1a). It is expected that a code example contains a top level make file for itself and references a Board Support Package (BSP) that defines specific items, like the PSOC™ part, for the target board. Supported functionality includes the following:
- Supported operations:
- Build
- Program
- Debug
- IDE Integration (Eclipse, VS Code, IAR, uVision)
- Supported toolchains:
- GCC
- IAR
- ARM Compiler 6
- LLVM Embedded Toolchain for Arm (Experimental)
- Fixed an issue with programming using Eclipse for a hex file built with experimental ninja support.
- Added experimental LLVM Embedded Toolchain for Arm support.
- Added support for Infineon EdgeProtectTool.
- Added task in VS Code export's tasks.json in multicore application to only build the current project.
- Added option for Eclipse export to only build the current project in multicore application.
- Added launch configurations for Eclipse and VS Code to only program/debug a single project in multi-core application.
- Added experimental ninja support.
- Multiple bug fixes and build performance improvements.
- Fixed an issue causing some python calls to not be quoted properly.
- Fixed an issue causing the compile_commands.json file to not be generated properly for files outside of project directory.
- Fixed an issue where the compile_commands.json file generation did not properly handle some escape characters correctly.
- Dropped support for Python as part of the ModusToolbox tools package in favor of pre-installed Python 3 in the user's PATH.
- Updated Eclipse export to support parallel build jobs in Eclipse IDE for ModusToolbox 3.2 and later.
- Multiple bug fixes and performance improvements.
- Fixed an issue where files from SOURCES are not compiled if they start with "./"
- Added SKIP_CODE_GEN make variable, when set to non-empty value, code generation step will be skipped.
- Added MTB_JLINK_DIR make variable to override the default path to JLink base diretory.
- Added support for BSP_PROGRAM_INTERFACE make variable to specify programming interface. Valid values depends on recipe-make. Some valid values include "KitProg3", "JLink", "FTDI". Not all recipes support all interfaces.
- Eclipse and VS Code export will now only generate the launch configurations for the selected programming interface.
- This version of the core-make library is a Beta release to support CYW55513 devices only. Do not use it for production development or in applications targeting other devices.
- Workaround an issue where CONFIG_ directory was not being properly filtered by auto-discovery.
- update make vscode generated c_cpp_properties.json to only use compile_commands.json
- Fixed UVision, and Embbeded Workbench export not handling escape characters correctly in defines
- Dropped compatibility with recipe-make version 1.X and ModusToolbox tools version 2.X
- Added support for uvision5 export devices with Cortex-M33 core
- Update various make help documentation
- Updated uvsion5 export to support XMC devices
- Changed Infineon online simulator tgz file generation to be off by default, so it will not add to build time. Archive file generation can be enabled during build by setting to CY_SIMULATOR_GEN_AUTO=1 in the Makefile.
- Changed IDE export to run prebuild code-generation so that project can work out-of-the-box with 3rd party IDEs
- Added support for generating tgz file for Infineon online simulator (recipe-make-cat3-1.1.0 or newer)
- Added support for opening Infineon online simulator through quick panel (recipe-make-cat3-1.1.0 or newer)
- Fix make config_ezpd and config_lin not working when there are no existing design file
- Added error detection for when the selected device in makefile does not match selected device in design.modus file
- make bsp will now generated .mtbx files even if device-configurator fails.
- Added make update_bsp commmand to change the target device a custom bsp
- Added support for the secure-tools configurator, ml-configurator, ez-pd configurator and lin configurator
- Moved more code from recipe files into core
- Improved compatibility with different tool releases
- Initial release supporting build/program/debug on gcc/iar/armv6 toolchains. NOTE: This was formerly part of psoc6make but is now split out for improved reuse
Builds require that the ModusToolbox tools be installed on your machine. This comes with the ModusToolbox install. On Windows machines, it is recommended that CLI builds be executed using the Cygwin.bat located in ModusToolBox/tools_x.y/modus-shell install directory. This guarantees a consistent shell environment for your builds.
To list the build options, run the "help" target by typing "make help" in CLI. For a verbose documentation on a specific subject type "make help CY_HELP={variable/target}", where "variable" or "target" is one of the listed make variables or targets.
This version of the core make build system was validated for compatibility with the following Software and Tools:
Software and Tools | Version |
---|---|
ModusToolbox Software Environment | 3.3 |
GCC Compiler | 11.3 |
IAR Compiler | 9.3 |
ARM Compiler | 6.16 |
Minimum required ModusToolbox Software Environment: v3.0
(c) 2019-2024, Cypress Semiconductor Corporation (an Infineon company) or an affiliate of Cypress Semiconductor Corporation. All rights reserved.