From c17b94260a8d32490cc01f5ffeca6f0a7456b172 Mon Sep 17 00:00:00 2001 From: Slavey Karadzhov Date: Mon, 11 Dec 2023 13:37:44 +0100 Subject: [PATCH] Add Wokwi debug support. --- Tools/ide/vscode/setup.py | 65 +++++++++++--------- Tools/ide/vscode/template/wokwi/launch.json | 18 ++++++ Tools/ide/vscode/template/wokwi/wokwi.toml | 1 + docs/source/experimental/wokwi-debug.jpg | Bin 0 -> 70195 bytes docs/source/experimental/wokwi.rst | 20 ++++-- 5 files changed, 72 insertions(+), 32 deletions(-) create mode 100644 Tools/ide/vscode/template/wokwi/launch.json create mode 100644 docs/source/experimental/wokwi-debug.jpg diff --git a/Tools/ide/vscode/setup.py b/Tools/ide/vscode/setup.py index b16bb28d91..618846aca6 100644 --- a/Tools/ide/vscode/setup.py +++ b/Tools/ide/vscode/setup.py @@ -3,7 +3,7 @@ # Sming hardware configuration tool # -import os, sys, copy, shutil +import os, sys, copy appPath = os.path.dirname(os.path.realpath(__file__)) libPath = appPath + '/../common/' @@ -58,36 +58,46 @@ def update_launch(): filename = '.vscode/launch.json' launch = load_json(filename, False) template = load_template('launch.json', appPath) + if env.get('ENABLE_WOKWI'): + wokwi_template = load_template('wokwi/launch.json', appPath) + template["configurations"].extend(wokwi_template["configurations"]) if launch is None: launch = template.copy() configurations = get_property(launch, 'configurations', []) - config_name = "%s GDB" % env['SMING_ARCH'] - config = find_object(configurations, config_name) - template_config = find_object(template['configurations'], config_name) - if template_config is None: - print("Warning: Template launch configuration '%s' not found" % config_name) - elif not config is None: - configurations.remove(config) - config = template_config.copy() - configurations.append(config) - - if config is None: - return - config['miDebuggerPath'] = find_tool(env['GDB']) - dbgargs = "-x ${env:SMING_HOME}/Arch/%s/Components/gdbstub/gdbcmds" % env['SMING_ARCH'] - if env['SMING_ARCH'] == 'Host': - args = [] - args += env['CLI_TARGET_OPTIONS'].split() - args += ["--"] - args += env['HOST_PARAMETERS'].split() - config['args'] = args - else: - if not env.isWsl(): - dbgargs += " -b %s" % env.resolve('${COM_SPEED_GDB}') - config['miDebuggerServerAddress'] = env.resolve('${COM_PORT_GDB}') - config['miDebuggerArgs'] = dbgargs - config['program'] = "${workspaceFolder}/" + env.resolve('${TARGET_OUT_0}') + wokwi_config_name = "Wokwi GDB" + config_names = ["%s GDB" % env['SMING_ARCH']] + if env.get('ENABLE_WOKWI'): + config_names.append(wokwi_config_name) + for config_name in config_names: + config = find_object(configurations, config_name) + template_config = find_object(template['configurations'], config_name) + if template_config is None: + print("Warning: Template launch configuration '%s' not found" % config_name) + elif not config is None: + configurations.remove(config) + config = template_config.copy() + configurations.append(config) + + if config is None: + return + + config['miDebuggerPath'] = find_tool(env['GDB']) + dbgargs = "-x ${env:SMING_HOME}/Arch/%s/Components/gdbstub/gdbcmds" % env['SMING_ARCH'] + if env['SMING_ARCH'] == 'Host': + args = [] + args += env['CLI_TARGET_OPTIONS'].split() + args += ["--"] + args += env['HOST_PARAMETERS'].split() + config['args'] = args + else: + if not env.isWsl(): + dbgargs += " -b %s" % env.resolve('${COM_SPEED_GDB}') + if config_name != wokwi_config_name: + config['miDebuggerServerAddress'] = env.resolve('${COM_PORT_GDB}') + if config_name != wokwi_config_name: + config['miDebuggerArgs'] = dbgargs + config['program'] = "${workspaceFolder}/" + env.resolve('${TARGET_OUT_0}') save_json(launch, filename) @@ -111,7 +121,6 @@ def update_wokwi(): extensions = template.copy() save_json(extensions, filename) return - extensions["recommendations"] = extensions["recommendations"] + list(set(template["recommendations"]) - set(extensions["recommendations"])) save_json(extensions, filename) diff --git a/Tools/ide/vscode/template/wokwi/launch.json b/Tools/ide/vscode/template/wokwi/launch.json new file mode 100644 index 0000000000..81bb464108 --- /dev/null +++ b/Tools/ide/vscode/template/wokwi/launch.json @@ -0,0 +1,18 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Wokwi GDB", + "type": "cppdbg", + "request": "launch", + "program": "", + "args": [], + "stopAtEntry": true, + "cwd": "${workspaceFolder}", + "environment": [], + "externalConsole": true, + "MIMode": "gdb", + "miDebuggerServerAddress": "localhost:3333" + } + ] +} diff --git a/Tools/ide/vscode/template/wokwi/wokwi.toml b/Tools/ide/vscode/template/wokwi/wokwi.toml index a3ce4bf54f..f54dca4f23 100644 --- a/Tools/ide/vscode/template/wokwi/wokwi.toml +++ b/Tools/ide/vscode/template/wokwi/wokwi.toml @@ -2,3 +2,4 @@ version=1 firmware='${FW_BASE}/app-merged.bin' elf='${TARGET_OUT_0}' +gdbServerPort=3333 diff --git a/docs/source/experimental/wokwi-debug.jpg b/docs/source/experimental/wokwi-debug.jpg new file mode 100644 index 0000000000000000000000000000000000000000..11c2380b0416164443df798083f0b728af7a5eeb GIT binary patch literal 70195 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 W6b){A{0`n(x&X;krQO1Rm;W1WSNi|} literal 0 HcmV?d00001 diff --git a/docs/source/experimental/wokwi.rst b/docs/source/experimental/wokwi.rst index 296a1f97d1..cabbc5bd25 100644 --- a/docs/source/experimental/wokwi.rst +++ b/docs/source/experimental/wokwi.rst @@ -27,8 +27,8 @@ From the root directory of your application, run the following command to consol make mergeflash SMING_ARCH=Esp32 -Example Usage -============= +Usage +===== Basic_Blink ----------- @@ -43,7 +43,19 @@ Follow the commands below to get started:: Once the compilation is complete, open the folder in VS Code, install the recommended extensions, and either open the ``diagram.json`` file or press F1 and type ``Wokwi``. From the options, choose to start the Wokwi simulator. +Debugging +========= + +Running the Basic_Blink sample in the simulator enables you to debug it directly in VS Code. +Set a breakpoint in the ``init`` function in the Basic_Blink ``app/application.cpp`` file. +Press F1 and select "Start Simulator and Wait for Debugger." In the Launch configurations, choose "Wokwi GDB" and click the play button. +This initiates a new debugging session, allowing you to debug the code running in the simulator. + +.. image:: wokwi-debug.jpg + :height: 192px + Diagram Editor ============== -The ``diagram.json`` file, which includes elements and their connections, can be edited on the Wokwi official website __. -You can add new elements such as extra LEDs or servos. Ensure to copy the modified contents of the diagram.json from the website to your local environment. \ No newline at end of file + +The ``diagram.json`` file, which includes elements and their connections, can be edited on the `Wokwi official website `__. +You can add new elements such as extra LEDs or servos. Ensure to copy the modified contents of the diagram.json from the website to your local environment.