Renode Workbench

Manage local or remote Renode sessions from VS Code. The extension covers session creation, artifact sync, Renode start/stop, GDB attach, diagnostics, and remote UART log testing.
Language: English | 简体中文
What It Does
- Manage multiple local or remote Renode sessions in a VS Code webview.
- Build firmware locally, then sync ELF/RESC artifacts to a remote Renode workspace.
- Start Renode, attach GDB, stop sessions, and inspect diagnostics.
- Run a remote UART log smoke test for the bundled STM32F103 demo firmware.
Repository Layout
src/: VS Code extension source
firmware/: STM32F103 bare-metal UART demo and test scripts
renode/: default Renode scripts used by the extension
sessions/: generated per-session scaffold folders
docs/: architecture notes, examples, and validation logs
Requirements
- VS Code 1.90+
- Node.js 20+ for development
- Renode available on the target environment
arm-none-eabi-gdb available for debug attach
- For remote sessions: SSH access to the target host
Main Commands
Renode: Focus Workbench View
Renode: Connect Remote
Renode: Start Simulation
Renode: Start And Attach GDB
Renode: Build Firmware
Renode: Build And Sync Artifacts
Renode: Stop Simulation
Renode: Preflight Check
Renode: Run UART Log Test
Renode: Show Session Diagnostics
Typical Remote Flow
- Create or select a remote session in the Workbench view.
- Run
Renode: Connect Remote.
- Run
Renode: Build And Sync Artifacts.
- Run
Renode: Start Simulation or Renode: Start And Attach GDB.
- Optionally run
Renode: Run UART Log Test.
UART Log Test
The bundled firmware emits:
[BOOT] stm32f103 uart log test ready
[UART] heartbeat N: hello from usart2 on renode
Remote validation command:
$env:RENODE_REMOTE_PASSWORD = "your-password"
node .\firmware\test-uart-log-remote.mjs --sessionId orangepi-renode
The remote test uses CreateFileBackend on sysbus.usart2, which is more reliable for headless automation than showAnalyzer.
Development
npm install
npm run compile
npm test
Run the extension in VS Code:
- Open this repository in VS Code.
- Press
F5.
- In Extension Development Host, use the command palette or the Workbench view.
For AI Agents
Repo-local agent guidance is in AGENTS.md.
Quick facts:
- Prefer editing extension code in
src/, not compiled output in out/.
- Run
npm run compile after TypeScript changes.
- Run
npm test before packaging.
- The validated remote UART path is
firmware/test-uart-log-remote.mjs.
- For headless UART capture, prefer
CreateFileBackend over showAnalyzer.
- Session data is stored in
.vscode/renode-sessions.json and VS Code secret storage.
Packaging
npx @vscode/vsce package -o renode-workbench-0.1.2.vsix
License
See LICENSE.