skip to main content
10.1145/1462735.1462740acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmiddlewareConference Proceedingsconference-collections
research-article

Darjeeling, a Java compatible virtual machine for microcontrollers

Published: 01 December 2008 Publication History

Abstract

The Java programming language enjoys widespread popularity on platforms ranging from servers to mobile phones. While efforts have been made to run Java on microcontroller platforms, there is currently no feature-rich, open source virtual machine available. In this paper we present Darjeeling, a system comprising offline tools and a memory efficient runtime. The offline post-compiler tool analyzes, links and consolidates Java class files into loadable modules. The runtime implements a modified Java VM that supports multithreading and is designed specifically to operate in constrained execution environments such as wireless sensor network nodes. Darjeeling improves upon existing work by supporting inheritance, threads, garbage collection, and loadable modules while keeping memory usage to a minimum. We have demonstrated Java running on AVR128 and MSP430 micro-controllers at speeds of up to 70,000 JVM instructions per second.

References

[1]
Bhatti, S. et al. (2005): MANTIS OS: an embedded multithreaded operating system for wireless micro sensor platforms. Mob. Netw. Appl. 10(4):563--579.
[2]
Butters, A. M. (2007): Total Cost of Ownership: A Comparison of C/C++ and Java. Evans Data Corp, www.evansdata.com
[3]
P. Corke, P. Sikka, W. Hu, S. Sen, P. Valencia, C. Crossman (Feb. 2007): a Sensor Network Architecture for Software Environments, CSIRO ICT Centre Technical Report
[4]
Dunkels, A. et al. (2006): 'Run-time dynamic linking for reprogramming wireless sensor networks'. In SenSys '06: Proceedings of the 4th international conference on Embedded networked sensor systems, pp. 15--28, New York, NY, USA. ACM.
[5]
Dunkels, A. et al. (2006): 'Protothreads: simplifying event-driven programming of memory-constrained embedded systems'. In SenSys '06: Proceedings of the 4th international conference on Embedded networked sensor systems, pp. 29--42, New York, NY, USA. ACM.
[6]
Hill J. et al (2000): System Architecture Directions for Networked Sensors. In Architectural Support for Programming Languages and Operating Systems, pages 93--104, 2000.
[7]
Koshy, J., Pandey, R. (2005): VMSTAR: synthesizing scalable runtime environments for sensor networks. In SenSys '05: Proceedings of the 3rd international conference on Embedded networked sensor systems, pp. 243--254, New York, NY, USA. ACM.
[8]
Levis, P., Culler, D. (2002): 'Maté: a tiny virtual machine for sensor networks'. SIGOPS Oper. Syst. Rev. 36(5):85--95.
[9]
Lindholm T., Yellin F. (1999): The Java(TM) Virtual Machine Specification (2nd Edition). Prentice Hall PTR.
[10]
Lindholm, T., Yellin, F. (March 2006): Virtual Machine Specification, Java CardTM Platform, Version 2.2.2., Sun Microsystems Inc.
[11]
http://www.harbaum.org/till/nanovm
[12]
D. Palmer, et al. (2005). An Optimising Compiler for Generated Tiny Virtual Machines. Embedded Networked Sensors, 2005. EmNetS-II. The Second IEEE Workshop on pp. 161--162.
[13]
Porthouse, C., Butcher, D. (August 2004): Multitasking JavaTM on ARM platforms. Whitepaper, ARM Limited, http://www.arm.com/pdfs/MVMWhitePaper.pdf
[14]
B. Saballus et. al.: Towards a Distributed Java VM in Sensor Networks using Scalable Source Routing
[15]
Sen, S. & Oliver, C. R. (2006): A Rule-Based Language for Programming Wireless Sensor Actuator Networks using Frequency and Communication. EmNetS-III. The Third IEEE Workshop on Embedded Networked Sensors.
[16]
Shi, Y. et al. (2005): Virtual machine showdown: stack versus registers. In VEE '05: Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments, pp. 153--163, New York, NY, USA. ACM.
[17]
Sun Microsystems (2002): Java Card#8482; 2.2 Off-Card Verifier. Whitepaper, Sun Microsystems, June 2002
[18]
http://tinyvm.sourceforge.net/
[19]
http://www.tiobe.com
[20]
Voigt (16--18 Nov. 2004): Contiki - a lightweight and flexible operating system for tiny networked sensors. Local Computer Networks, 2004. 29th Annual IEEE International Conference on pp. 455--462.

