You can edit almost every page by Creating an account and confirming your email.

PreonVM

From EverybodyWiki Bios & Wiki



PreonVM
Written inC, Java
Engine
    PlatformARM Cortex-M
    TypeJava virtual machine
    LicenseProprietary software
    WebsitePreonVM

    Search PreonVM on Amazon.

    PreonVM is an implementation of the Java virtual machine developed by Virtenio.[1] The PreonVM was initially developed to run on the Atmel AVR ATmega256, but has been ported to ARM Cortex-M3 systems. Therefore the VM can run on a microcontroller with 8 kB RAM and 256 kB ROM at a minimum. The PreonVM requires no additional operating system and runs directly on the microcontroller.

    Every class file of the application is transformed via a ClassLinker to strip all parts of class files that is not required. This makes it possible to reduce the class file size by about 80%, which is required for a small device. The ClassLinker builds a .vmm file which combines all application class files in a special format which can be read and executed by the PreonVM on the microcontroller.

    The VM supports all Java data types incl. long and double, threads, synchronization, Garbage collection with memory defragmentation, exceptions, system properties and IRQ/event system. The PreonVM comes with a library of driver classes for IO like I2C, SPI, USART, CAN, PWM, IRQ, RTC, GPIO, ADC, DAC and with drivers for some sensors and IC's.

    Code example

    The following code examples uses an SHT21 sensor and reads the relative humidity.

    public class SHT21Demo { 
        public static void main(String[] args) {
    
            // sensor is connected to I2C bus instance 1
            NativeI2C i2c = NativeI2C.getInstance(1);
            i2c.open();
    
            // create and init SHT21 sensor instance
            SHT21 sht21 = new SHT21(i2c);
            sht21.setResolution(SHT21.RESOLUTION_RH12_T14);
            sht21.reset();
    
            // read and print humidity every second
            while (true) {
                sht21.startRelativeHumidityConversion();
                Thread.sleep(100);
    
                int rawRH = sht21.getRelativeHumidityRaw();
                float rh = SHT21.convertRawRHToRHw(rawRH);
    
                System.out.println("SHT21: rawRH=" + rawRH + "; RH=" + rh);
                Thread.sleep(900);
            }
        } 
    }
    

    See also

    References

    1. "PreonVM - JavaVM for embedded systems". VIRTENIO GmbH. Archived from the original on 2019-11-05. Retrieved 2025-11-17.

    External links



    This article "PreonVM" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:PreonVM. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.