From edb0d46ad6fb8d6e4869ee9d2d5dda43699466fb Mon Sep 17 00:00:00 2001 From: Matthew GONG Date: Sun, 30 May 2021 00:31:25 +0800 Subject: [PATCH] custom target and toolchain for B3_AP --- B3_AP_ert_target/B3_AP_ert_target.tlc | 90 ++++++++ B3_AP_ert_target/B3_AP_ert_target.tmf | 298 ++++++++++++++++++++++++++ B3_AP_ert_target/armcc_tc.m | 183 ++++++++++++++++ B3_AP_ert_target/armcc_win_tc.mat | Bin 0 -> 13558 bytes B3_AP_ert_target/rtwTargetInfo.m | 22 ++ 5 files changed, 593 insertions(+) create mode 100644 B3_AP_ert_target/B3_AP_ert_target.tlc create mode 100644 B3_AP_ert_target/B3_AP_ert_target.tmf create mode 100644 B3_AP_ert_target/armcc_tc.m create mode 100644 B3_AP_ert_target/armcc_win_tc.mat create mode 100644 B3_AP_ert_target/rtwTargetInfo.m diff --git a/B3_AP_ert_target/B3_AP_ert_target.tlc b/B3_AP_ert_target/B3_AP_ert_target.tlc new file mode 100644 index 0000000..ddcd6d5 --- /dev/null +++ b/B3_AP_ert_target/B3_AP_ert_target.tlc @@ -0,0 +1,90 @@ +%% SYSTLC: B3-AP ERT-based Target TMF: B3_AP_ert_target.tmf MAKE: make_rtw \ +%% EXTMODE: no_ext_comm +%% +%selectfile NULL_FILE + +%assign CodeFormat = "Embedded-C" + +%assign TargetType = "RT" +%assign Language = "C" +%if !EXISTS("AutoBuildProcedure") + %if EXISTS("GenerateSampleERTMain") + %assign AutoBuildProcedure = !GenerateSampleERTMain + %else + %% This is for the targets that use ert.tlc and are required to work + %% without Embedded Coder. This is to enable auto build procedure since + %% the GenerateSampleERTMain is always set to true for these targets. + %assign AutoBuildProcedure = TLC_TRUE + %endif +%endif + +%% The model_SetEventsForThisBaseRate function is not required for the +%% VxWorks environment, i.e., when using an operating system. +%assign SuppressSetEventsForThisBaseRateFcn = (TargetOS == "VxWorksExample") +%if !EXISTS("InlineSetEventsForThisBaseRateFcn") + %assign InlineSetEventsForThisBaseRateFcn = TLC_TRUE +%endif +%if !EXISTS("SuppressMultiTaskScheduler") + %assign SuppressMultiTaskScheduler = TLC_TRUE +%endif + +%assign TargetRegistMutexOp = 1 +%assign TargetRegistSynchroOp = 1 + +%include "codegenentry.tlc" + +%% The contents between 'BEGIN_RTW_OPTIONS' and 'END_RTW_OPTIONS' in this file +%% are used to maintain backward compatibility to R13 and preR13 custom target +%% file only. If you want to use this file as a template to develop your +%% own system target file, you need to remove the 'CONFIGSET_TARGET_COMPONENT' +%% section at the end of this file. +%% +/% + BEGIN_RTW_OPTIONS + + rtwoptions(1).prompt = 'My Target Options'; + rtwoptions(1).type = 'Category'; + rtwoptions(1).enable = 'on'; + rtwoptions(1).default = 3; % number of items under this category + % excluding this one. + rtwoptions(1).popupstrings = ''; + rtwoptions(1).tlcvariable = ''; + rtwoptions(1).tooltip = ''; + rtwoptions(1).callback = ''; + rtwoptions(1).makevariable = ''; + + rtwoptions(2).prompt = 'Demo option 1'; + rtwoptions(2).type = 'Checkbox'; + rtwoptions(2).default = 'off'; + rtwoptions(2).tlcvariable = 'DummyOpt1'; + rtwoptions(2).makevariable = ''; + rtwoptions(2).tooltip = ['Demo option1 (non-functional)']; + rtwoptions(2).callback = ''; + + rtwoptions(3).prompt = 'Demo option 2'; + rtwoptions(3).type = 'Checkbox'; + rtwoptions(3).default = 'off'; + rtwoptions(3).tlcvariable = 'DummyOpt2'; + rtwoptions(3).makevariable = ''; + rtwoptions(3).tooltip = ['Demo option2 (non-functional)']; + rtwoptions(3).callback = ''; + + rtwoptions(4).prompt = 'Demo option 3'; + rtwoptions(4).type = 'Checkbox'; + rtwoptions(4).default = 'off'; + rtwoptions(4).tlcvariable = 'DummyOpt3'; + rtwoptions(4).makevariable = ''; + rtwoptions(4).tooltip = ['Demo option3 (non-functional)']; + rtwoptions(4).callback = ''; + + %----------------------------------------% + % Configure code generation settings % + %----------------------------------------% + + rtwgensettings.BuildDirSuffix = '_B3AP_ert_rtw'; + rtwgensettings.DerivedFrom = 'ert.tlc'; + rtwgensettings.Version = '1'; + + END_RTW_OPTIONS + %/ + diff --git a/B3_AP_ert_target/B3_AP_ert_target.tmf b/B3_AP_ert_target/B3_AP_ert_target.tmf new file mode 100644 index 0000000..e141d68 --- /dev/null +++ b/B3_AP_ert_target/B3_AP_ert_target.tmf @@ -0,0 +1,298 @@ +# Copyright 1994-2017 The MathWorks, Inc. +# +# File: B3_AP_ert_target.tmf +# +# Abstract: +# Simplified version of matlabroot/rtw/c/tornado/tornado.tmf to support +# the Embedded Real-Time (ERT) code format on the VxWorks operating +# system. Supports referenced models and user C++ files. +# +# This file can be used as a starting point for supporting ERT on the +# Tornado environment. +# + +MAKECMD = "%ARM_GCC_PATH%\bin\make" +SHELL = cmd +HOST = PC +BUILD = no +BUILD_SUCCESS = *** Created +SYS_TARGET_FILE = B3_AP_ert_target.tlc +MAKEFILE_FILESEP = / +TOOLCHAIN_NAME = "armcc | gmake makefile (64-bit Windows)" + +#---------------------- Tokens expanded by make_rtw ---------------------------- +# +# The following tokens, when wrapped with "|>" and "<|" are expanded by the +# build procedure. +# +MODEL = |>MODEL_NAME<| +MODULES = |>MODEL_MODULES<| +MAKEFILE = |>MAKEFILE_NAME<| +MATLAB_ROOT = |>MATLAB_ROOT<| +ALT_MATLAB_ROOT = |>ALT_MATLAB_ROOT<| +MASTER_ANCHOR_DIR = |>MASTER_ANCHOR_DIR<| +START_DIR = |>START_DIR<| +S_FUNCTIONS = |>S_FUNCTIONS<| +S_FUNCTIONS_LIB = |>S_FUNCTIONS_LIB<| +NUMST = |>NUMST<| +NCSTATES = |>NCSTATES<| +COMPUTER = |>COMPUTER<| +BUILDARGS = |>BUILDARGS<| +MULTITASKING = |>MULTITASKING<| +MODELREFS = |>MODELREFS<| +SHARED_SRC = |>SHARED_SRC<| +SHARED_SRC_DIR = |>SHARED_SRC_DIR<| +SHARED_BIN_DIR = |>SHARED_BIN_DIR<| +SHARED_LIB = |>SHARED_LIB<| +GEN_SAMPLE_MAIN = |>GEN_SAMPLE_MAIN<| +TARGET_LANG_EXT = |>TARGET_LANG_EXT<| +CLASSIC_INTERFACE = |>CLASSIC_INTERFACE<| +NUMST = |>NUMST<| + +#--------------------------- Model and reference models ----------------------- +MODELLIB = |>MODELLIB<| +MODELREF_LINK_LIBS = |>MODELREF_LINK_LIBS<| +MODELREF_INC_PATH = |>START_MDLREFINC_EXPAND_INCLUDES<|-I|>MODELREF_INC_PATH<| |>END_MDLREFINC_EXPAND_INCLUDES<| +RELATIVE_PATH_TO_ANCHOR = |>RELATIVE_PATH_TO_ANCHOR<| +# NONE: standalone, SIM: modelref sim, RTW: modelref coder target +MODELREF_TARGET_TYPE = |>MODELREF_TARGET_TYPE<| + +#-- In the case when directory name contains space --- +ifneq ($(MATLAB_ROOT),$(ALT_MATLAB_ROOT)) +MATLAB_ROOT := $(ALT_MATLAB_ROOT) +endif + +# Code generation option makevariables that are not expanded in the template makefile +# are automatically passed into make. To avoid this, create NOOP replacements. +# For this custom target, these ERT makevariables are not used. +# +NOOP = |>MAT_FILE<| +NOOP = |>INTEGER_CODE<| +NOOP = |>INCLUDE_MDL_TERMINATE_FCN<| +NOOP = |>COMBINE_OUTPUT_UPDATE_FCNS<| +NOOP = |>GENERATE_ERT_S_FUNCTION<| + +#-------------------------------- GNU Tools ------------------------------------ +# +# You may need to modify the following variables if you have installed the GNU +# Tools in a different location. +# +PREFIX = arm-none-eabi- +GCC_PATH = $(ARM_GCC_PATH)/bin + +CC = $(GCC_PATH)/$(PREFIX)gcc +CPP = $(GCC_PATH)/$(PREFIX)g++ +AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp +CP = $(GCC_PATH)/$(PREFIX)objcopy +SZ = $(GCC_PATH)/$(PREFIX)size +LD = $(GCC_PATH)/$(PREFIX)ld +AR = $(GCC_PATH)/$(PREFIX)ar + +HEX = $(CP) -O ihex +BIN = $(CP) -O binary -S + +#------------------------------ Include Path ----------------------------------- +# + +# Additional includes +# +ADD_INCLUDES = \ +|>START_EXPAND_INCLUDES<| -I|>EXPAND_DIR_NAME<| \ +|>END_EXPAND_INCLUDES<| + + +USER_INCLUDES = + +SHARED_INCLUDES = +ifneq ($(SHARED_SRC_DIR),) +SHARED_INCLUDES = -I$(SHARED_SRC_DIR) +endif + +INCLUDES = -I. -I$(RELATIVE_PATH_TO_ANCHOR) $(MODELREF_INC_PATH) $(ADD_INCLUDES) \ + $(USER_INCLUDES) \ + $(SHARED_INCLUDES) + +#-------------------------------- C Flags -------------------------------------- +# debug build? +DEBUG ?= 1 + +# cpu +CPU = -mcpu=cortex-m7 + +# fpu +FPU = -mfpu=fpv5-d16 + +# float-abi +FLOAT-ABI = -mfloat-abi=hard + +# mcu +MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI) + +# macros for gcc +# AS defines +AS_DEFS = + +# C defines +C_DEFS = \ +-DWITH_CAPI \ +-DCAPI_MDL=$(MODEL) \ +-DHDR_MDL=$(MODEL).h \ +-DMAVLINK_USE_MESSAGE_INFO \ +-DHAL_IMPL \ +-DUSE_HAL_DRIVER \ +-DSTM32F769xx + +# General User Options +OPTS = $(MCU) $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections + +ifeq ($(DEBUG), 1) + OPT_OPTS = -Og +else + OPT_OPTS = -O3 +endif + +# Required Options +GCC_FLAGS = -W -g -gdwarf-2 -DDEBUG +REQ_OPTS = $(GCC_FLAGS) + +CC_OPTS = $(REQ_OPTS) $(OPTS) + +CPP_REQ_DEFINES = -DMT=$(MULTITASKING) -DNCSTATES=$(NCSTATES) -DNUMST=$(NUMST) + +CFLAGS =$(CC_OPTS) $(CPP_REQ_DEFINES) $(INCLUDES) $(OPT_OPTS) +CPPFLAGS = $(CPP_OPTS) $(CC_OPTS) $(CPP_REQ_DEFINES) $(INCLUDES) + +ifeq ($(DEBUG), 1) +CFLAGS += -g -gdwarf-2 -DDEBUG +else +CFLAGS += -DNDEBUG +endif + +# Generate dependency information +CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" + +####################################### +# LDFLAGS +####################################### +# link script +LDSCRIPT = STM32F769NIHX_FLASH.ld + +# libraries +SYSLIBS = -lc -lm -lnosys +LIBDIR = +LDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(SYSLIBS) -Wl,-Map=$(MODEL).map,--cref -Wl,--gc-sections + +LIBS = +|>START_PRECOMP_LIBRARIES<| +LIBS += |>EXPAND_LIBRARY_NAME<|.a +|>END_PRECOMP_LIBRARIES<| |>START_EXPAND_LIBRARIES<| +LIBS += |>EXPAND_LIBRARY_NAME<|.a |>END_EXPAND_LIBRARIES<| +LIBS += $(S_FUNCTIONS_LIB) + +#----------------------------- Source Files ------------------------------------ +SHARED_OUTPUT_OPTS = -o $@ +SRCS = $(MODULES) $(S_FUNCTIONS) +ifeq ($(MODELREF_TARGET_TYPE), NONE) + # Top-level model for code generation + PRODUCT = $(RELATIVE_PATH_TO_ANCHOR)/$(MODEL).elf + BIN_SETTING = $(CC) $(LDFLAGS) -o $(PRODUCT) + BUILD_PRODUCT_TYPE = "executable" +else + # sub-model for code generation + PRODUCT = $(MODELLIB) + BUILD_PRODUCT_TYPE = "library" +endif + + +USER_SRCS = +USER_OBJS = $(addsuffix .o, $(basename $(USER_SRCS))) +LOCAL_USER_OBJS = $(notdir $(USER_OBJS)) + +OBJS = $(addsuffix .o, $(basename $(SRCS))) $(USER_OBJS) +LINK_OBJS = $(addsuffix .o, $(basename $(SRCS))) $(LOCAL_USER_OBJS) + +SHARED_SRC := $(wildcard $(SHARED_SRC)) +SHARED_OBJS = $(addsuffix .o, $(basename $(SHARED_SRC))) + +#--------------------------------- Rules --------------------------------------- +ifeq ($(MODELREF_TARGET_TYPE),NONE) +# Top-level model for code generation +$(PRODUCT) : $(OBJS) $(SHARED_LIB) $(MODELREF_LINK_LIBS) $(LIBS) + $(BIN_SETTING) $(LINK_OBJS) $(MODELREF_LINK_LIBS) $(SHARED_LIB) $(LIBS) + @echo "$(BUILD_SUCCESS) $(BUILD_PRODUCT_TYPE): $@" +else +# sub-model for code generation +$(PRODUCT) : $(OBJS) $(SHARED_OBJS) + @rm -f $(MODELLIB) + $(AR) ruv $(MODELLIB) $(LINK_OBJS) + @echo "### $(MODELLIB) Created" + @echo "$(BUILD_SUCCESS) $(BUILD_PRODUCT_TYPE): $@" +endif + +%.o : %.c + $(CC) -c $(CFLAGS) $< + +%.o : %.cpp + $(CC) -c $(CPPFLAGS) $< + +%.o : ../%.c + $(CC) -c $(CFLAGS) $< + +%.o : ../%.cpp + $(CC) -c $(CPPFLAGS) $< + +%.o : $(RELATIVE_PATH_TO_ANCHOR)/%.c + $(CC) -c $(CFLAGS) $< + +%.o : $(RELATIVE_PATH_TO_ANCHOR)/%.cpp + $(CC) -c $(CPPFLAGS) $< + +%.o : $(MATLAB_ROOT)/rtw/c/src/%.c + $(CC) -c $(CFLAGS) $< + +|>START_EXPAND_RULES<|%.o : |>EXPAND_DIR_NAME<|/%.c + $(CC) -c $(CFLAGS) $< + +|>END_EXPAND_RULES<| + +|>START_EXPAND_RULES<|%.o : |>EXPAND_DIR_NAME<|/%.cpp + $(CC) -c $(CPPFLAGS) $< + +|>END_EXPAND_RULES<| + +#------------------------------- Libraries ------------------------------------- + +|>START_EXPAND_LIBRARIES<|MODULES_|>EXPAND_LIBRARY_NAME<| = \ +|>START_EXPAND_MODULES<| |>EXPAND_MODULE_NAME<|.o \ +|>END_EXPAND_MODULES<| + +|>EXPAND_LIBRARY_NAME<|.a : $(MAKEFILE) rtw_proj.tmw $(MODULES_|>EXPAND_LIBRARY_NAME<|) + @echo "### Creating $@ " + $(AR) r $@ $(MODULES_|>EXPAND_LIBRARY_NAME<|) + @echo "### $@ Created" + +|>END_EXPAND_LIBRARIES<| + +|>START_PRECOMP_LIBRARIES<|MODULES_|>EXPAND_LIBRARY_NAME<| = \ +|>START_EXPAND_MODULES<| |>EXPAND_MODULE_NAME<|.o \ +|>END_EXPAND_MODULES<| + +|>EXPAND_LIBRARY_NAME<|.a : $(MAKEFILE) rtw_proj.tmw $(MODULES_|>EXPAND_LIBRARY_NAME<|) + @echo "### Creating $@ " + $(AR) r $@ $(MODULES_|>EXPAND_LIBRARY_NAME<|) + @echo "### $@ Created" + +|>END_PRECOMP_LIBRARIES<| + +#----------------------------- Dependencies ------------------------------------ + +$(OBJS) : $(MAKEFILE) rtw_proj.tmw + +$(SHARED_OBJS) : $(SHARED_BIN_DIR)/%.o : $(SHARED_SRC_DIR)/%.c + $(CC) -c $(CFLAGS) $(SHARED_OUTPUT_OPTS) $< + +$(SHARED_LIB) : $(SHARED_OBJS) + @echo "### Creating $@ " + $(AR) r $@ $(SHARED_OBJS) + @echo "### $@ Created " + diff --git a/B3_AP_ert_target/armcc_tc.m b/B3_AP_ert_target/armcc_tc.m new file mode 100644 index 0000000..600c5a4 --- /dev/null +++ b/B3_AP_ert_target/armcc_tc.m @@ -0,0 +1,183 @@ +function tc = armcc_tc +% Creates MinGW ToolchainInfo object. +% Copyright 2003-2019 (C) National Instruments Corp. + +tc = coder.make.ToolchainInfo('BuildArtifact', 'gmake makefile'); +tc.Name = 'armcc | gmake makefile (64-bit Windows)'; +tc.Platform = 'win64'; +tc.SupportedVersion = '7.3'; + +tool_path = [getenv('ARM_GCC_PATH') '\bin']; + +tc.addAttribute('TransformPathsWithSpaces'); +tc.addAttribute('RequiresCommandFile'); +tc.addAttribute('RequiresBatchFile'); + +% ------------------------------ +% Macros +% ------------------------------ +tc.addMacro('MW_EXTERNLIB_DIR', ['$(MATLAB_ROOT)\extern\lib\' tc.Platform '\microsoft']); +tc.addMacro('MW_LIB_DIR', ['$(MATLAB_ROOT)\lib\' tc.Platform]); +tc.addMacro('CFLAGS_ADDITIONAL', '-c -m32'); +tc.addMacro('CPPFLAGS_ADDITIONAL', '-c -m32'); +tc.addMacro('LIBS_TOOLCHAIN', '$(conlibs)'); +tc.addMacro('LINKFLAGS_ADDITIONAL', '-m32 -shared'); +tc.addMacro('CVARSFLAG', ''); +tc.addMacro('CFLAG', '-std=c90 -pedantic -fwrapv -m32'); + +tc.addIntrinsicMacros({'ldebug', 'conflags', 'cflags'}); + +% ------------------------------ +% C Compiler +% ------------------------------ + +tool = tc.getBuildTool('C Compiler'); + +tool.setName( 'arm-none-eabi-gcc'); +tool.setCommand( 'arm-none-eabi-gcc'); +tool.setPath( tool_path); + +tool.setDirective( 'IncludeSearchPath', '-I'); +tool.setDirective( 'PreprocessorDefine', '-D'); +tool.setDirective( 'OutputFlag', '-o'); +tool.setDirective( 'Debug', '-g'); + +tool.setFileExtension( 'Source', '.c'); +tool.setFileExtension( 'Header', '.h'); +tool.setFileExtension( 'Object', '.obj'); + +tool.setCommandPattern('|>TOOL<| |>TOOL_OPTIONS<| |>OUTPUT_FLAG<||>OUTPUT<|'); + +% ------------------------------ +% C++ Compiler +% ------------------------------ + +tool = tc.getBuildTool('C++ Compiler'); + +tool.setName( 'arm-none-eabi-g++'); +tool.setCommand( 'arm-none-eabi-g++'); +tool.setPath( tool_path); + +tool.setDirective( 'IncludeSearchPath', '-I'); +tool.setDirective( 'PreprocessorDefine', '-D'); + +tool.setDirective( 'OutputFlag', '-o'); +tool.setDirective( 'Debug', '-g'); + +tool.setFileExtension( 'Source', '.cpp'); +tool.setFileExtension( 'Header', '.hpp'); +tool.setFileExtension( 'Object', '.obj'); + +tool.setCommandPattern('|>TOOL<| |>TOOL_OPTIONS<| |>OUTPUT_FLAG<||>OUTPUT<|'); + +% ------------------------------ +% Linker +% ------------------------------ + +tool = tc.getBuildTool('Linker'); + +tool.setName( 'GCC Linker'); +tool.setCommand( 'arm-none-eabi-g++'); +tool.setPath( tool_path); + +tool.setDirective( 'Library', '-L'); +tool.setDirective( 'LibrarySearchPath', '-I'); +tool.setDirective( 'OutputFlag', '-o'); +tool.setDirective( 'Debug', ''); + +tool.setFileExtension( 'Executable', '.dll'); +tool.setFileExtension( 'Shared Library', '.dll'); + +tool.setCommandPattern('|>TOOL<| |>TOOL_OPTIONS<| |>OUTPUT_FLAG<||>OUTPUT<|'); + +% ------------------------------ +% C++ Linker +% ------------------------------ + +tool = tc.getBuildTool('C++ Linker'); + +tool.setName( 'GCC Linker'); +tool.setCommand( 'arm-none-eabi-g++'); +tool.setPath( tool_path); + +tool.setDirective( 'Library', '-L'); +tool.setDirective( 'LibrarySearchPath', '-I'); +tool.setDirective( 'OutputFlag', '-o'); +tool.setDirective( 'Debug', ''); + +tool.setFileExtension( 'Executable', '.dll'); +tool.setFileExtension( 'Shared Library', '.dll'); + +tool.setCommandPattern('|>TOOL<| |>TOOL_OPTIONS<| |>OUTPUT_FLAG<||>OUTPUT<|'); + +% ------------------------------ +% Archiver +% ------------------------------ + +tool = tc.getBuildTool('Archiver'); + +tool.setName( 'GNU Archiver'); +tool.setCommand( 'arm-none-eabi-ar'); +tool.setPath( tool_path); +tool.setDirective( 'OutputFlag', ''); +tool.setFileExtension( 'Static Library', '.a'); +tool.setCommandPattern('|>TOOL<| |>TOOL_OPTIONS<| |>OUTPUT_FLAG<||>OUTPUT<|'); + +% ------------------------------ +% Builder +% ------------------------------ + +tc.setBuilderApplication(tc.Platform); + +% -------------------------------------------- +% BUILD CONFIGURATIONS +% -------------------------------------------- + +optimsOffOpts = {'-O0'}; +optimsOnOpts = {'-O2'}; +cCompilerOpts = '$(cflags) $(CVARSFLAG) $(CFLAGS_ADDITIONAL)'; +cppCompilerOpts = '$(cflags) $(CVARSFLAG) $(CPPFLAGS_ADDITIONAL)'; +linkerOpts = {'$(ldebug) $(conflags) $(LINKFLAGS_ADDITIONAL) $(LIBS_TOOLCHAIN)'}; +sharedLinkerOpts = horzcat(linkerOpts, '-shared -def:$(DEF_FILE)'); +archiverOpts = {'rcs'}; + +% Get the debug flag per build tool +debugFlag.CCompiler = '$(CDEBUG)'; +debugFlag.CppCompiler = '$(CPPDEBUG)'; +debugFlag.Linker = '$(LDDEBUG)'; +debugFlag.CppLinker = '$(CPPLDDEBUG)'; +debugFlag.Archiver = '$(ARDEBUG)'; + +% Set the toolchain flags for 'Faster Builds' build configuration + +cfg = tc.getBuildConfiguration('Faster Builds'); +cfg.setOption( 'C Compiler', horzcat(cCompilerOpts, optimsOffOpts)); +cfg.setOption( 'C++ Compiler', horzcat(cppCompilerOpts, optimsOffOpts)); +cfg.setOption( 'Linker', linkerOpts); +cfg.setOption( 'C++ Linker', linkerOpts); +cfg.setOption( 'Shared Library Linker', sharedLinkerOpts); +cfg.setOption( 'Archiver', archiverOpts); + +% Set the toolchain flags for 'Faster Runs' build configuration + +cfg = tc.getBuildConfiguration('Faster Runs'); +cfg.setOption( 'C Compiler', horzcat(cCompilerOpts, optimsOnOpts)); +cfg.setOption( 'C++ Compiler', horzcat(cppCompilerOpts, optimsOnOpts)); +cfg.setOption( 'Linker', linkerOpts); +cfg.setOption( 'C++ Linker', linkerOpts); +cfg.setOption( 'Shared Library Linker', sharedLinkerOpts); +cfg.setOption( 'Archiver', archiverOpts); + +% Set the toolchain flags for 'Debug' build configuration + +cfg = tc.getBuildConfiguration('Debug'); +cfg.setOption( 'C Compiler', horzcat(cCompilerOpts, optimsOffOpts, debugFlag.CCompiler)); +cfg.setOption( 'C++ Compiler', horzcat(cppCompilerOpts, optimsOffOpts, debugFlag.CppCompiler)); +cfg.setOption( 'Linker', horzcat(linkerOpts, debugFlag.Linker)); +cfg.setOption( 'C++ Linker', horzcat(linkerOpts, debugFlag.CppLinker)); +cfg.setOption( 'Shared Library Linker', horzcat(sharedLinkerOpts, debugFlag.Linker)); +cfg.setOption( 'Archiver', horzcat(archiverOpts, debugFlag.Archiver)); + +tc.setBuildConfigurationOption('all', 'Download', ''); +tc.setBuildConfigurationOption('all', 'Execute', ''); +tc.setBuildConfigurationOption('all', 'Make Tool', '-f $(MAKEFILE)'); diff --git a/B3_AP_ert_target/armcc_win_tc.mat b/B3_AP_ert_target/armcc_win_tc.mat new file mode 100644 index 0000000000000000000000000000000000000000..36de0607cf1e63532e3c6f8f32b2ecea648ad0cd GIT binary patch literal 13558 zcma*Mhd-O|_diZilv1^87Dd(8+M}pdt2R~CuDy!bv-YUH_uguc5NglZqeu|M4q}hw z=k@-4|A629$n!qu>X@r%9bPb()^ z2T{f^vU*Btg6}yQWnC>ze_C2FIys6mYMK6IR5kTtKVwwzw)XB}-~WIBxH1OZQhR zebm+}ZQbW>U-$3TvQ6rM#!_lt+%yupt1n-SA}~#YJ5DN@JG#FvGv^edUn&Hci*z@^ zkyBR1;$MYa;`Ch>3cFfQI-3@C7xmuK5XpEkU3MB#tE&~FU8@3m(-zUNi-V~nwBJV{ ztj$Dn3hIwv@782xd6)L=)MROv=9h4z&{Y;Z9hz#!OYm2>XcnJTL)B7@WLvHCNP){` zl~~}d{Jquc2#rna509_>kl9N_s@b@@^}v@GV^*)mM?SIe6W#L)ACyV6Y0`C8x+LF9 zv%py57t#@*`AFQ&$Yon>r4zrNURv0^xOCMONg8F>kbcScZ@xFtMWpD}5VG)
s7 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 literal 0 HcmV?d00001 diff --git a/B3_AP_ert_target/rtwTargetInfo.m b/B3_AP_ert_target/rtwTargetInfo.m new file mode 100644 index 0000000..2352f98 --- /dev/null +++ b/B3_AP_ert_target/rtwTargetInfo.m @@ -0,0 +1,22 @@ +function rtwTargetInfo(tr) +%RTWTARGETINFO Registration file for custom toolchains. +tr.registerTargetInfo(@loc_createToolchain); +end + +% ------------------------------------------------------------------------- +% Create the ToolchainInfoRegistry entries +% ------------------------------------------------------------------------- +function config = loc_createToolchain + +i = 1; +%% Windows +if exist(fullfile(fileparts(mfilename('fullpath')), 'armcc_win_tc.mat'), 'file') == 2 + config(i) = coder.make.ToolchainInfoRegistry; + config(i).Name = 'armcc | gmake makefile (64-bit Windows)'; + config(i).FileName = fullfile(fileparts(mfilename('fullpath')), 'armcc_win_tc.mat'); + config(i).TargetHWDeviceType = {'*'}; + config(i).Platform = {computer('arch')}; + i = i + 1; +end + +end