Skip to content
/ squawk Public

An experimental project to customize squawk virtual machine for microcontrollers. Users can write embedded application programs in Java (with CLDC API) that run on microcontrollers without RTOS.

License

GPL-2.0, GPL-2.0 licenses found

Licenses found

GPL-2.0
LICENSE
GPL-2.0
license.txt
Notifications You must be signed in to change notification settings

tomatsu/squawk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

squawk

An experimental project to customize squawk virtual machine for microcontrollers. Users can write embedded application programs in Java (with CLDC API) that can run on small embedded system without RTOS.

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
  • Install mbed cli (tested with 1.7.5)
  • 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. Users can write embedded application programs in Java (with CLDC API) that run on microcontrollers without RTOS.

Resources

License

GPL-2.0, GPL-2.0 licenses found

Licenses found

GPL-2.0
LICENSE
GPL-2.0
license.txt

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published