elllusion / squawk-1

An experimental project to customize squawk virtual machine for microcontrollers

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

squawk

An experimental project to customize squawk virtual machine for microcontrollers

Highlights

  • Ported Squawk VM to mbed classic and esp8266
  • Implemented aggressive dead code elimination; Static footprint is reduced to less than 128K (including romized classes)
  • Optimized interpreter loop
  • Provides easy way to add native methods
  • Provides API to call HAL layer
  • Has been tested on ESP8266, MICROBIT, LPC1768, NUCLEO_L476, and Linux/x86.

Build for mbed

  • Install gcc-arm-none-eabi
  • Install JDK
  • git clone https://github.com/tomatsu/squawk
  • cd squawk; make
  • cd project_gen/targets/mbed; make TARGET=LPC1768 PROJECT=helloworld
  • cd /tmp/lpc1768_helloworld; make

Build for ESP8266

  • Install toolchain and SDK
  • Install JDK
  • git clone https://github.com/tomatsu/squawk
  • cd squawk; make
  • Set environment variable PATH and ESP_SDK For example, export ESP_SDK=$HOME/esp-open-sdk/sdk; export PATH=$HOME/esp-open-sdk/xtensa-lx106-elf/bin:$PATH
  • cd project_gen/targets/esp8266; make PROJECT=helloworld
  • cd /tmp/esp8266_helloworld; make

Plans

  • Documentation
  • Test
  • CLDC8 support

About

An experimental project to customize squawk virtual machine for microcontrollers

License:GNU General Public License v2.0


Languages

Language:Java 74.4%Language:C 20.7%Language:C++ 1.9%Language:Shell 1.2%Language:HTML 0.9%Language:Perl 0.3%Language:Makefile 0.3%Language:Assembly 0.2%Language:CMake 0.1%Language:Batchfile 0.0%Language:Objective-C 0.0%Language:Python 0.0%Language:Tcl 0.0%