From cde39c5863376f84c625abcf1d4a1197137dea5b Mon Sep 17 00:00:00 2001 From: gitlab-runner Date: Thu, 14 Oct 2021 16:00:55 -0500 Subject: [PATCH] Upload recipe-make-cat3 1.2.0.2249 --- README.md | 2 +- RELEASE.md | 4 +- make/recipe/defines.mk | 121 +++++++++++++----- make/recipe/defines_common.mk | 84 ++++-------- make/recipe/program.mk | 12 +- make/recipe/recipe.mk | 21 ++- make/recipe/recipe_common.mk | 21 ++- make/scripts/backup_bsp_template.bash | 71 ++++++++++ make/scripts/copy_bsp_template.bash | 89 +++++++++++++ make/scripts/run_bsp_device_configurator.bash | 64 +++++++++ make/scripts/vscode/launch.json | 2 + make/toolchains/ARM.mk | 2 +- make/toolchains/GCC_ARM.mk | 2 +- make/toolchains/IAR.mk | 15 ++- make/udd/features.mk | 14 +- version.xml | 2 +- 16 files changed, 404 insertions(+), 122 deletions(-) create mode 100755 make/scripts/backup_bsp_template.bash create mode 100755 make/scripts/copy_bsp_template.bash create mode 100644 make/scripts/run_bsp_device_configurator.bash diff --git a/README.md b/README.md index 75b815d..03a6233 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ## Overview -This repo provides the build recipe make files and scripts for building and programming XMC applications. Builds can be run either through a command-line interface (CLI) or through the ModusToolbox Integrated Development Environment (IDE). +This repo provides the build recipe make files and scripts for building and programming XMC applications. Builds can be run either through a command-line interface (CLI) or through the Eclipse IDE for ModusToolbox. ## Prerequisite diff --git a/RELEASE.md b/RELEASE.md index a7befcd..d4bbfd1 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,5 +1,5 @@ # XMC GNU make Build System Release Notes -This repo provides the build recipe make files and scripts for building and programming XMC applications. Builds can be run either through a command-line interface (CLI) or through the ModusToolbox Integrated Development Environment (IDE). +This repo provides the build recipe make files and scripts for building and programming XMC applications. Builds can be run either through a command-line interface (CLI) or through the Eclipse IDE for ModusToolbox. ### What's Included? The this release of the XMC GNU make build recipe includes support for building XMC application projects. It is expected that a code example contains a top level make file for itself and references a Board Support Package (BSP) that defines specifics items, like the XMC part, for the target board. Supported functionality includes the following: @@ -12,6 +12,8 @@ The this release of the XMC GNU make build recipe includes support for building This also includes the getlibs.bash script that can be used directly, or via the make target to download additional git repo based libraries for the application. ### What Changed? +#### v1.2.0 +* Added ARM and IAR support (IAR linker scripts are shipped with IAR EW) #### v1.1.0 * Added support for generating tgz file for Infineon online simulator (core-make-1.8.0 or newer) * Added support for opening Infineon online simulator through quick panel (core-make-1.8.0 or newer) diff --git a/make/recipe/defines.mk b/make/recipe/defines.mk index 93e4508..79adabf 100644 --- a/make/recipe/defines.mk +++ b/make/recipe/defines.mk @@ -6,7 +6,7 @@ # ################################################################################ # \copyright -# Copyright 2018-2020 Cypress Semiconductor Corporation +# Copyright 2018-2021 Cypress Semiconductor Corporation # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -36,7 +36,7 @@ include $(CY_INTERNAL_BASELIB_PATH)/make/recipe/defines_common.mk # # List the supported toolchains # -CY_SUPPORTED_TOOLCHAINS=GCC_ARM +CY_SUPPORTED_TOOLCHAINS=GCC_ARM IAR # # Core specifics @@ -84,28 +84,31 @@ CY_XMC_SUBSERIES_CALC=$(strip \ $(if $(findstring $(1),$(CY_DEVICES_WITH_DIE_XMC1400)),\ XMC1400,\ $(if $(findstring $(1),$(CY_DEVICES_WITH_DIE_XMC4100)),\ - $(if $(findstring XMC4104,$(1)),\ + XMC4100,\ + $(if $(findstring $(1),$(CY_DEVICES_WITH_DIE_XMC4104)),\ XMC4104,\ - $(if $(findstring XMC4108,$(1)),\ - XMC4108,XMC4100)),\ + $(if $(findstring $(1),$(CY_DEVICES_WITH_DIE_XMC4108)),\ + XMC4108,\ $(if $(findstring $(1),$(CY_DEVICES_WITH_DIE_XMC4200)),\ XMC4200,\ $(if $(findstring $(1),$(CY_DEVICES_WITH_DIE_XMC4300)),\ XMC4300,\ $(if $(findstring $(1),$(CY_DEVICES_WITH_DIE_XMC4400)),\ - $(if $(findstring XMC4402,$(1)),\ - XMC4402,XMC4400),\ - $(if $(findstring $(1),$(CY_DEVICES_WITH_DIE_XMC4500)),\ - $(if $(findstring XMC4502,$(1)),\ + XMC4400,\ + $(if $(findstring $(1),$(CY_DEVICES_WITH_DIE_XMC4402)),\ XMC4402,\ - $(if $(findstring XMC4504,$(1)),\ - XMC4504,XMC4500)),\ + $(if $(findstring $(1),$(CY_DEVICES_WITH_DIE_XMC4500)),\ + XMC4500,\ + $(if $(findstring $(1),$(CY_DEVICES_WITH_DIE_XMC4502)),\ + XMC4502,\ + $(if $(findstring $(1),$(CY_DEVICES_WITH_DIE_XMC4504)),\ + XMC4504,\ $(if $(findstring $(1),$(CY_DEVICES_WITH_DIE_XMC4700)),\ XMC4700,\ $(if $(findstring $(1),$(CY_DEVICES_WITH_DIE_XMC4800)),\ XMC4800,\ $(call CY_MACRO_ERROR,Incorrect part number $(1). Check DEVICE_GEN variable.)\ - )))))))))))) + ))))))))))))))))) CY_XMC_SUBSERIES=$(call CY_XMC_SUBSERIES_CALC,$(DEVICE)) @@ -128,7 +131,7 @@ else ifneq (,$(findstring $(DEVICE),$(CY_DEVICES_WITH_DIE_XMC1400))) CY_OPENOCD_CHIP_NAME=xmc1400 CY_XMC_SERIES=XMC1400 -else ifneq (,$(findstring $(DEVICE),$(CY_DEVICES_WITH_DIE_XMC4100))) +else ifneq (,$(findstring $(DEVICE),$(CY_DEVICES_WITH_DIE_XMC4100) $(CY_DEVICES_WITH_DIE_XMC4104) $(CY_DEVICES_WITH_DIE_XMC4108))) CY_START_SRAM=0x1FFFE000 CY_OPENOCD_CHIP_NAME=xmc4100 CY_XMC_SERIES=XMC4100 @@ -143,12 +146,12 @@ CY_START_SRAM=0x1FFF0000 CY_OPENOCD_CHIP_NAME=xmc4300 CY_XMC_SERIES=XMC4300 -else ifneq (,$(findstring $(DEVICE),$(CY_DEVICES_WITH_DIE_XMC4400))) +else ifneq (,$(findstring $(DEVICE),$(CY_DEVICES_WITH_DIE_XMC4400) $(CY_DEVICES_WITH_DIE_XMC4402))) CY_START_SRAM=0x1FFFC000 CY_OPENOCD_CHIP_NAME=xmc4400 CY_XMC_SERIES=XMC4400 -else ifneq (,$(findstring $(DEVICE),$(CY_DEVICES_WITH_DIE_XMC4500))) +else ifneq (,$(findstring $(DEVICE),$(CY_DEVICES_WITH_DIE_XMC4500) $(CY_DEVICES_WITH_DIE_XMC4502) $(CY_DEVICES_WITH_DIE_XMC4504))) CY_START_SRAM=0x20000000 CY_OPENOCD_CHIP_NAME=xmc4500 CY_XMC_SERIES=XMC4500 @@ -234,7 +237,15 @@ endif # # linker scripts # -CY_MACRO_XMC1_LINKER_CALC_INTERNAL=$(strip \ + +# The IAR linker scripts shipped as part of the IAR install rather than BSP. +# These linker have "xxxxx" rather than just a single "x" in their name. +# These linker script also don't have '0' after the 'x'. +# In GCC the linker script name may a '0' after the 'x' if its a XMC1 device +# I.E XMC1404xxxxx200.icf instead XMC1404x0200.ld + + +CY_MACRO_GCC_XMC1_LINKER_CALC_INTERNAL=$(strip \ $(if $(findstring $(1),$(CY_DEVICES_WITH_FLASH_KB_8)),\ $(2)x0008,\ $(if $(findstring $(1),$(CY_DEVICES_WITH_FLASH_KB_16)),\ @@ -249,7 +260,7 @@ CY_MACRO_XMC1_LINKER_CALC_INTERNAL=$(strip \ $(2)x0200,\ ))))))) -CY_MACRO_XMC4_LINKER_CALC_INTERNAL=$(strip \ +CY_MACRO_GCC_XMC4_LINKER_CALC_INTERNAL=$(strip \ $(if $(findstring $(1),$(CY_DEVICES_WITH_FLASH_KB_64)),\ $(2)x64,\ $(if $(findstring $(1),$(CY_DEVICES_WITH_FLASH_KB_128)),\ @@ -268,20 +279,52 @@ CY_MACRO_XMC4_LINKER_CALC_INTERNAL=$(strip \ $(2)x2048,\ ))))))))) -# ARCH, DEVICE, SUBSERIES +# first part of the linker script (XMC4104xxxx) +# remove the part name after the dash and add x. +# the 4100 and 4200 has 4x while everything else has 5x +CY_MACRO_IAR_LINKER_PREFIX_CALC_INTERNAL=$(strip $(word 1,$(subst -, ,$(1)))$(strip \ + $(if $(findstring $(1),$(CY_DEVICES_WITH_DIE_XMC4100) $(CY_DEVICES_WITH_DIE_XMC4104) $(CY_DEVICES_WITH_DIE_XMC4108) $(CY_DEVICES_WITH_DIE_XMC4200)),xxxx,xxxxx))) + +CY_MACRO_IAR_LINKER_MEM_CALC_INTERNAL=$(strip \ + $(if $(findstring $(1),$(CY_DEVICES_WITH_FLASH_KB_8)),\ + 8,\ + $(if $(findstring $(1),$(CY_DEVICES_WITH_FLASH_KB_16)),\ + 16,\ + $(if $(findstring $(1),$(CY_DEVICES_WITH_FLASH_KB_32)),\ + 32,\ + $(if $(findstring $(1),$(CY_DEVICES_WITH_FLASH_KB_64)),\ + 64,\ + $(if $(findstring $(1),$(CY_DEVICES_WITH_FLASH_KB_128)),\ + 128,\ + $(if $(findstring $(1),$(CY_DEVICES_WITH_FLASH_KB_200)),\ + 200,\ + $(if $(findstring $(1),$(CY_DEVICES_WITH_FLASH_KB_256)),\ + 256,\ + $(if $(findstring $(1),$(CY_DEVICES_WITH_FLASH_KB_512)),\ + 512,\ + $(if $(findstring $(1),$(CY_DEVICES_WITH_FLASH_KB_768)),\ + 768,\ + $(if $(findstring $(1),$(CY_DEVICES_WITH_FLASH_KB_1024)),\ + 1024,\ + $(if $(findstring $(1),$(CY_DEVICES_WITH_FLASH_KB_1536)),\ + 1536,\ + $(if $(findstring $(1),$(CY_DEVICES_WITH_FLASH_KB_2048)),\ + 2048,\ + ))))))))))))) + +# ARCH, DEVICE, SUBSERIES, TOOLCHAIN CY_MACRO_LINKER_CALC=$(strip \ + $(if $(findstring IAR,$(4)),\ + $(call CY_MACRO_IAR_LINKER_PREFIX_CALC_INTERNAL,$(2))$(call CY_MACRO_IAR_LINKER_MEM_CALC_INTERNAL,$(2)),\ $(if $(findstring $(1),XMC1),\ - $(call CY_MACRO_XMC1_LINKER_CALC_INTERNAL,$(2),$(3)),\ + $(call CY_MACRO_GCC_XMC1_LINKER_CALC_INTERNAL,$(2),$(3)),\ $(if $(findstring $(1),XMC4),\ - $(call CY_MACRO_XMC4_LINKER_CALC_INTERNAL,$(2),$(3)),\ + $(call CY_MACRO_GCC_XMC4_LINKER_CALC_INTERNAL,$(2),$(3)),\ $(call CY_MACRO_ERROR,Could not resolve device series for linker script.)\ - ))) + )))) -CY_LINKER_SCRIPT_NAME=$(call CY_MACRO_LINKER_CALC,$(CY_XMC_ARCH),$(DEVICE),$(CY_XMC_SUBSERIES)) +CY_LINKER_SCRIPT_NAME=$(call CY_MACRO_LINKER_CALC,$(CY_XMC_ARCH),$(DEVICE),$(CY_XMC_SUBSERIES),$(TOOLCHAIN)) -# Command for searching files in the template directory -CY_SEARCH_FILES_CMD=\ - -name "*$(CY_LINKER_SCRIPT_NAME).*" ################################################################################ # BSP generation @@ -296,10 +339,14 @@ CY_BSP_ARCH=$(call CY_XMC_ARCH_CAL,$(DEVICE_GEN)) CY_BSP_SUBSERIES=$(call CY_XMC_SUBSERIES_CALC,$(DEVICE_GEN)) # Linker script -CY_BSP_LINKER_SCRIPT=$(call CY_MACRO_LINKER_CALC,$(CY_BSP_ARCH),$(DEVICE_GEN),$(CY_BSP_SUBSERIES)) +# It's OK to hardcode GCC_ARM here. +# This variable is used to copy the linker script into new custom BSP. +# GCC, and GCC_ARM use the same linker script naming convention. +# For IAR, there are no linker script to copy since they are shipper with IAR workbench. +CY_BSP_LINKER_SCRIPT=$(call CY_MACRO_LINKER_CALC,$(CY_BSP_ARCH),$(DEVICE_GEN),$(CY_BSP_SUBSERIES),GCC_ARM) # Paths -CY_INFINEON_TEMPLATE_DIR=$(call CY_MACRO_DIR,$(firstword $(CY_DEVICESUPPORT_SEARCH_PATH)))/CMSIS/Infineon +CY_INFINEON_TEMPLATE_DIR=$(CY_CONDITIONAL_DEVICESUPPORT_PATH)/CMSIS/Infineon CY_TEMPLATES_DIR=$(CY_INFINEON_TEMPLATE_DIR)/COMPONENT_$(CY_XMC_SUBSERIES)/Source CY_BSP_TEMPLATES_DIR=$(CY_INFINEON_TEMPLATE_DIR)/COMPONENT_$(CY_BSP_SUBSERIES)/Source CY_BSP_DESTINATION_ABSOLUTE=$(abspath $(CY_TARGET_GEN_DIR)) @@ -309,19 +356,21 @@ CY_BSP_TEMPLATES_CMD=echo "Could not locate template linker scripts and startup endif # Command for searching files in the template directory -CY_BSP_SEARCH_FILES_CMD=-name "*$(CY_BSP_LINKER_SCRIPT).*" +CY_BSP_SEARCH_FILES_CMD=-name "*$(CY_BSP_LINKER_SCRIPT)*.*" ifneq ($(CY_BSP_LINKER_SCRIPT),$(CY_LINKER_SCRIPT_NAME)) -CY_SEARCH_FILES_CMD=-name "*$(CY_LINKER_SCRIPT_NAME).*" +CY_SEARCH_FILES_CMD=-name "*$(CY_LINKER_SCRIPT_NAME)*.*" else CY_SEARCH_FILES_CMD= endif # Paths used in program/debug ifeq ($(CY_DEVICESUPPORT_PATH),) -CY_OPENOCD_SVD_PATH?=$(dir $(firstword $(CY_DEVICESUPPORT_SEARCH_PATH)))CMSIS/Infineon/SVD/$(CY_XMC_SERIES).svd +CY_ECLIPSE_OPENOCD_SVD_PATH?=$$\{cy_prj_path\}/$(dir $(firstword $(CY_DEVICESUPPORT_SEARCH_PATH)))CMSIS/Infineon/SVD/$(CY_XMC_SERIES).svd +CY_VSCODE_OPENOCD_SVD_PATH?=$(dir $(firstword $(CY_DEVICESUPPORT_SEARCH_PATH)))CMSIS/Infineon/SVD/$(CY_XMC_SERIES).svd else -CY_OPENOCD_SVD_PATH?=$(CY_INTERNAL_DEVICESUPPORT_PATH)/CMSIS/Infineon/SVD/$(CY_XMC_SERIES).svd +CY_ECLIPSE_OPENOCD_SVD_PATH?=$$\{cy_prj_path\}/$(CY_DEVICESUPPORT_PATH)/CMSIS/Infineon/SVD/$(CY_XMC_SERIES).svd +CY_VSCODE_OPENOCD_SVD_PATH?=$(CY_DEVICESUPPORT_PATH)/CMSIS/Infineon/SVD/$(CY_XMC_SERIES).svd endif @@ -347,18 +396,24 @@ CY_CMSIS_ARCH_NAME=XMC1000_DFP else ifeq ($(CY_XMC_ARCH),XMC4) CY_CMSIS_ARCH_NAME=XMC4000_DFP endif +CY_CMSIS_VENDOR_NAME?=Infineon +CY_CMSIS_VENDOR_ID?=7 +# pName is optional in the DFP and cprj. But they must match. +# pName is not specified in the XMC dfp, so we have to also not specify in the generated cprj file. +# If we specified the pName, the generated cprj file will not work. +CY_CMSIS_SPECIFY_CORE=0 ################################################################################ # Tools specifics ################################################################################ -CY_SUPPORTED_TOOL_TYPES=device-configurator +CY_SUPPORTED_TOOL_TYPES+=device-configurator ifneq (,$(findstring $(DEVICE),$(CY_DEVICES_WITH_DIE_XMC1100) $(CY_DEVICES_WITH_DIE_XMC1200) $(CY_DEVICES_WITH_DIE_XMC1300) $(CY_DEVICES_WITH_DIE_XMC1400))) CY_SUPPORTED_TOOL_TYPES+=online-simulator CY_OPEN_TYPE_LIST+=online-simulator -CY_OPEN_online_simulator_FILE_RAW="https://design.infineon.com/tinaui/designer.php?path=EXAMPLESROOT%7CINFINEON%7CApplications%7CIndustrial%7C&file=mcu_XMC1400_Boot_Kit_MTB_v2.tsc" +CY_OPEN_online_simulator_FILE_RAW="https://design.infineon.com/tinaui/designer.php?path=EXAMPLESROOT%7CINFINEON%7CApplications%7CIndustrial%7C&file=mcu_$(CY_XMC_SERIES)_Boot_Kit_MTB_v2.tsc" ifeq ($(OS),Windows_NT) # escape the & with ^& diff --git a/make/recipe/defines_common.mk b/make/recipe/defines_common.mk index 9a62744..ce0dbe9 100644 --- a/make/recipe/defines_common.mk +++ b/make/recipe/defines_common.mk @@ -6,7 +6,7 @@ # ################################################################################ # \copyright -# Copyright 2018-2020 Cypress Semiconductor Corporation +# Copyright 2018-2021 Cypress Semiconductor Corporation # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -31,65 +31,23 @@ endif ################################################################################ # Move old templates files from the old bsp to a file with .bak extension -CY_BACK_OLD_BSP_TEMPLATES_CMD=\ - if [ "$(CY_SEARCH_FILES_CMD)" != "" ]; then\ - if [ -d $(CY_TEMPLATES_DIR) ]; then \ - echo "Creating backup of old bsp linker scripts and startup files...";\ - pushd $(CY_TEMPLATES_DIR) 1> /dev/null;\ - $(CY_FIND) . -type f \( $(CY_SEARCH_FILES_CMD) \) -exec bash -c\ - "if [[ -f $(CY_BSP_DESTINATION_ABSOLUTE)/'{}' ]]; then\ - echo \"Creating backup file $(CY_BSP_DESTINATION_ABSOLUTE)/{}.bak\";\ - mv $(CY_BSP_DESTINATION_ABSOLUTE)/{} $(CY_BSP_DESTINATION_ABSOLUTE)/{}.bak;\ - fi" \; ;\ - popd 1> /dev/null;\ - fi;\ - fi; +CY_BACK_OLD_BSP_TEMPLATES_CMD=$(CY_BASH) $(CY_INTERNAL_BASELIB_PATH)/make/scripts/backup_bsp_template.bash "$(CY_FIND)" "$(CY_TEMPLATES_DIR)" "$(CY_BSP_DESTINATION_ABSOLUTE)" "$(CY_SEARCH_FILES_CMD)"; # Command for copying linker scripts and starups (Note: this doesn't get expanded and used until "bsp" target) # The find commands cannot be condensed into a single find. # The find's exec command has a very small character limit, such that if they finds were condensed it would crash. -CY_BSP_TEMPLATES_CMD=\ - if [ -d $(CY_BSP_TEMPLATES_DIR) ]; then \ - echo "Populating $(CY_BSP_LINKER_SCRIPT) linker scripts and $(CY_BSP_STARTUP) startup files...";\ - pushd $(CY_BSP_TEMPLATES_DIR) 1> /dev/null;\ - $(CY_FIND) . -type d -exec mkdir -p $(CY_BSP_DESTINATION_ABSOLUTE)/'{}' \; ;\ - $(CY_FIND) . -type f \( $(CY_BSP_SEARCH_FILES_CMD) \) -exec bash -c\ - "if ! cmp -s '{}' $(CY_BSP_DESTINATION_ABSOLUTE)/'{}'; then\ - if [[ -f $(CY_BSP_DESTINATION_ABSOLUTE)/'{}' && $(CY_INTERNAL_BSP_TARGET_CREATE_BACK_UP) == true ]]; then\ - echo \"Creating backup file $(CY_BSP_DESTINATION_ABSOLUTE)/{}.bak\";\ - fi;\ - fi" \; ;\ - $(CY_FIND) . -type f \( $(CY_BSP_SEARCH_FILES_CMD) \) -exec bash -c\ - "if ! cmp -s '{}' $(CY_BSP_DESTINATION_ABSOLUTE)/'{}'; then\ - if [[ -f $(CY_BSP_DESTINATION_ABSOLUTE)/'{}' && $(CY_INTERNAL_BSP_TARGET_CREATE_BACK_UP) == true ]]; then\ - cp -p $(CY_BSP_DESTINATION_ABSOLUTE)/'{}' $(CY_BSP_DESTINATION_ABSOLUTE)/'{}'.bak;\ - fi;\ - fi" \; ;\ - $(CY_FIND) . -type f \( $(CY_BSP_SEARCH_FILES_CMD) \) -exec bash -c\ - "if ! cmp -s '{}' $(CY_BSP_DESTINATION_ABSOLUTE)/'{}'; then\ - cp -p '{}' $(CY_BSP_DESTINATION_ABSOLUTE)/'{}';\ - fi" \; ;\ - popd 1> /dev/null;\ - else \ - echo "Could not locate template linker scripts and startup files. Skipping update...";\ - fi; +CY_BSP_TEMPLATES_CMD=$(CY_BASH) $(CY_INTERNAL_BASELIB_PATH)/make/scripts/copy_bsp_template.bash "$(CY_FIND)" "$(CY_BSP_TEMPLATES_DIR)" "$(CY_BSP_DESTINATION_ABSOLUTE)" "$(CY_BSP_SEARCH_FILES_CMD)" "$(CY_BSP_LINKER_SCRIPT)" "$(CY_BSP_STARTUP)" "$(CY_INTERNAL_BSP_TARGET_CREATE_BACK_UP)"; # Command for updating the device(s) (Note: this doesn't get expanded and used until "bsp" target) -CY_BSP_DEVICES_CMD=\ - designFile=$$($(CY_FIND) $(CY_TARGET_GEN_DIR) -name *.modus);\ - if [[ $$designFile ]]; then\ - echo "Running device-configurator for $(DEVICE_GEN)...";\ - $(CY_CONFIG_MODUS_EXEC)\ - $(CY_CONFIG_LIBFILE)\ - --build $$designFile\ - --set-device=$(subst $(CY_SPACE),$(CY_COMMA),$(DEVICE_GEN) $(ADDITIONAL_DEVICES));\ - cfgStatus=$$(echo $$?);\ - if [ $$cfgStatus != 0 ]; then echo "ERROR: Device-configuration failed for $$designFile"; exit $$cfgStatus; fi;\ - else\ - echo "Could not detect .modus file. Skipping update...";\ - fi; +CY_BSP_DEVICES_CMD=$(CY_BASH) $(CY_INTERNAL_BASELIB_PATH)/make/scripts/run_bsp_device_configurator.bash "$(CY_FIND)" "$(CY_TARGET_GEN_DIR)" "$(DEVICE_GEN)" "$(ADDITIONAL_DEVICES)" "$(CY_CONFIG_MODUS_EXEC)" "$(CY_CONFIG_LIBFILE)"; +ifneq ($(CY_QSPI_FLM_DIR),) +CY_BSP_UPDATE_FLASH_LOADER_CMD=$(if $(wildcard $(CY_OPEN_qspi_configurator_OUTPUT_DIR)/*.$(CY_OPEN_qspi_configurator_EXT)),\ + $(CY_INTERNAL_TOOLS)/$(CY_TOOL_qspi-configurator-cli_EXE) --config $(wildcard $(CY_OPEN_qspi_configurator_OUTPUT_DIR)/*.$(CY_OPEN_qspi_configurator_EXT)) --flashloader-dir $(CY_QSPI_FLM_DIR),); +else +CY_BSP_UPDATE_FLASH_LOADER_CMD= +endif ################################################################################ # Paths @@ -104,6 +62,13 @@ CY_SYM_FILE?=\$$\{cy_prj_path\}/$(notdir $(CY_INTERNAL_BUILD_LOC))/$(TARGET)/$(C CY_PROG_FILE?=\$$\{cy_prj_path\}/$(notdir $(CY_INTERNAL_BUILD_LOC))/$(TARGET)/$(CONFIG)/$(APPNAME).$(CY_TOOLCHAIN_SUFFIX_PROGRAM) endif +# Search for device support path only when CY_DEVICESUPPORT_PATH is not defined otherwise use CY_INTERNAL_DEVICESUPPORT_PATH +ifeq ($(CY_DEVICESUPPORT_PATH),) +CY_CONDITIONAL_DEVICESUPPORT_PATH:=$(call CY_MACRO_DIR,$(firstword $(CY_DEVICESUPPORT_SEARCH_PATH))) +else +CY_CONDITIONAL_DEVICESUPPORT_PATH:=$(firstword $(CY_INTERNAL_DEVICESUPPORT_PATH)) +endif + ################################################################################ # IDE specifics @@ -115,7 +80,7 @@ CY_ECLIPSE_ARGS+="s|&&CY_OPENOCD_CFG&&|$(CY_OPENOCD_DEVICE_CFG)|g;"\ "s|&&CY_OPENOCD_CHIP&&|$(CY_OPENOCD_CHIP_NAME)|g;"\ "s|&&CY_APPNAME&&|$(CY_IDE_PRJNAME)|;"\ "s|&&CY_CONFIG&&|$(CONFIG)|;"\ - "s|&&CY_SVD_PATH&&|$(CY_OPENOCD_SVD_PATH)|g;"\ + "s|&&CY_SVD_PATH&&|$(CY_ECLIPSE_OPENOCD_SVD_PATH)|g;"\ "s|&&CY_SYM_FILE&&|$(CY_SYM_FILE)|;"\ "s|&&CY_PROG_FILE&&|$(CY_PROG_FILE)|;"\ "s|&&CY_ECLIPSE_GDB&&|$(CY_ECLIPSE_GDB)|g;" @@ -138,10 +103,14 @@ endif CY_C_FLAGS=$(subst $(CY_SPACE),\"$(CY_COMMA)$(CY_NEWLINE_MARKER)\",$(strip $(CY_RECIPE_CFLAGS))) +ifeq ($(CY_ATTACH_SERVER_TYPE),) +CY_ATTACH_SERVER_TYPE=openocd +endif + CY_VSCODE_ARGS+="s|&&CY_ELF_FILE&&|$(CY_ELF_FILE)|g;"\ "s|&&CY_HEX_FILE&&|$(CY_HEX_FILE)|g;"\ "s|&&CY_OPEN_OCD_FILE&&|$(CY_OPENOCD_DEVICE_CFG)|g;"\ - "s|&&CY_SVD_FILE_NAME&&|$(CY_OPENOCD_SVD_PATH)|g;"\ + "s|&&CY_SVD_FILE_NAME&&|$(CY_VSCODE_OPENOCD_SVD_PATH)|g;"\ "s|&&CY_MTB_PATH&&|$(CY_TOOLS_DIR)|g;"\ "s|&&CY_TOOL_CHAIN_DIRECTORY&&|$(subst ",,$(CY_CROSSPATH))|g;"\ "s|&&CY_C_FLAGS&&|$(CY_C_FLAGS)|g;"\ @@ -151,7 +120,8 @@ CY_VSCODE_ARGS+="s|&&CY_ELF_FILE&&|$(CY_ELF_FILE)|g;"\ "s|&&CY_CDB_FILE&&|$(CY_CDB_FILE)|g;"\ "s|&&CY_CONFIG&&|$(CONFIG)|g;"\ "s|&&CY_DEVICE_ATTACH&&|$(CY_JLINK_DEVICE_CFG_ATTACH)|g;"\ - "s|&&CY_MODUS_SHELL_BASE&&|$(CY_TOOL_modus-shell_BASE)|g;" + "s|&&CY_MODUS_SHELL_BASE&&|$(CY_TOOL_modus-shell_BASE)|g;"\ + "s|&&CY_ATTACH_SERVER_TYPE&&|$(CY_ATTACH_SERVER_TYPE)|g;" ifeq ($(CY_USE_CUSTOM_GCC),true) CY_VSCODE_ARGS+="s|&&CY_GCC_BIN_DIR&&|$(CY_INTERNAL_TOOL_gcc_BASE)/bin|g;"\ @@ -175,10 +145,6 @@ ifneq ($(filter $(CY_BT_ENABLED_DEVICE_COMPONENTS),$(COMPONENTS)),) CY_SUPPORTED_TOOL_TYPES+=bt-configurator CY_OPEN_bt_configurator_DEVICE=--device 43xxx endif -ifneq (,$(findstring $(DEVICE),$(CY_DEVICES_WITH_BLE))) -CY_SUPPORTED_TOOL_TYPES+=bt-configurator -CY_OPEN_bt_configurator_DEVICE=--device PSoC6 -endif ifneq (,$(findstring $(DEVICE),$(CY_DEVICES_WITH_FS_USB))) CY_SUPPORTED_TOOL_TYPES+=usbdev-configurator diff --git a/make/recipe/program.mk b/make/recipe/program.mk index 948c36d..18a8215 100644 --- a/make/recipe/program.mk +++ b/make/recipe/program.mk @@ -7,7 +7,7 @@ # ################################################################################ # \copyright -# Copyright 2018-2020 Cypress Semiconductor Corporation +# Copyright 2018-2021 Cypress Semiconductor Corporation # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -28,12 +28,12 @@ $(info Processing $(lastword $(MAKEFILE_LIST))) endif program: - $(call CY_MACRO_ERROR,CLI program is not supported for current device. Use IDE for program purpose) + $(call CY_MACRO_ERROR,CLI program is not supported for the current device. Use IDE for program purpose) qprogram: - $(call CY_MACRO_ERROR,CLI program is not supported for current device. Use IDE for program purpose) + $(call CY_MACRO_ERROR,CLI program is not supported for the current device. Use IDE for program purpose) debug: - $(call CY_MACRO_ERROR,CLI program is not supported for current device. Use IDE for debug) + $(call CY_MACRO_ERROR,CLI program is not supported for the current device. Use IDE for debug) qdebug: - $(call CY_MACRO_ERROR,CLI program is not supported for current device. Use IDE for debug) + $(call CY_MACRO_ERROR,CLI program is not supported for the current device. Use IDE for debug) attach: - $(call CY_MACRO_ERROR,CLI program is not supported for current device. Use IDE for debug) \ No newline at end of file + $(call CY_MACRO_ERROR,CLI program is not supported for the current device. Use IDE for debug) diff --git a/make/recipe/recipe.mk b/make/recipe/recipe.mk index 556653a..f4041c5 100644 --- a/make/recipe/recipe.mk +++ b/make/recipe/recipe.mk @@ -7,7 +7,7 @@ # ################################################################################ # \copyright -# Copyright 2018-2020 Cypress Semiconductor Corporation +# Copyright 2018-2021 Cypress Semiconductor Corporation # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -33,9 +33,16 @@ include $(CY_INTERNAL_BASELIB_PATH)/make/recipe/recipe_common.mk # linker script construction # ifeq ($(LINKER_SCRIPT),) -LINKER_SCRIPT=$(CY_TARGET_DIR)/TOOLCHAIN_$(TOOLCHAIN)/$(CY_LINKER_SCRIPT_NAME).$(CY_TOOLCHAIN_SUFFIX_LS) +ifeq (IAR,$(TOOLCHAIN)) +# IAR linker script are shipped with IAR embedded workbench +# Remove quotes from path and escape spaces. Spaces can already be escaped. +LINKER_SCRIPT=$(call CY_MACRO_GET_PATH_W_ESCAPED_SPACES,$(CY_COMPILER_IAR_DIR)/config/linker/Infineon/$(CY_LINKER_SCRIPT_NAME).$(CY_TOOLCHAIN_SUFFIX_LS)) +# IAR default install contains spaces with doesn't work well with make. Skip the wildcard check. +else +# Remove quotes from path and escape spaces. Spaces can already be escaped. +LINKER_SCRIPT=$(call CY_MACRO_GET_PATH_W_ESCAPED_SPACES,$(CY_TARGET_DIR)/TOOLCHAIN_$(TOOLCHAIN)/$(CY_LINKER_SCRIPT_NAME).$(CY_TOOLCHAIN_SUFFIX_LS)) +endif endif - ifeq ($(wildcard $(LINKER_SCRIPT)),) $(call CY_MACRO_ERROR,The specified linker script could not be found at "$(LINKER_SCRIPT)") @@ -44,7 +51,8 @@ endif ifeq ($(TOOLCHAIN),A_Clang) include $(LINKER_SCRIPT) else -CY_RECIPE_LSFLAG=$(CY_TOOLCHAIN_LSFLAGS)$(LINKER_SCRIPT) +# Quote linker script path and remove escape from spaces +CY_RECIPE_LSFLAG=$(CY_TOOLCHAIN_LSFLAGS)"$(call CY_MACRO_GET_RAW_PATH,$(LINKER_SCRIPT))" endif # Aclang arguments must match the symbols in the PDL makefile @@ -53,3 +61,8 @@ CY_RECIPE_ACLANG_POSTBUILD=\ --verbose --vect $(VECT_BASE_CM0P) --text $(TEXT_BASE_CM0P) --data $(RAM_BASE_CM0P) --size $(TEXT_SIZE_CM0P)\ $(CY_CONFIG_DIR)/$(APPNAME).mach_o\ $(CY_CONFIG_DIR)/$(APPNAME).bin + +progtool: + $(call CY_MACRO_ERROR,make progtool is not supported for the current device.) + +.PHONY: progtool diff --git a/make/recipe/recipe_common.mk b/make/recipe/recipe_common.mk index 7bcddad..74ed95b 100644 --- a/make/recipe/recipe_common.mk +++ b/make/recipe/recipe_common.mk @@ -6,7 +6,7 @@ # ################################################################################ # \copyright -# Copyright 2018-2020 Cypress Semiconductor Corporation +# Copyright 2018-2021 Cypress Semiconductor Corporation # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -75,7 +75,8 @@ CY_RECIPE_DEFINES=\ -DCY_TARGET_BOARD=$(subst -,_,$(TARGET))\ $(foreach feature,$(CY_COMPONENT_LIST),-DCOMPONENT_$(subst -,_,$(feature)))\ $(CY_TOOLCHAIN_DEBUG_FLAG)\ - $(CY_TOOLCHAIN_DEFINES) + $(CY_TOOLCHAIN_DEFINES)\ + -DCY_SUPPORTS_DEVICE_VALIDATION # # Includes construction @@ -151,6 +152,22 @@ endif endif +# +# Paths construction helper macroses +# + +# +# Get unquoted path with escaped spaces +# $(1) : path for which quotes and escapes should be removed but spaces should be escaped +# +CY_MACRO_GET_PATH_W_ESCAPED_SPACES=$(subst ",,$(subst $(CY_SPACE),\$(CY_SPACE),$(subst \,,$(1)))) + +# +# Get unquoted path without escaped symbols +# $(1) : path for which quotes and escapes should be removed +# +CY_MACRO_GET_RAW_PATH=$(subst ",,$(subst \,,$(1))) + ################################################################################ # Memory Consumption diff --git a/make/scripts/backup_bsp_template.bash b/make/scripts/backup_bsp_template.bash new file mode 100755 index 0000000..edd6c5e --- /dev/null +++ b/make/scripts/backup_bsp_template.bash @@ -0,0 +1,71 @@ +#!/bin/bash +(set -o igncr) 2>/dev/null && set -o igncr +set -$-e${DEBUG+xv} +set -o errtrace + +####################################################################################################################### +# Create a .bak copy of linker script and startup file in custom bsp when calling update bsp and changing device +# Usage: backup_bsp_template.bash +####################################################################################################################### + +# this function is called just before a script exits (for any reason). It's given the scripts exit code. +# E.g., if there is a failure due to "set -e" this function will still be called. +trap_exit() { + # this is the return code the main part of the script want to return + local result=$? + + # turn off the EXIT trap + trap - EXIT + + # Print WARNING messages if they occur + echo + if [[ ${#WARNING_MESSAGES[@]} -ne 0 ]]; then + echo ============================================================================== + for line in "${WARNING_MESSAGES[@]}"; do + echo "$line" + done + echo + fi + + if [ "$result" != 0 ]; then + echo ============================================================================== + echo "--ABORTING--" + echo "Script : $0" + echo "Bash path : $BASH" + echo "Bash version: $BASH_VERSION" + echo "Exit code : $result" + echo "Call stack : ${FUNCNAME[*]}" + fi + exit $result +} + +trap "trap_exit" EXIT + +CY_FIND=$1 +CY_TEMPLATES_DIR=$2 +CY_BSP_DESTINATION_ABSOLUTE=$3 +CY_SEARCH_FILES_CMD=( $4 ) + +if [ "$CY_SEARCH_FILES_CMD" != "" ]; then + if [ -d "$CY_TEMPLATES_DIR" ]; then + echo "Creating backup of old bsp linker scripts and startup files..." + pushd $CY_TEMPLATES_DIR 1> /dev/null + + CY_FIND_BSP_FILES_RESULT=$($CY_FIND . -type f "${CY_SEARCH_FILES_CMD[@]}") + for old_file in $CY_FIND_BSP_FILES_RESULT + do + if [[ $old_file == *"_ac"?".sct" ]]; then + old_file_name_wo_suffix=$(echo $old_file | sed s/_ac[0-9]\.sct/\.sct/g) + else + old_file_name_wo_suffix=$old_file + fi + + if [[ -f $CY_BSP_DESTINATION_ABSOLUTE/$old_file_name_wo_suffix ]]; then + echo "Creating backup file $CY_BSP_DESTINATION_ABSOLUTE/$old_file_name_wo_suffix.bak" + mv $CY_BSP_DESTINATION_ABSOLUTE/$old_file_name_wo_suffix $CY_BSP_DESTINATION_ABSOLUTE/$old_file_name_wo_suffix.bak + fi + done + + popd 1> /dev/null;\ + fi;\ +fi; diff --git a/make/scripts/copy_bsp_template.bash b/make/scripts/copy_bsp_template.bash new file mode 100755 index 0000000..8560a1b --- /dev/null +++ b/make/scripts/copy_bsp_template.bash @@ -0,0 +1,89 @@ +#!/bin/bash +(set -o igncr) 2>/dev/null && set -o igncr +set -$-e${DEBUG+xv} +set -o errtrace + +####################################################################################################################### +# Create a copy of an original linker script and startup file. If a linker script or a startup file exists and differs +# from an original one then create a .bak copy of an existing linker script or a startup file in custom BSP. +# The script is executed when creating a new custom BSP, updating the existing custom BSP, and changing the device. +# Usage: copy_bsp_template.bash +####################################################################################################################### + +# this function is called just before a script exits (for any reason). It's given the scripts exit code. +# E.g., if there is a failure due to "set -e" this function will still be called. +trap_exit() { + # this is the return code the main part of the script want to return + local result=$? + + # turn off the EXIT trap + trap - EXIT + + # Print WARNING messages if they occur + echo + if [[ ${#WARNING_MESSAGES[@]} -ne 0 ]]; then + echo ============================================================================== + for line in "${WARNING_MESSAGES[@]}"; do + echo "$line" + done + echo + fi + + if [ "$result" != 0 ]; then + echo ============================================================================== + echo "--ABORTING--" + echo "Script : $0" + echo "Bash path : $BASH" + echo "Bash version: $BASH_VERSION" + echo "Exit code : $result" + echo "Call stack : ${FUNCNAME[*]}" + fi + exit $result +} + +trap "trap_exit" EXIT + +CY_FIND=$1 +CY_BSP_TEMPLATES_DIR=$2 +CY_BSP_DESTINATION_ABSOLUTE=$3 +CY_BSP_SEARCH_FILES_CMD=( $4 ) +CY_BSP_LINKER_SCRIPT=$5 +CY_BSP_STARTUP=$6 +CY_INTERNAL_BSP_TARGET_CREATE_BACK_UP=$7 + +if [ -d "$CY_BSP_TEMPLATES_DIR" ]; then + echo "Populating $CY_BSP_LINKER_SCRIPT linker scripts and $CY_BSP_STARTUP startup files..." + pushd $CY_BSP_TEMPLATES_DIR 1> /dev/null + + CY_FIND_BSP_DIRECTORY_RESULT=$($CY_FIND . -type d) + for bsp_dir in $CY_FIND_BSP_DIRECTORY_RESULT + do + mkdir -p $CY_BSP_DESTINATION_ABSOLUTE/$bsp_dir + done + + CY_FIND_BSP_FILES_RESULT=$($CY_FIND . -type f "${CY_BSP_SEARCH_FILES_CMD[@]}") + for bsp_file in $CY_FIND_BSP_FILES_RESULT + do + if [[ $bsp_file == *"_ac"?".sct" ]]; then + bsp_file_name_wo_suffix=$(echo $bsp_file | sed s/_ac[0-9]\.sct/\.sct/g) + else + bsp_file_name_wo_suffix=$bsp_file + fi + + if ! cmp -s $bsp_file $CY_BSP_DESTINATION_ABSOLUTE/$bsp_file_name_wo_suffix; then + # Process all linker scripts but the one ending with "_ac5.sct" + if [[ $bsp_file != *"_ac5.sct" ]]; then + if [[ -f $CY_BSP_DESTINATION_ABSOLUTE/$bsp_file_name_wo_suffix && $CY_INTERNAL_BSP_TARGET_CREATE_BACK_UP == true ]]; then + echo "Creating backup file $CY_BSP_DESTINATION_ABSOLUTE/$bsp_file_name_wo_suffix.bak" + cp -p $CY_BSP_DESTINATION_ABSOLUTE/$bsp_file_name_wo_suffix $CY_BSP_DESTINATION_ABSOLUTE/$bsp_file_name_wo_suffix.bak + fi + + cp -p $bsp_file $CY_BSP_DESTINATION_ABSOLUTE/$bsp_file_name_wo_suffix + fi + fi + done + + popd 1> /dev/null +else + echo "Could not locate template linker scripts and startup files. Skipping update..." +fi diff --git a/make/scripts/run_bsp_device_configurator.bash b/make/scripts/run_bsp_device_configurator.bash new file mode 100644 index 0000000..fdb7a20 --- /dev/null +++ b/make/scripts/run_bsp_device_configurator.bash @@ -0,0 +1,64 @@ +#!/bin/bash +(set -o igncr) 2>/dev/null && set -o igncr +set -$-e${DEBUG+xv} +set -o errtrace + +####################################################################################################################### +# Run device-configurator on the generated bsp's design.modus file to generate code and update the device. +# Usage: run_bsp_device_configurator.bash +####################################################################################################################### + +# this function is called just before a script exits (for any reason). It's given the scripts exit code. +# E.g., if there is a failure due to "set -e" this function will still be called. +trap_exit() { + # this is the return code the main part of the script want to return + local result=$? + + # turn off the EXIT trap + trap - EXIT + + # Print WARNING messages if they occur + echo + if [[ ${#WARNING_MESSAGES[@]} -ne 0 ]]; then + echo ============================================================================== + for line in "${WARNING_MESSAGES[@]}"; do + echo "$line" + done + echo + fi + + if [ "$result" != 0 ]; then + echo ============================================================================== + echo "--ABORTING--" + echo "Script : $0" + echo "Bash path : $BASH" + echo "Bash version: $BASH_VERSION" + echo "Exit code : $result" + echo "Call stack : ${FUNCNAME[*]}" + fi + exit $result +} + +trap "trap_exit" EXIT + +CY_FIND=$1 +CY_TARGET_GEN_DIR=$2 +DEVICE_GEN=$3 +ADDITIONAL_DEVICES=$4 +CY_CONFIG_MODUS_EXEC=$5 +CY_CONFIG_LIBFILE=$6 + +designFile=$($CY_FIND $CY_TARGET_GEN_DIR -name *.modus) +if [[ $designFile ]]; then + echo "Running device-configurator for $DEVICE_GEN..." + set +e + $CY_CONFIG_MODUS_EXEC $CY_CONFIG_LIBFILE --build $designFile --set-device=$DEVICE_GEN,$ADDITIONAL_DEVICES + cfgStatus=$? + set -e + if [ $cfgStatus != 0 ]; then + echo "ERROR: Device-configuration failed for $designFile" + exit $cfgStatus + fi; +else + echo "Could not detect .modus file. Skipping update..." +fi; \ No newline at end of file diff --git a/make/scripts/vscode/launch.json b/make/scripts/vscode/launch.json index f83f657..d5b509c 100644 --- a/make/scripts/vscode/launch.json +++ b/make/scripts/vscode/launch.json @@ -43,6 +43,7 @@ "demangle": true, // svdFile is optional, it can be very large. "svdFile": "&&CY_SVD_FILE_NAME&&", + "breakAfterReset": true, "runToMain": true, // if true, program will halt at main. Not used for a restart "preLaunchTask": "Build: Build [&&CY_CONFIG&&]", // Set this to run a task from tasks.json before // starting a debug session @@ -63,6 +64,7 @@ "demangle": true, // svdFile is optional, it can be very large. "svdFile": "&&CY_SVD_FILE_NAME&&", + "breakAfterReset": true, "showDevDebugOutput": false // When set to true, displays output of GDB. // This is helpful when something is not working right }, diff --git a/make/toolchains/ARM.mk b/make/toolchains/ARM.mk index 77b5057..1335192 100644 --- a/make/toolchains/ARM.mk +++ b/make/toolchains/ARM.mk @@ -6,7 +6,7 @@ # ################################################################################ # \copyright -# Copyright 2018-2020 Cypress Semiconductor Corporation +# Copyright 2018-2021 Cypress Semiconductor Corporation # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/make/toolchains/GCC_ARM.mk b/make/toolchains/GCC_ARM.mk index 7a7fac0..fe67c9f 100644 --- a/make/toolchains/GCC_ARM.mk +++ b/make/toolchains/GCC_ARM.mk @@ -6,7 +6,7 @@ # ################################################################################ # \copyright -# Copyright 2018-2020 Cypress Semiconductor Corporation +# Copyright 2018-2021 Cypress Semiconductor Corporation # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/make/toolchains/IAR.mk b/make/toolchains/IAR.mk index 2818e89..f3ddc3f 100644 --- a/make/toolchains/IAR.mk +++ b/make/toolchains/IAR.mk @@ -6,7 +6,7 @@ # ################################################################################ # \copyright -# Copyright 2018-2020 Cypress Semiconductor Corporation +# Copyright 2018-2021 Cypress Semiconductor Corporation # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -47,19 +47,20 @@ CY_MACRO_ELF2BIN=$(CY_TOOLCHAIN_ELF2BIN) -O binary $1 $2 # The base path to the IAR cross compilation executables # ifeq ($(CY_COMPILER_PATH),) -CY_CROSSPATH=$(CY_COMPILER_IAR_DIR) +# Remove quotes and escapes from the path +CY_CROSSPATH=$(call CY_MACRO_GET_RAW_PATH,$(CY_COMPILER_IAR_DIR)) else -CY_CROSSPATH=$(CY_COMPILER_PATH) +CY_CROSSPATH=$(call CY_MACRO_GET_RAW_PATH,$(CY_COMPILER_PATH)) endif # # Build tools # -CC=$(CY_CROSSPATH)/bin/iccarm +CC="$(CY_CROSSPATH)/bin/iccarm" CXX=$(CC) -AS=$(CY_CROSSPATH)/bin/iasmarm -AR=$(CY_CROSSPATH)/bin/iarchive -LD=$(CY_CROSSPATH)/bin/ilinkarm +AS="$(CY_CROSSPATH)/bin/iasmarm" +AR="$(CY_CROSSPATH)/bin/iarchive" +LD="$(CY_CROSSPATH)/bin/ilinkarm" # # Elf to bin conversion tool diff --git a/make/udd/features.mk b/make/udd/features.mk index a834a01..ac3c5a1 100644 --- a/make/udd/features.mk +++ b/make/udd/features.mk @@ -53,13 +53,15 @@ CY_DEVICES_WITH_DIE_XMC1400=XMC1401-Q048x0064 XMC1401-Q048x0128 XMC1401-F064x006 XMC1404-Q048x0064 XMC1404-Q048x0128 XMC1404-Q048x0200 XMC1404-Q064x0064 XMC1404-Q064x0128 XMC1404-Q064x0200 \ XMC1404-F064x0064 XMC1404-F064x0128 XMC1404-F064x0200 CY_DEVICES_WITH_DIE_XMC4200=XMC4200-F64x256 XMC4200-Q48x256 -CY_DEVICES_WITH_DIE_XMC4100=XMC4100-F64x128 XMC4100-Q48x128 XMC4104-F64x64 XMC4104-Q48x64 XMC4104-F64x128 \ - XMC4104-Q48x128 XMC4108-F64x64 XMC4108-Q48x64 +CY_DEVICES_WITH_DIE_XMC4100=XMC4100-F64x128 XMC4100-Q48x128 +CY_DEVICES_WITH_DIE_XMC4104=XMC4104-F64x64 XMC4104-Q48x64 XMC4104-F64x128 XMC4104-Q48x128 +CY_DEVICES_WITH_DIE_XMC4108=XMC4108-F64x64 XMC4108-Q48x64 CY_DEVICES_WITH_DIE_XMC4300=XMC4300-F100x256 -CY_DEVICES_WITH_DIE_XMC4400=XMC4400-F100x512 XMC4400-F64x512 XMC4400-F100x256 XMC4400-F64x256 XMC4402-F100x256 \ - XMC4402-F64x256 -CY_DEVICES_WITH_DIE_XMC4500=XMC4500-E144x1024 XMC4500-F144x1024 XMC4500-F100x1024 XMC4500-F144x768 XMC4500-F100x768 \ - XMC4502-F100x768 XMC4504-F144x512 XMC4504-F100x512 +CY_DEVICES_WITH_DIE_XMC4400=XMC4400-F100x512 XMC4400-F64x512 XMC4400-F100x256 XMC4400-F64x256 +CY_DEVICES_WITH_DIE_XMC4402=XMC4402-F100x256 XMC4402-F64x256 +CY_DEVICES_WITH_DIE_XMC4500=XMC4500-E144x1024 XMC4500-F144x1024 XMC4500-F100x1024 XMC4500-F144x768 XMC4500-F100x768 +CY_DEVICES_WITH_DIE_XMC4502=XMC4502-F100x768 +CY_DEVICES_WITH_DIE_XMC4504=XMC4504-F144x512 XMC4504-F100x512 CY_DEVICES_WITH_DIE_XMC4700=XMC4700-E196x2048 XMC4700-F144x2048 XMC4700-F100x2048 XMC4700-E196x1536 \ XMC4700-F144x1536 XMC4700-F100x1536 CY_DEVICES_WITH_DIE_XMC4800=XMC4800-E196x2048 XMC4800-F144x2048 XMC4800-F100x2048 XMC4800-E196x1536 \ diff --git a/version.xml b/version.xml index 1bba7e8..d3d66fd 100644 --- a/version.xml +++ b/version.xml @@ -1 +1 @@ -1.1.0.1056 +1.2.0.2249