LONDON OSVM is a real-time, secure software platform for extremely memory constrained devices. It enables the creation of object-oriented applications and provide for dynamic updates and maintenance in the field.
It comes with an integrated programming environment which supports efficient incremental development with integration of program changes in a dynamic iterative programming workflow.
The automatic memory management and the size of the OSVM execution platform should reduce the hardware costs of the system while increasing the security and reliability. The always-on software platform allows analysis, correction and transparent update of the software in the field. This improves field testing and reduces maintenance costs.
The language used in OSVM is a derivative of Smalltalk, the original object oriented language. Its dynamic nature means that the developer can iteratively enhance and debug a running application. Esmertec says this is completely different to and much more productive than the traditional “edit, compile, link, download, restart, run” cycle of C and assembly language embedded programming.
OSVM uses virtual machine technology, which means that software written using OSVM can run on any device where the virtual machine is available. It uses garbage collection, freeing the developer from having to allocate and deallocate memory or worry about 'pointers', one of the common sources of programming errors.
OSVM comprises the OSVM Embedded Platform which runs on the target device, and the OSVM IDE which runs on a development PC running Windows or Linux. The OSVM IDE programming environment is based on the Eclipse open source IDE.
OSVM includes a compact real-time operating system so it can run on the Basic embedded device. Alternatively, it may be hosted on a third party (real time) operating system, such as embedded Linux on the embedded device. In both cases, the Smalltalk code may be mixed with C code. This can be existing software applications for the device that the developer is reusing, or alternatively the developer can achieve hard real time functionality by coding the small portions of the application that require microsecond latency in C.