Skip to content

Commit f36f8d4

Browse files
mathieuchopstmcfriedt
authored andcommitted
runners: stlink_gdbserver: expose --external-init as runner argument
3cc9a84 added '--external-init' to the GDB Server command line whenever an external loader is provided, but it is not a *necessary* argument and sometimes causes issues. Provide a new runner argument "--external-init" (for consistency) which controls whether or not the argument is added to command line if an external loader is used. (It is otherwise ignored) Signed-off-by: Mathieu Choplain <[email protected]>
1 parent f890286 commit f36f8d4

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

scripts/west_commands/runners/stlink_gdbserver.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,11 +112,22 @@ def do_add_parser(cls, parser: argparse.ArgumentParser):
112112
default=STLINK_GDB_SERVER_DEFAULT_PORT,
113113
help="Port number for GDB client",
114114
)
115+
parser.add_argument(
116+
"--external-init",
117+
action='store_true',
118+
help="Run Init() from external loader after reset",
119+
)
115120

116121
@classmethod
117122
def do_create(cls, cfg: RunnerConfig, args: argparse.Namespace) -> "STLinkGDBServerRunner":
118123
return STLinkGDBServerRunner(
119-
cfg, args.swd, args.apid, args.dev_id, args.port_number, args.extload
124+
cfg,
125+
args.swd,
126+
args.apid,
127+
args.dev_id,
128+
args.port_number,
129+
args.extload,
130+
args.external_init,
120131
)
121132

122133
def __init__(
@@ -127,6 +138,7 @@ def __init__(
127138
stlink_serial: str | None,
128139
gdb_port: int,
129140
external_loader: str | None,
141+
external_init: bool,
130142
):
131143
super().__init__(cfg)
132144
self.ensure_output('elf')
@@ -136,6 +148,7 @@ def __init__(
136148
self._stlink_serial = stlink_serial
137149
self._ap_id = ap_id
138150
self._external_loader = external_loader
151+
self._do_external_init = external_init
139152

140153
def do_run(self, command: str, **kwargs):
141154
if command in ["attach", "debug", "debugserver"]:
@@ -177,7 +190,9 @@ def do_attach_debug_debugserver(self, command: str):
177190
extldr_path = cubeprg_path / "ExternalLoader" / self._external_loader
178191
if not extldr_path.exists():
179192
raise RuntimeError(f"External loader {self._external_loader} does not exist")
180-
gdbserver_cmd += ["--external-init"]
193+
194+
if self._do_external_init:
195+
gdbserver_cmd += ["--external-init"]
181196
gdbserver_cmd += ["--extload", str(extldr_path)]
182197

183198
self.require(gdbserver_cmd[0])

0 commit comments

Comments
 (0)