From cee3f4d90fe4ad8486f0cf4f6a1c0ecb238f379a Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Wed, 22 Jun 2022 19:03:50 +0300 Subject: [PATCH] Do not resolve debugging serial port by default --- platformio/debug/config/base.py | 21 +++------------------ platformio/debug/config/blackmagic.py | 24 ++++++++++++++++++++++++ platformio/debug/config/generic.py | 3 ++- platformio/debug/config/jlink.py | 3 ++- platformio/debug/config/mspdebug.py | 3 ++- platformio/debug/config/qemu.py | 3 ++- platformio/debug/config/renode.py | 3 ++- 7 files changed, 37 insertions(+), 23 deletions(-) diff --git a/platformio/debug/config/base.py b/platformio/debug/config/base.py index 9787cc8c..46a91673 100644 --- a/platformio/debug/config/base.py +++ b/platformio/debug/config/base.py @@ -18,14 +18,13 @@ import os from platformio import fs, proc, util from platformio.compat import string_types from platformio.debug.exception import DebugInvalidOptionsError -from platformio.device.finder import find_serial_port, is_pattern_port from platformio.project.config import ProjectConfig from platformio.project.helpers import load_build_metadata from platformio.project.options import ProjectOptions class DebugConfigBase: # pylint: disable=too-many-instance-attributes - def __init__(self, platform, project_config, env_name): + def __init__(self, platform, project_config, env_name, port=None): self.platform = platform self.project_config = project_config self.env_name = env_name @@ -49,6 +48,7 @@ class DebugConfigBase: # pylint: disable=too-many-instance-attributes self._load_cmds = None self._port = None + self.port = port self.server = self._configure_server() try: @@ -119,25 +119,10 @@ class DebugConfigBase: # pylint: disable=too-many-instance-attributes @property def port(self): - initial_port = ( + return ( self.env_options.get("debug_port", self.tool_settings.get("port")) or self._port ) - if initial_port and not is_pattern_port(initial_port): - return initial_port - port = find_serial_port( - initial_port, - board_config=self.board_config, - upload_protocol=self.tool_name, - prefer_gdb_port=True, - ) - if port: - return port - if not self.tool_settings.get("require_debug_port"): - return None - raise DebugInvalidOptionsError( - "Please specify `debug_port` for the working environment" - ) @port.setter def port(self, value): diff --git a/platformio/debug/config/blackmagic.py b/platformio/debug/config/blackmagic.py index bfc16246..5a89c2f9 100644 --- a/platformio/debug/config/blackmagic.py +++ b/platformio/debug/config/blackmagic.py @@ -13,6 +13,8 @@ # limitations under the License. from platformio.debug.config.base import DebugConfigBase +from platformio.debug.exception import DebugInvalidOptionsError +from platformio.device.finder import find_serial_port, is_pattern_port class BlackmagicDebugConfig(DebugConfigBase): @@ -47,3 +49,25 @@ while ($busy) end set language auto """ + + @property + def port(self): + # pylint: disable=assignment-from-no-return + initial_port = DebugConfigBase.port.fget(self) + if initial_port and not is_pattern_port(initial_port): + return initial_port + port = find_serial_port( + initial_port, + board_config=self.board_config, + upload_protocol=self.tool_name, + prefer_gdb_port=True, + ) + if port: + return port + raise DebugInvalidOptionsError( + "Please specify `debug_port` for the working environment" + ) + + @port.setter + def port(self, value): + self._port = value diff --git a/platformio/debug/config/generic.py b/platformio/debug/config/generic.py index 870aad7b..1f155ecb 100644 --- a/platformio/debug/config/generic.py +++ b/platformio/debug/config/generic.py @@ -34,5 +34,6 @@ $INIT_BREAK """ def __init__(self, *args, **kwargs): + if "port" not in kwargs: + kwargs["port"] = ":3333" super().__init__(*args, **kwargs) - self.port = ":3333" diff --git a/platformio/debug/config/jlink.py b/platformio/debug/config/jlink.py index ed5f9966..03a1bd3a 100644 --- a/platformio/debug/config/jlink.py +++ b/platformio/debug/config/jlink.py @@ -38,8 +38,9 @@ $INIT_BREAK """ def __init__(self, *args, **kwargs): + if "port" not in kwargs: + kwargs["port"] = ":2331" super().__init__(*args, **kwargs) - self.port = ":2331" @property def server_ready_pattern(self): diff --git a/platformio/debug/config/mspdebug.py b/platformio/debug/config/mspdebug.py index 86ee8d6a..09266b3b 100644 --- a/platformio/debug/config/mspdebug.py +++ b/platformio/debug/config/mspdebug.py @@ -32,5 +32,6 @@ $INIT_BREAK """ def __init__(self, *args, **kwargs): + if "port" not in kwargs: + kwargs["port"] = ":2000" super().__init__(*args, **kwargs) - self.port = ":2000" diff --git a/platformio/debug/config/qemu.py b/platformio/debug/config/qemu.py index e272a373..e9a57409 100644 --- a/platformio/debug/config/qemu.py +++ b/platformio/debug/config/qemu.py @@ -33,5 +33,6 @@ $INIT_BREAK """ def __init__(self, *args, **kwargs): + if "port" not in kwargs: + kwargs["port"] = ":1234" super().__init__(*args, **kwargs) - self.port = ":1234" diff --git a/platformio/debug/config/renode.py b/platformio/debug/config/renode.py index 0a4164de..724be407 100644 --- a/platformio/debug/config/renode.py +++ b/platformio/debug/config/renode.py @@ -35,8 +35,9 @@ monitor start """ def __init__(self, *args, **kwargs): + if "port" not in kwargs: + kwargs["port"] = ":3333" super().__init__(*args, **kwargs) - self.port = ":3333" @property def server_ready_pattern(self):