What is Cilix?
Cilix is a small Common Intermediate Language (CIL) virtual machine for small wireless sensor devices.
Problems in conventional development for pervasive devices
- Each device needs individual programming environment
- We have to use specified programming languages for each device.
- Code reuse implementation is difficult.
Solution: CIL virtual machine
- CIL is an open specification (published under ECMA-335)
- CIL has multiple hi-level language compilers.
Multi language support
- Developers can use favorite programming languages (ex. Managed C++, Visual Basic, and C#).
- We can code, test, and debug program on existing powerful IDEs (ex. Visual Studio and Mono).
Saving device resources
- We optimized Cilix for small programs.
- Cilix supports most CIL instructions required for sensor data processing.
Easy Executable code replacement
- Over-the-air programming
- Micro SD card
Code replacement control
- Executable code can determine to accept, ignore, or relay the new received code by itself.
- The new code is transmitted by several packets, and they are overwritten to the program code area.
- CILIX is developed by employing C.
- The core of CILIX (97% in MSP430) and I/O control code (3% in MSP430) are separated.
- Garbage collected heap
- Wireless data transferring
- MPU: MSP430F247 (16bit MPU, 32KB ROM, 4KB RAM)
- Wireless: CC1101RTKR
- Interface: SPI, UART
- Sensors: a light sensor and a temperature sensor
Footprint (over-the-air programming version)
- Flash ROM (for Cilix code): 29.5KB
- Flash ROM (for executable code): 2.5KB
- RAM (for Cilix): 2.5KB
- RAM (for executable coe): 1.5KB
- Yasue Kishino, Yutaka Yanagisawa, Tsutomu Terada, Masahiko Tsukamoto, Takayuki Suyama: CILIX: a Small CIL Virtual Machine for Wireless Sensor Devices, Pervasive 2010 Demo (May 2010).