VM5277: Universal Platform for Embedded Development

Language with Java-like syntax + RTOS + cross-platform drivers for 8-bit MCUs


Key Advantages of VM5277

The project is in an early but active stage of development

Problems with Existing Solutions

Existing solutions (Arduino, MicroPython) do not provide:

Arduino and MicroPython, despite their popularity, have limitations for cross-platform development for 8-bit MCUs:

Project Goal

Creating an OOP Programming Language with Simplified Java Syntax

Language Features:

Example GPIO Class:

class Led {
    private byte pin;
    public Led(byte pin) { this.pin = pin; }
    public void on() { HAL.GPIO.write(pin, HIGH);}
}

Support for 8-bit Microcontrollers from Various Manufacturers with Unified Code

Supported Architectures:

Implementation of RTOS Kernels (for each microcontroller family) with a Unified API

Functionality:

Implementation of Basic HAL, PAL Drivers

Other Key Features

Debugging Mechanism Based on Half-Duplex UART

Solution Advantages

Technological Foundation

Utilizing Accumulated Experience

The project will apply (and partially improve) solutions and architectural approaches refined in previous developments:

JAVRA - Assembler for AVR

github.com/w5277c/javra

CORE5277 - RTOS in Assembly

github.com/w5277c/core5277

5277 - Comprehensive Automation Solution

5277.ru

Current Development Status

Project Repository: github.com/w5277c/vm5277

Compiler and Code Generator Development for AVR (Alpha Version)

Implemented Components:

AVR RTOS Development Started

Basic components under development:

Upcoming Tasks

Stage Tasks Timeline
Compiler Beta and RTOS Core
  • Exception system try, catch, throw
  • Implementation of missing language constructs
  • Adding runtime safety checks
  • Task scheduler for AVR
  • Basic HAL drivers
  • High-level debugger
Q1 2026
Cross-Platform Support
  • PIC/STM8 support
  • Unified APIs
Q2 2026
Latest news and recent changes are available in the project GitHub repository

Tooling Support in 2024

As a background task, for development convenience, planning to implement an LSP server with:

Project Discussion: Telegram | Contacts: konstantin@5277.ru