Cilix
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.
 
 
Cilix
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.
 
 
Portability
    - CILIX is developed by employing C.
 
    - The core of CILIX (97% in MSP430) and I/O control code (3% in MSP430) are separated.
 
 
Other functions
    - Garbage collected heap
 
    - Threading
 
    - Wireless data transferring
 
 
Prototype
 
 | 
    - 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
 
 
Publications
    - 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).
 
 
 
 |