OVT Explorer for VS Code — Embedded Development for VS Code
A VS Code extension that brings an integrated embedded development environment into the editor. Manage CMSIS-Pack based projects, configure ARM GCC toolchains, set up debug probes, and build/flash/debug your embedded targets — all without leaving VS Code.
Mainly update list:
version 0.0.6
- Manage Project Dashboard — Redesigned "Manage Project" page with project info, statistics, and one-click access to Build/Clean/Debug/Flash/Include Dirs/Compiler Options/Add PACK Modules.
- Compiler Options Editor — New webview to customize optimization level, warning level, extra compiler flags, include paths, and preprocessor defines per project.
- Import Pack from Local Folder — Import installed packs from any folder; auto-scans all .pdsc files, supports multi-version and multi-pack directories.
- Import Toolchain from Local Folder — Right-click a toolchain entry to import from an existing folder; auto-detects ARM GCC installations.
- Custom Installation Directory — Toolchain and Debug Tool installation now prompts for a target directory instead of forcing C:\ToolChain or C:\DebugTool.
- Batch Remove Packs — Right-click a vendor::name group in Pack Manager to remove all versions at once.
- Fix: Build Output Auto-Scroll — Output window now correctly follows the latest compile line during builds.
- Fix: Debug Requires Second Click — Workspace and launch.json handoff timing improved so Cortex-Debug starts on first attempt.
- Fix: Close Project Button — Close Project now works reliably from tree item or current selection.
- Fix: Installed Packs Display — Pack Manager webview now correctly reflects installed packs.
- Fix: Memory Usage >100% — Flash/RAM percentage calculation now caps at >100% and filters out spurious small region matches.
- Fix: EPERM on Project Delete — Multi-level delete (Node fs + Windows shell fallback) prevents permission errors on locked files.
- Fix: Add PACK Modules TMU — Expanded driver directory detection to include TMU, peripheral, and module directories; added refresh button.
- Fix: Flash Erase Duplicate Button — Removed redundant Cancel button in erase confirmation dialog.
- New Project Device Search — Target device dropdown in New Project wizard now supports keyword filtering.
- Toolchain Duplicate Entry — Fixed duplicate display when importing from folder then installing to same directory; shallow root scan + binDir dedup.
version 0.0.5
- Import toolchain from an installed folder — "Import Toolchain from Folder" is now a dedicated toolbar button in the Properties view
- New Project device selection reaches variant (GVT) granularity — per-variant SVD, clock, and flash/RAM maps are honored
- Friendly toolchain names — folder-imported toolchains show a readable name (e.g. "Arm GNU Toolchain") instead of
bin / truncated folder names
- Build output automatically follows the latest compile line
- Add PACK Modules — "Select All" / "Deselect All" update checkboxes live and are mutually exclusive
Features
Project Explorer
- Create & Import Projects — Start a new embedded project from scratch or import an existing one, with a chip-aware project wizard that auto-discovers devices from installed CMSIS-Packs.
- File Operations — New file/folder, rename, delete, copy, cut, paste directly in the project tree.
- Build Exclusion — Toggle files or folders in/out of the build with a single click.
- Include Folder & Subfolders — Right-click a folder to recursively include it and everything beneath it, clearing all nested excludes in one step. A folder whose every child is included is automatically promoted to "included".
- Show in File Explorer — Right-click any file or folder to reveal it in the system file manager (Windows Explorer, macOS Finder, Linux file manager).
- Build Configurations — Switch between Debug/Release (or custom) build configurations with per-config exclude lists.
- Multi-Project Support — Manage multiple projects side-by-side in the Project Explorer view.
CMSIS-Pack Manager
- Import Packs — Import
.pack files (the ARM CMSIS standard format) to discover devices, boards, components, and middleware.
- Import from Local Folder — Select a folder containing pre-extracted CMSIS-Packs; auto-detects all
.pdsc files across multiple vendors and versions.
- Batch Removal — Remove all versions of a vendor::name pack in one action.
- Version Management — Install multiple versions of a pack, set an active version per vendor::pack, and switch between them.
- Pack Explorer — Browse installed packs, their families, sub-families, devices, and components in a dedicated tree view.
- Device Discovery — Automatically extract chip memory layouts, processor cores, debug algorithms, linker scripts, startup files, and SVD files from packs.
- Component Matching — Smart matching of pack components (startup, linker, drivers, CMSIS-DSP, FreeRTOS, TMU) to the selected target device.
- Module Refresh — Refresh button in the Add PACK Modules dialog to re-scan after installing new packs.
- ARM GCC Installation — Download and install the official ARM GNU Toolchain directly from developer.arm.com.
- Custom Directory — Choose any installation directory; not limited to C:\ToolChain.
- Local Install — Install a toolchain from a local ZIP file with user-selected target directory.
- Import from Local Folder — Right-click a toolchain entry to import from a pre-existing folder; auto-detects ARM GCC installations via
bin/arm-none-eabi-gcc.
- Version Detection — Auto-detects installed toolchain versions (arm-none-eabi-gcc, etc.) in custom directories.
- Duplicate Prevention — Shallow root scanning and binDir dedup prevents the same toolchain from appearing twice.
- Per-Project Selection — Assign a specific toolchain installation to each project.
- Compiler Configuration — Configure build/clean scripts, output directory, parallel jobs, verbose mode, extra paths, and environment variables.
- Compiler Options Editor — Per-project override of optimization level, warning level, extra compiler flags, include paths, and preprocessor defines.
Debug Probe Support
- SEGGER JLink — Download from segger.com, install (user-chosen directory), auto-detect version & connected probe serials.
- NXP LinkServer — Install and manage NXP debug probes.
- PEmicro — Install and manage PEmicro debug probes.
- Flash Configuration — Configure interface (SWD/JTAG), speed, target device, base address, erase/verify/reset options, and JLink serial number.
- Erase FLASH — Erase device flash with single-click confirmation (deduplicated buttons).
- Device List — Auto-parses
JLinkDevices.xml for available target devices.
Build, Debug & Run
- Build — Compile your embedded project with the selected ARM GCC toolchain.
- Clean — Remove all build artifacts (
build/ directory).
- Debug — Launch a GDB debug session using the configured probe.
- Run / Download — Flash (download) the firmware to the target device and run it.
Quick Panel
A convenient toolbar for one-click access to common operations: New Project, Import Project, and more.
Launch bundled or system-level tools (e.g. AutoGenerator, EBRT Tool, FK SE Config Tool) with double-click detection to prevent accidental duplicate launches.
Requirements
- VS Code
^1.87.0
- Windows — This extension is designed for Windows-based embedded development workflows.
- CMSIS-Pack files (
.pack) for your target MCU family.
Extension Views
The extension adds an "OVT Explorer for VS Code" icon to the Activity Bar containing these views:
| View |
Purpose |
| Quick Panel |
Quick-launch buttons for common tasks |
| Project Explorer |
Browse and manage embedded project files |
| CMSIS-Pack Explorer |
Browse installed CMSIS-Packs and their contents |
| Current Project |
View active project details |
| Debug Probes |
Install and manage debug probes (JLink, LinkServer, PEmicro) |
| Properties |
Manage ARM GCC toolchains and compiler settings |
Getting Started
- Set up Toolchain — In the Properties view, install ARM GCC Toolchain (download or from ZIP).
- Import a CMSIS-Pack — In the CMSIS-Pack Explorer, import the
.pack file for your target MCU.
- Create a New Project — Click "New Project" in the Quick Panel, select your chip from the wizard, and configure project options.
- Install Debug Probe — In the Debug Probes view, install JLink (or another supported probe).
- Build & Debug — Use the Project Explorer toolbar buttons to Build, Clean, Debug, or Run your project.
Commands
| Command |
Description |
extension.NewProjectWebview |
Create a new embedded project |
extension.ImportProjectWebview |
Import an existing project |
extension.showManageProjectWebview |
Open the Manage Project dashboard |
extension.closeProject |
Close a project |
projectExplorer.build |
Build the selected project |
projectExplorer.clean |
Clean build artifacts |
projectExplorer.debug |
Start a debug session |
projectExplorer.run |
Flash & run on target |
projectExplorer.addModules |
Add PACK driver modules to project |
projectExplorer.editIncludeDirs |
Configure include directories |
projectExplorer.editCompilerOptions |
Configure compiler options (opt level, warnings, flags, defines) |
projectExplorer.toggleExclude |
Exclude / include a file or folder from the build |
projectExplorer.includeRecursive |
Include a folder & all its subfolders |
projectExplorer.revealInExplorer |
Show a file or folder in the system file manager |
packManager.importPack |
Import a CMSIS-Pack file |
packManager.importPacksFromFolder |
Import packs from a local folder (auto-scan .pdsc) |
packManager.showManager |
Open the Pack Manager webview |
packManager.setPacksDir |
Set the pack storage directory |
packManager.removePack |
Remove an installed pack |
packManager.removeAllInGroup |
Batch-remove all versions of a vendor::name pack |
packManager.setActiveVersion |
Set the active version of a pack |
packManager.refreshExplorer |
Refresh the Pack Explorer view |
toolchain.installFromPlugin |
Download & install ARM GCC Toolchain |
toolchain.importFromFile |
Install toolchain from a local ZIP file |
toolchain.importFromFolder |
Import toolchain from an existing local folder |
toolchain.configure |
Configure compiler settings |
toolchain.selectForProject |
Assign a toolchain to the current project |
toolchain.remove |
Remove an installed toolchain |
debug.installOnline |
Download & install a debug tool |
debug.installToolFromFile |
Install a debug tool from a local ZIP |
debug.showFlashConfig |
Open Flash Configuration settings |
debug.removeTool |
Remove an installed debug tool |
debug.refreshProbes |
Refresh probe detection |
extension.saveState |
Save extension state |
Dependencies
- adm-zip — ZIP extraction for packs, toolchains, and debug tools.
- xml2js — PDSC and JLinkDevices XML parsing.
- 7-Zip (optional, system level) — Fallback extractor for SFX/InnoSetup/NSIS debug-tool installers.
Known Limitations
- Windows-only at this time.
- Debug probes are installed to fixed paths under
C:\DebugTool\.
- Toolchains are managed under
C:\ToolChain\ by default.
License
MIT
Publisher: ovt-chris | Author: Chris Song chris.song@ovt.com | Version: 0.0.7
| |