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 2008Publication 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. Google ScholarGoogle ScholarCross RefCross Ref
  2. Butters, A. M. (2007): Total Cost of Ownership: A Comparison of C/C++ and Java. Evans Data Corp, www.evansdata.comGoogle ScholarGoogle Scholar
  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 ReportGoogle ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Levis, P., Culler, D. (2002): 'Maté: a tiny virtual machine for sensor networks'. SIGOPS Oper. Syst. Rev. 36(5):85--95. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Lindholm T., Yellin F. (1999): The Java(TM) Virtual Machine Specification (2nd Edition). Prentice Hall PTR. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Lindholm, T., Yellin, F. (March 2006): Virtual Machine Specification, Java CardTM Platform, Version 2.2.2., Sun Microsystems Inc. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. http://www.harbaum.org/till/nanovmGoogle ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Porthouse, C., Butcher, D. (August 2004): Multitasking JavaTM on ARM platforms. Whitepaper, ARM Limited, http://www.arm.com/pdfs/MVMWhitePaper.pdfGoogle ScholarGoogle Scholar
  14. B. Saballus et. al.: Towards a Distributed Java VM in Sensor Networks using Scalable Source RoutingGoogle ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Sun Microsystems (2002): Java Card#8482; 2.2 Off-Card Verifier. Whitepaper, Sun Microsystems, June 2002Google ScholarGoogle Scholar
  18. http://tinyvm.sourceforge.net/Google ScholarGoogle Scholar
  19. http://www.tiobe.comGoogle ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Darjeeling, a Java compatible virtual machine for microcontrollers

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • 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

      Copyright © 2008 ACM

      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: 1 December 2008

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader