Embedded IDE (EIDE)

website·Indexed 32 days ago

https://em-ide.com

A VSCode plug-in for embedded development that supports any GCC family compiler. It provides tools for project management, builder and flasher configurations, chip support packages for Cortex-M MCUs, and a CMSIS header wizard. Features include one-click debugging in v3.25.1, project importing from other IDEs like Keil, and multi-project workspace support.

Tokens
22.7K
Snippets
61
Records
195
Agent score
60%

What's inside EIDE

  1. Overview of EIDE for VSCode

    EIDE is a VSCode extension designed for developing microcontroller projects. It provides a unified development environment that supports multiple compilers and flashing tools, eliminating the need for chip-specific IDEs. It supports architectures including 8051, STM8, STM32, other Cortex-M MCUs, and RISC-V. The extension is compatible with any GCC-based compiler.
  2. Overview of Embedded IDE for VSCode

    Embedded IDE is a VSCode plug-in designed for developing single-chip microcomputer projects. It supports a wide range of architectures including 8051, STM8, STM32, other Cortex-M MCUs, and RISC-V. The tool provides a unified development environment within VSCode, integrating project management, building, and chip programming.
  3. Import Keil projects into Eide

    When importing Keil projects into Eide, be aware of the following constraints:

    1. Version Support: Only Keil v5 is supported.
    2. RTE Components: Eide does not currently support the introduction of MDK's RTE components due to the complexity of the UVPROJX project file.
      • Projects containing RTE components are identified by green icons in the Keil environment.
      • It is recommended not to import projects with RTE components unless they only contain CMSIS components.
      • If you choose to force import a project with RTE components, you must manually add the missing source files and include paths.
  4. Manage source files and folders in EIDE

    The Project Resources view allows users to manage source files, source folders, and output files. Users can add, remove, exclude, or include files and folders, and modify source file paths using the right-click context menu.
  5. Supported flashers by project type

    EIDE supports different flashers depending on the target project architecture:

    • 8BIT Project: stvp (for stm8), stcgal, or any custom shell command.
    • Arm Project: jlink, stlink, pyocd, openocd, or any custom shell command.
    • RISCV Project: jlink, pyocd, openocd, or any custom shell command.
  6. Manage source files and folders in Project Resources

    The Project Resources view provides a tree UI to manage source folders, source files, and builder output files. Users can add, remove, or exclude files and folders via right-click context menus.
  7. Understand the role of Chip Support Packages (CMSIS-Packs) in EIDE

    EIDE supports the installation of CMSIS-Packs for Cortex-M project types. While not mandatory for the plugin to function, installing a pack and selecting a specific MCU model optimizes several project settings:

    • Compilation Config: Automatically selects the correct CPU Type based on the chip.
    • Flashing Config: Automatically selects the chip model and installs flashing algorithm files for programmers like JLink.
    • Debug Config: Automatically generates complete Cortex-debug configurations, including chip model and SVD paths.
    • RAM/ROM Layout: Automatically populates the RAM/ROM addresses and sizes based on the chip specifications.
    • Peripheral Components: Allows the installation of source code components bundled within the CMSIS-Pack.
  8. Understand the benefits of Chip Support Packages (CMSIS-Packs) in EIDE

    EIDE supports the installation of CMSIS-Packs for Cortex-M projects. While optional, installing a chip support package allows the plug-in to automatically optimize the following project settings based on the selected MCU model:

    • Builder Configurations: Automatically selects the correct CPU Type.
    • Flasher Configurations: For JLink, it automates chip selection and flasher algorithm file installation.
    • Debugger Configurations: Automatically generates configurations for cortex-debug, including chip name and SVD paths.
    • RAM/ROM Layout: Automatically populates the memory addresses and sizes.
    • Peripheral Components: Enables the installation of peripheral driver source files directly from the pack.
  9. Select a compatible flasher based on project type

    Depending on the project architecture, different flashers are supported in EIDE:

    • 8BIT Project: stvp (for stm8), stcgal, or any custom shell command.
    • Arm Project: jlink, stlink, pyocd, openocd, or any custom shell command.
    • RISCV Project: jlink, pyocd, openocd, or any custom shell command.
  10. Export project to an EIDE Project Template

    Export a project as an .ept template file by selecting Export As ... -> EIDE Project Template. This compresses the VS Code workspace using 7z. The resulting .ept file can be used to create new projects.
  11. Inspect ELF files using the ELF Viewer

    To inspect ELF format output files, navigate to the Output Files virtual folder node after a build is complete. Clicking on an ELF file opens the ELF Viewer, which dumps and displays information from the file in a webview page.
  12. Install Embedded IDE (EIDE) in VSCode

    EIDE is a VSCode extension for embedded development. It requires the .NET 6 X64 Runtime to function.

    Installation Steps:

    1. Search for eide in the VSCode Extension Marketplace and install Embedded IDE.
    2. Upon installation, the plugin will automatically download and install eide-binaries and the .NET 6 X64 Runtime.
    3. Restart VSCode after the .NET Runtime installation to refresh system environment variables.
    4. If the runtime is not detected, close all VSCode instances and launch via the shell using code . to force a refresh of environment variables.

    Offline Installation: Download the installation package from the GitHub Releases page if network access is unavailable.

    # To refresh environment variables if .NET runtime is not found
    code .