Resolved critical issues that prevented successful compilation of imported Keil projects (fixing L6406E and ENOENT errors).
Fixed Linker Error (L6406E: No space in execution regions):
Scatter File Sync: Forces conversion of scatterFilePath to a project-relative path (rejecting absolute paths) to ensure portability.
XML Parsing Robustness: Fixed a bug in src/KeilXmlParser.ts where x2js returned objects instead of strings for XML attributes, causing memory addresses to parse as 0. Added getNodeText helper for safe value extraction.
Validation: Added memory layout validation in src/EIDEProjectExplorer.ts. Updates with invalid layouts (all size 0) are ignored with a warning to prevent overwriting valid configurations.
Fixed spawnSync ENOENT Error:
Added strict fs.existsSync checks in src/ToolchainManager.ts to prevent crashes when querying invalid toolchain paths.
New Feature: Added "Refresh Keil Project" context menu command for manual synchronization.
3. Unified Context Menu
Seamless Experience: Context menu options for CMake projects now match the rich feature set of standard EIDE projects.
Enhanced Capabilities:
Generate Debugger Config
Show Compiler CommandLine
Show All Project Variables
Export As...
Static Check
📑 Summary
A powerful MCU development environment for 8051/STM8/Cortex-M/MIPS/RISC-V on VS Code.