From 13af3e214154c8942f464b7531eb6a857d2d5a41 Mon Sep 17 00:00:00 2001 From: David Lesnjak Date: Mon, 30 Mar 2026 15:53:31 +0200 Subject: [PATCH 1/3] run_cmd: set logger level to INFO after session creation when still at WARNING --- pyocd/subcommands/run_cmd.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pyocd/subcommands/run_cmd.py b/pyocd/subcommands/run_cmd.py index ed9f0e6e8..79681f4a2 100644 --- a/pyocd/subcommands/run_cmd.py +++ b/pyocd/subcommands/run_cmd.py @@ -62,8 +62,6 @@ def get_args(cls) -> List[argparse.ArgumentParser]: def invoke(self) -> int: """@brief Handle 'run' subcommand.""" - self._increase_logging(["pyocd.subcommands.run_cmd", __name__]) - # Create shared shutdown event for all RunServer threads self.shared_shutdown = threading.Event() @@ -96,6 +94,11 @@ def invoke(self) -> int: timelimit_triggered = False with session: + + # Increase log level to INFO if it is still at the default WARNING level + root_logger = logging.getLogger() + if root_logger.level == logging.WARNING: + root_logger.setLevel(logging.INFO) # # ToDo: load support # From ee889e3d743eed086c3b032bbd296fe22421a56d Mon Sep 17 00:00:00 2001 From: David Lesnjak Date: Mon, 30 Mar 2026 15:56:02 +0200 Subject: [PATCH 2/3] run_cmd: guard RTT channel setup when RTT server fails to start --- pyocd/subcommands/run_cmd.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyocd/subcommands/run_cmd.py b/pyocd/subcommands/run_cmd.py index 79681f4a2..bda9009be 100644 --- a/pyocd/subcommands/run_cmd.py +++ b/pyocd/subcommands/run_cmd.py @@ -214,7 +214,8 @@ def __init__(self, session: Session, core: Optional[int] = None, rtt_config: "RT try: rtt_manager = RTTManager(session=session, core=core, rtt_config=rtt_config, systemview_config=systemview_config) self._rtt_server = rtt_manager.start_server() - rtt_manager.configure_channels(stdio_handler=self._stdio_handler) + if self._rtt_server is not None: + rtt_manager.configure_channels(stdio_handler=self._stdio_handler) except RuntimeError as e: LOG.debug("RTT configuration failed for core %d: %s", self.core, e) From 060ff3e8ae5b1be6a93685c3a2d3e651c31ed6ee Mon Sep 17 00:00:00 2001 From: David Lesnjak Date: Mon, 30 Mar 2026 15:59:30 +0200 Subject: [PATCH 3/3] run_cmd: guard SystemViewSVDat initialization when no SystemView channels are configured --- pyocd/subcommands/run_cmd.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/pyocd/subcommands/run_cmd.py b/pyocd/subcommands/run_cmd.py index bda9009be..0c4fea4ad 100644 --- a/pyocd/subcommands/run_cmd.py +++ b/pyocd/subcommands/run_cmd.py @@ -110,8 +110,17 @@ def invoke(self) -> int: core_number: RTTConfig(_session=session, _target=core_target, _core=core_number) for core_number, core_target in session.board.target.cores.items() } + systemview_config = SystemViewConfig(_session=session) - self._systemview = SystemViewSVDat(session=session, rtt_configs=rtt_config_list, systemview_config=systemview_config) + systemview_enabled = any( + cfg.has_rtt_config and cfg.num_systemview_channels > 0 + for cfg in rtt_config_list.values() + ) + + if systemview_enabled: + self._systemview = SystemViewSVDat(session=session, rtt_configs=rtt_config_list, systemview_config=systemview_config) + else: + self._systemview = None try: # Start up the run servers for core_number, core in session.board.target.cores.items(): @@ -173,7 +182,8 @@ def shutdown(self): LOG.warning("Run server for core %d did not terminate cleanly", server.core) # Generate SystemView output file - self._systemview.assemble_file() + if self._systemview is not None: + self._systemview.assemble_file() class RunServer(threading.Thread):