PreonVM - PreonVM

PreonVM
NapsánoC, Jáva
PlošinaARM Cortex-M
TypVirtuální stroj Java
LicenceProprietární software
webová stránkaPreonVM

PreonVM je implementace Virtuální stroj Java vyvinutý společností Virtenio. PreonVM byl původně vyvinut pro běh na Atmel AVR ATmega256, ale byl přenesen do ARM Cortex-M 3 systémy. Proto může VM běžet na mikrokontroléru s minimálně 8 kB RAM a 256 kB ROM. PreonVM nevyžaduje žádný další operační systém a běží přímo na mikrokontroléru.

Každý soubor třídy aplikace je transformován pomocí ClassLinker, aby se odstranily všechny části souborů třídy, které nejsou vyžadovány. Díky tomu je možné zmenšit velikost souboru třídy asi o 80%, což je vyžadováno pro malé zařízení. ClassLinker vytváří soubor .vmm, který kombinuje všechny soubory aplikačních tříd ve speciálním formátu, který může číst a spouštět PreonVM na mikrokontroléru.

VM podporuje všechny datové typy Java vč. long and double, threads, synchronization, Garbage collection with memory defragmentation, exceptions, system properties and IRQ / event system. PreonVM přichází s knihovnou tříd ovladačů pro IO I2C, SPI, USART, UMĚT, PWM, IRQ, RTC, GPIO, ADC, DAC a s ovladači některých senzorů a integrovaných obvodů.

Příklad kódu

Následující příklady kódu používají snímač SHT21 a načítají relativní vlhkost.

veřejnost třída SHT21 Demo {     veřejnost statický prázdnota hlavní(Tětiva[] args) {        // senzor je připojen na sběrnici I2C instance 1        NativníI2C i2c = NativníI2C.getInstance(1);        i2c.otevřeno();        // vytvoření a spuštění instance senzoru SHT21        SHT21 sht21 = Nový SHT21(i2c);        sht21.setResolution(SHT21.RESOLUTION_RH12_T14);        sht21.resetovat();        // čtení a tisk vlhkosti každou sekundu        zatímco (skutečný) {            sht21.startRelativeHumidityConverze();            Vlákno.spát(100);            int rawRH = sht21.getRelativeHumidityRaw();            plovák rh = SHT21.convertRawRHToRHw(rawRH);            Systém.ven.tisk("SHT21: rawRH =" + rawRH + "; RH =" + rh);            Vlákno.spát(900);        }    } }

Viz také

externí odkazy