Cited By

View all
  • (2022)Service Management for Enabling Self-Awareness in Low-Power IoT Edge Devices2022 IEEE International Conference on Pervasive Computing and Communications Workshops and other Affiliated Events (PerCom Workshops)10.1109/PerComWorkshops53856.2022.9767362(146-147)Online publication date: 21-Mar-2022
  • (2021)A small scheme VM, compiler, and REPL in 4kProceedings of the 13th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages10.1145/3486606.3486783(14-24)Online publication date: 19-Oct-2021
  • (2020)Programming microcontrollers through high-level abstractionsProceedings of the 12th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages10.1145/3427765.3428495(5-14)Online publication date: 17-Nov-2020
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
Companion '08: Proceedings of the ACM/IFIP/USENIX Middleware '08 Conference Companion
December 2008
134 pages
ISBN:9781605583693
DOI:10.1145/1462735
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 December 2008

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Java
  2. sensor networks

Qualifiers

  • Research-article

Conference

Middleware '08

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)10
  • Downloads (Last 6 weeks)1
Reflects downloads up to 01 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2022)Service Management for Enabling Self-Awareness in Low-Power IoT Edge Devices2022 IEEE International Conference on Pervasive Computing and Communications Workshops and other Affiliated Events (PerCom Workshops)10.1109/PerComWorkshops53856.2022.9767362(146-147)Online publication date: 21-Mar-2022
  • (2021)A small scheme VM, compiler, and REPL in 4kProceedings of the 13th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages10.1145/3486606.3486783(14-24)Online publication date: 19-Oct-2021
  • (2020)Programming microcontrollers through high-level abstractionsProceedings of the 12th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages10.1145/3427765.3428495(5-14)Online publication date: 17-Nov-2020
  • (2019) make Sense : Simplifying the Integration of Wireless Sensor Networks into Business Processes IEEE Transactions on Software Engineering10.1109/TSE.2017.278758545:6(576-596)Online publication date: 1-Jun-2019
  • (2019)Evaluation of JADE multi-agent system and Erlang holonic control implementations for a manufacturing cellInternational Journal of Computer Integrated Manufacturing10.1080/0951192X.2019.157123132:3(225-240)Online publication date: 25-Jan-2019
  • (2017)The Design and Implementation of the Synchronous Language CÉUACM Transactions on Embedded Computing Systems10.1145/303554416:4(1-26)Online publication date: 13-Jul-2017
  • (2015)Autonomous Execution of Reliable Sensor Network Applications on Varying Node HardwareHandbook of Research on Innovations in Systems and Software Engineering10.4018/978-1-4666-6359-6.ch024(602-663)Online publication date: 2015
  • (2015)Programming Microcontrollers in OCamlProceedings of the 17th International Symposium on Practical Aspects of Declarative Languages - Volume 913110.1007/978-3-319-19686-2_10(132-148)Online publication date: 18-Jun-2015
  • (2014)GINGER: a minimizing-effects reprogramming paradigm for distributed sensor networks2014 IEEE International Symposium on Robotic and Sensors Environments (ROSE) Proceedings10.1109/ROSE.2014.6952989(88-93)Online publication date: Oct-2014
  • (2014)Design and compilation of an object-oriented macroprogramming language for wireless sensor networks39th Annual IEEE Conference on Local Computer Networks Workshops10.1109/LCNW.2014.6927705(574-582)Online publication date: Sep-2014
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media