Implement Platform::configure_debug_session interface (PlatformIO Core 5.2+)

This commit is contained in:
Ivan Kravets
2021-03-18 22:50:48 +02:00
parent 4f15087fe4
commit 2061bafb21
+36
View File
@@ -161,7 +161,43 @@ class Espressif32Platform(PlatformBase):
board.manifest["debug"] = debug
return board
def configure_debug_session(self, debug_config):
build_extra_data = debug_config.build_data.get("extra", {})
flash_images = build_extra_data.get("flash_images", [])
if "openocd" in (debug_config.server or {}).get("executable", ""):
debug_config.server["arguments"].extend(
["-c", "adapter_khz %s" % (debug_config.speed or "5000")]
)
ignore_conds = [
debug_config.load_cmds != ["load"],
not flash_images,
not all([os.path.isfile(item["path"]) for item in flash_images]),
]
if any(ignore_conds):
return
load_cmds = [
'monitor program_esp "{{{path}}}" {offset} verify'.format(
path=fs.to_unix_path(item["path"]), offset=item["offset"]
)
for item in flash_images
]
load_cmds.append(
'monitor program_esp "{%s.bin}" %s verify'
% (
fs.to_unix_path(debug_config.build_data["prog_path"][:-4]),
build_extra_data.get("application_offset", "0x10000"),
)
)
debug_config.load_cmds = load_cmds
def configure_debug_options(self, initial_debug_options, ide_data):
"""
Deprecated. Remove method when PlatformIO Core 5.2 is released
"""
ide_extra_data = ide_data.get("extra", {})
flash_images = ide_extra_data.get("flash_images", [])
debug_options = copy.deepcopy(initial_debug_options)