From 07a6c074088ab07baed9b7169b5c32be56f5d3c7 Mon Sep 17 00:00:00 2001 From: Jimmy Brisson <theotherjimmy@gmail.com> Date: Wed, 31 May 2017 13:06:30 -0500 Subject: [PATCH 1/3] Revert "Disable Cortex-A in tooling to provide better error messages" This reverts commit f5859b308b73ab79000c2b265edd975e143d29af. --- tools/build.py | 2 -- tools/build_api.py | 3 --- tools/export/__init__.py | 4 +--- tools/make.py | 2 -- tools/options.py | 12 +----------- tools/project.py | 3 +-- tools/test.py | 2 -- 7 files changed, 3 insertions(+), 25 deletions(-) diff --git a/tools/build.py b/tools/build.py index b9e4afe3687..52c034ca132 100644 --- a/tools/build.py +++ b/tools/build.py @@ -32,7 +32,6 @@ from tools.targets import TARGET_NAMES, TARGET_MAP from tools.options import get_default_options_parser from tools.options import extract_profile -from tools.options import mcu_is_enabled from tools.build_api import build_library, build_mbed_libs, build_lib from tools.build_api import mcu_toolchain_matrix from tools.build_api import print_build_results @@ -136,7 +135,6 @@ # Get target list targets = options.mcu if options.mcu else TARGET_NAMES - assert [mcu_is_enabled(parser, mcu) for mcu in targets] # Get toolchains list toolchains = options.tool if options.tool else TOOLCHAINS diff --git a/tools/build_api.py b/tools/build_api.py index 9c5333bc135..f5e6d526c00 100644 --- a/tools/build_api.py +++ b/tools/build_api.py @@ -1244,9 +1244,6 @@ def mcu_toolchain_matrix(verbose_html=False, platform_filter=None, # FIlter out platforms using regex if re.search(platform_filter, target) is None: continue - # TODO: Remove this check when Cortex-A is re-enabled - if "Cortex-A" in TARGET_MAP[target].core: - continue target_counter += 1 row = [target] # First column is platform name diff --git a/tools/export/__init__.py b/tools/export/__init__.py index 41cd47702c8..e586c22b86e 100644 --- a/tools/export/__init__.py +++ b/tools/export/__init__.py @@ -33,7 +33,7 @@ from tools.export import sw4stm32, e2studio, zip, cmsis, uvision, cdt, vscode from tools.export import gnuarmeclipse from tools.export import qtcreator -from tools.targets import TARGET_NAMES, TARGET_MAP +from tools.targets import TARGET_NAMES EXPORTERS = { 'uvision5': uvision.Uvision, @@ -100,8 +100,6 @@ def mcu_ide_matrix(verbose_html=False): perm_counter = 0 for target in sorted(TARGET_NAMES): - if "Cortex-A" in TARGET_MAP[target].core: - continue row = [target] # First column is platform name for ide in supported_ides: text = "-" diff --git a/tools/make.py b/tools/make.py index b41194aa260..6cc2827e0be 100644 --- a/tools/make.py +++ b/tools/make.py @@ -42,7 +42,6 @@ from tools.targets import TARGET_MAP from tools.options import get_default_options_parser from tools.options import extract_profile -from tools.options import mcu_is_enabled from tools.build_api import build_project from tools.build_api import mcu_toolchain_matrix from tools.build_api import mcu_toolchain_list @@ -202,7 +201,6 @@ if options.mcu is None : args_error(parser, "argument -m/--mcu is required") mcu = options.mcu[0] - assert mcu_is_enabled(parser, mcu) # Toolchain if options.tool is None: diff --git a/tools/options.py b/tools/options.py index 4cbf8bc2755..adcbe5fb9a1 100644 --- a/tools/options.py +++ b/tools/options.py @@ -19,7 +19,7 @@ from os import listdir from argparse import ArgumentParser from tools.toolchains import TOOLCHAINS -from tools.targets import TARGET_NAMES, TARGET_MAP +from tools.targets import TARGET_NAMES from tools.utils import argparse_force_uppercase_type, \ argparse_lowercase_hyphen_type, argparse_many, \ argparse_filestring_type, args_error, argparse_profile_filestring_type,\ @@ -121,13 +121,3 @@ def extract_profile(parser, options, toolchain, fallback="develop"): " supported by profile {}").format(toolchain, filename)) return profile - -def mcu_is_enabled(parser, mcu): - if "Cortex-A" in TARGET_MAP[mcu].core: - args_error( - parser, - ("%s Will be supported in mbed OS 5.6. " - "To use the %s, please checkout the mbed OS 5.4 release branch. " - "See https://developer.mbed.org/platforms/Renesas-GR-PEACH/#important-notice " - "for more information") % (mcu, mcu)) - return True diff --git a/tools/project.py b/tools/project.py index 8157a9c29c5..dce04ab6437 100644 --- a/tools/project.py +++ b/tools/project.py @@ -20,7 +20,7 @@ from tools.utils import argparse_force_lowercase_type from tools.utils import argparse_force_uppercase_type from tools.utils import print_large_string -from tools.options import extract_profile, list_profiles, mcu_is_enabled +from tools.options import extract_profile, list_profiles def setup_project(ide, target, program=None, source_dir=None, build=None, export_path=None): """Generate a name, if not provided, and find dependencies @@ -221,7 +221,6 @@ def main(): if not options.mcu: args_error(parser, "argument -m/--mcu is required") - assert mcu_is_enabled(parser, options.mcu) # Toolchain if not options.ide: args_error(parser, "argument -i is required") diff --git a/tools/test.py b/tools/test.py index c6faf05663b..0058c97d37c 100644 --- a/tools/test.py +++ b/tools/test.py @@ -39,7 +39,6 @@ from utils import argparse_dir_not_parent from tools.toolchains import mbedToolchain, TOOLCHAIN_PATHS, TOOLCHAIN_CLASSES from tools.settings import CLI_COLOR_MAP -from tools.options import mcu_is_enabled if __name__ == '__main__': try: @@ -116,7 +115,6 @@ if options.mcu is None : args_error(parser, "argument -m/--mcu is required") mcu = options.mcu[0] - assert mcu_is_enabled(parser, mcu) # Toolchain if options.tool is None: From d8caee9077cdf2e53a07efd61529c27a30c00895 Mon Sep 17 00:00:00 2001 From: Jimmy Brisson <theotherjimmy@gmail.com> Date: Wed, 31 May 2017 13:08:15 -0500 Subject: [PATCH 2/3] Disallow building of mbed OS 2 + rtos --- tools/build_api.py | 6 ++++-- tools/make.py | 4 ++-- tools/test/build_api/build_api_test.py | 4 ++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/tools/build_api.py b/tools/build_api.py index f5e6d526c00..62430bf5b35 100644 --- a/tools/build_api.py +++ b/tools/build_api.py @@ -478,12 +478,10 @@ def build_project(src_paths, build_path, target, toolchain_name, src_paths.extend(libraries_paths) inc_dirs.extend(map(dirname, libraries_paths)) - # Build Directory if clean and exists(build_path): rmtree(build_path) mkdir(build_path) - # Pass all params to the unified prepare_toolchain() toolchain = prepare_toolchain( src_paths, build_path, target, toolchain_name, macros=macros, clean=clean, jobs=jobs, notify=notify, silent=silent, verbose=verbose, @@ -513,6 +511,10 @@ def build_project(src_paths, build_path, target, toolchain_name, try: # Call unified scan_resources resources = scan_resources(src_paths, toolchain, inc_dirs=inc_dirs) + if (hasattr(toolchain.target, "release_versions") and + "5" not in toolchain.target.release_versions and + "rtos" in toolchain.config.lib_config_data): + raise NotSupportedException("Target does not support mbed OS 5") # Change linker script if specified if linker_script is not None: diff --git a/tools/make.py b/tools/make.py index 6cc2827e0be..037bbdf2892 100644 --- a/tools/make.py +++ b/tools/make.py @@ -313,8 +313,8 @@ except KeyboardInterrupt, e: print "\n[CTRL+c] exit" - except NotSupportedException, e: - print "\nNot supported for selected target" + except NotSupportedException as e: + print "\nCould not compile for %s: %s" % (mcu, str(e)) except Exception,e: if options.verbose: import traceback diff --git a/tools/test/build_api/build_api_test.py b/tools/test/build_api/build_api_test.py index 2ffcf9f49b5..5e6b1fc7983 100644 --- a/tools/test/build_api/build_api_test.py +++ b/tools/test/build_api/build_api_test.py @@ -131,7 +131,7 @@ def test_build_project_app_config(self, mock_prepare_toolchain, mock_exists, _, mock_exists.return_value = False mock_prepare_toolchain().link_program.return_value = 1, 2 mock_prepare_toolchain().config = namedtuple( - "Config", "has_regions name")(None, None) + "Config", "has_regions name lib_config_data")(None, None, {}) build_project(self.src_paths, self.build_path, self.target, self.toolchain_name, app_config=app_config) @@ -160,7 +160,7 @@ def test_build_project_no_app_config(self, mock_prepare_toolchain, mock_exists, # Needed for the unpacking of the returned value mock_prepare_toolchain().link_program.return_value = 1, 2 mock_prepare_toolchain().config = namedtuple( - "Config", "has_regions name")(None, None) + "Config", "has_regions name lib_config_data")(None, None, {}) build_project(self.src_paths, self.build_path, self.target, self.toolchain_name) From cee0cbd90023c6b3bd17ff31bb7a89175c1bf965 Mon Sep 17 00:00:00 2001 From: Jimmy Brisson <theotherjimmy@gmail.com> Date: Wed, 31 May 2017 13:08:43 -0500 Subject: [PATCH 3/3] Remove Cortex-A mbed OS 5 support --- targets/targets.json | 4 ++-- tools/build_api.py | 9 ++++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/targets/targets.json b/targets/targets.json index 5b5fd0c7115..454ee6f3c70 100644 --- a/targets/targets.json +++ b/targets/targets.json @@ -1926,7 +1926,7 @@ "inherits": ["Target"], "device_has": ["ANALOGIN", "CAN", "ERROR_PATTERN", "ETHERNET", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], "features": ["LWIP"], - "release_versions": ["2", "5"] + "release_versions": ["2"] }, "VK_RZ_A1H": { "inherits": ["Target"], @@ -1938,7 +1938,7 @@ "device_has": ["ANALOGIN", "CAN", "ERROR_PATTERN", "ETHERNET", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SPI", "SPISLAVE", "STDIO_MESSAGES"], "features": ["LWIP"], "default_lib": "std", - "release_versions": ["2", "5"] + "release_versions": ["2"] }, "MAXWSNENV": { "inherits": ["Target"], diff --git a/tools/build_api.py b/tools/build_api.py index 62430bf5b35..84a143484db 100644 --- a/tools/build_api.py +++ b/tools/build_api.py @@ -514,7 +514,14 @@ def build_project(src_paths, build_path, target, toolchain_name, if (hasattr(toolchain.target, "release_versions") and "5" not in toolchain.target.release_versions and "rtos" in toolchain.config.lib_config_data): - raise NotSupportedException("Target does not support mbed OS 5") + if "Cortex-A" in toolchain.target.core: + raise NotSupportedException( + ("%s Will be supported in mbed OS 5.6. " + "To use the %s, please checkout the mbed OS 5.4 release branch. " + "See https://developer.mbed.org/platforms/Renesas-GR-PEACH/#important-notice " + "for more information") % (toolchain.target.name, toolchain.target.name)) + else: + raise NotSupportedException("Target does not support mbed OS 5") # Change linker script if specified if linker_script is not None: