NanoVM
Encyclopedia
NanoVM is a open-source implementation of the Java virtual machine
. The NanoVM was initially developed to run on the Atmel AVR
ATmega8 used in the Asuro Robot. It was ported to run on the C't-Bot and the Nibo-robot and can easily be ported to other AVR-based systems.
The virtual machine uses almost 8 kilobyte
s of code memory (entire flash in case of ATmega8) and 256 byte
s of RAM
. Every user's .class are processed by NanoVM's Converter which transforms it into one bytecode file. Special tools next send this file through serial line into device. For this operation is useful NanoVM's bootloader (alternatively you can use ISP
programmer like: PonyProg) which store this content on-chip EEPROM
.
Java Virtual Machine
A Java virtual machine is a virtual machine capable of executing Java bytecode. It is the code execution component of the Java software platform. Sun Microsystems stated that there are over 4.5 billion JVM-enabled devices.-Overview:...
. The NanoVM was initially developed to run on the Atmel AVR
Atmel AVR
The AVR is a modified Harvard architecture 8-bit RISC single chip microcontroller which was developed by Atmel in 1996. The AVR was one of the first microcontroller families to use on-chip flash memory for program storage, as opposed to one-time programmable ROM, EPROM, or EEPROM used by other...
ATmega8 used in the Asuro Robot. It was ported to run on the C't-Bot and the Nibo-robot and can easily be ported to other AVR-based systems.
The virtual machine uses almost 8 kilobyte
Kilobyte
The kilobyte is a multiple of the unit byte for digital information. Although the prefix kilo- means 1000, the term kilobyte and symbol KB have historically been used to refer to either 1024 bytes or 1000 bytes, dependent upon context, in the fields of computer science and information...
s of code memory (entire flash in case of ATmega8) and 256 byte
Byte
The byte is a unit of digital information in computing and telecommunications that most commonly consists of eight bits. Historically, a byte was the number of bits used to encode a single character of text in a computer and for this reason it is the basic addressable element in many computer...
s of RAM
Random-access memory
Random access memory is a form of computer data storage. Today, it takes the form of integrated circuits that allow stored data to be accessed in any order with a worst case performance of constant time. Strictly speaking, modern types of DRAM are therefore not random access, as data is read in...
. Every user's .class are processed by NanoVM's Converter which transforms it into one bytecode file. Special tools next send this file through serial line into device. For this operation is useful NanoVM's bootloader (alternatively you can use ISP
In-System Programming
In-System Programming is the ability of some programmable logic devices, microcontrollers, and other programmable electronic chips to be programmed while installed in a complete system, rather than requiring the chip to be programmed prior to installing it into the system.The primary advantage of...
programmer like: PonyProg) which store this content on-chip EEPROM
EEPROM
EEPROM stands for Electrically Erasable Programmable Read-Only Memory and is a type of non-volatile memory used in computers and other electronic devices to store small amounts of data that must be saved when power is removed, e.g., calibration...
.