• Home
  • Articles & Issues
    • Current
    • All Issues
  • About
    • Aims and Scope
    • Editorial Board
    • Indexing
    • Sources of Financing
  • For Authors
    • Submission
    • Terms of Publication
    • Formatting Guidelines
    • Peer Review Process
    • Article Processing Charges
    • License Agreement
  • Ethics & Policies
    • Publication Ethics
    • Conflict of Interest
    • Open Access Policy
    • Archiving
    • Complaints Policy
    • Privacy Statement
    • Corrections and Retractions
    • Anti-plagiarism Policy
    • Generative AI Policy
  • Contacts
en English
  • Українська Українська

Transport systems and technologies

  • Submit an article
  • Home
  • Articles & Issues
    • Current
    • All Issues
  • About
    • Aims and Scope
    • Editorial Board
    • Indexing
    • Sources of Financing
  • For Authors
    • Submission
    • Terms of Publication
    • Formatting Guidelines
    • Peer Review Process
    • Article Processing Charges
    • License Agreement
  • Ethics & Policies
    • Publication Ethics
    • Conflict of Interest
    • Open Access Policy
    • Archiving
    • Complaints Policy
    • Privacy Statement
    • Corrections and Retractions
    • Anti-plagiarism Policy
    • Generative AI Policy
  • Search
  • Contacts

Article

  • Read article
  • Download article

Received 19.02.2025

Revised 25.05.2025

Accepted 20.06.2025

Retrieved from Vol. 28, No. 1, 2025

Pages 8 -21

  • 140 Views

Suggested citation

Dashdamirli, N. (2025). Cross-platform development for microcontrollers: Design of a virtual machine based portable programming language. The National Transport University Bulletin: A Scientific and Technical Journal, 28(1), 8-21. https://doi.org/10.32703/2617-9040-2025-45-1

Cross-platform development for microcontrollers: Design of a virtual machine based portable programming language

Nuru Dashdamirli

Abstract

The  fundamental  role  of  microcontrollers  in  embedded  systems  and  the  Internet  of  Things  (IoT) environments   necessitates   efficient   software   development   approaches.   Resource   limitations   of microcontrollers,   the   complexity   of   low-level   programming   languages,   and   the   challenges   of implementing multitasking slow down the development process considerably. Additionally, the diversity of the microcontroller landscape creates substantial barriers to code portability, leading to increased development time to support different hardware platforms. This paper presents the design of a virtual machine-based programming approach to enable cross-platform development for microcontrollers. The proposed  portable  programming  language integrates with  a  custom  virtual  machine,  Mico8-Chip,  to suit  modern  microcontroller  applications.  This  allows  intuitive  control  over  peripherals  and  built-in support for concurrent execution. The provided abstraction layer significantly improves code portability and  accelerates  development  by  isolating  application logic  from  underlying  hardware  specifics. The primary purpose of this work is to address the fragmented microcontroller ecosystem and the challenges of low-level programming by introducing a unified and portable development solution

Keywords:

microcontroller; embedded systems,; virtual machine; programming; bytecode; concurrency; Internet of Things

References

  1. Wu, Z., Qiu, K., & Zhang, J. (2020). A Smart Microcontroller Architecture for the Internet of Things. Sensors, 20(7), 1821. https://doi.org/10.3390/s20071821.
  2. Krishnamurthy, J., & Maheswaran, M. (2016). Programming frameworks for Internet of Things. In Internet of Things (pp. 79-102). Morgan Kaufmann. https://doi.org/10.1016/B978-0-12-805395-9.00005-8.
  3. Bell, C. (2024). MicroPython for the Internet of Things: A Beginner’s Guide to Programming with Python on Microcontrollers Second Edition. Apress eBooks. https://doi.org/10.1007/978-1-4842-9861-9.
  4. Dashdamirli, N. (2025). Hybrid scheduling approach for concurrent task execution on microcontroller-based systems. Romanian        Journal   of            Information            Technology            and         Automatic          Control,   35(1),      79–90. https://doi.org/10.33436/v35i1y202506.
  5. Priyadarshini, S. B. B., Mahapatra, A., Mohanty, S. N., Nayak, A., Jena, J. P., & Samanta, S. K. S. (2022). myCHIP-8 emulator: An innovative software testing strategy for playing online games in many platforms. In Optimization of Automated Software Testing Using Meta-Heuristic Techniques (pp. 133-154). Cham: Springer International Publishing. https://doi.org/10.1007/978-3-031-07297-0_9.
  6. Cruz, N., Ruiz-Ferrández, M., Redondo, J. L., Álvarez, J., & Ortigosa, P. (2019). Applications of chip-8, a virtual machine from the late seventies, in current degrees in computer engineering. In EDULEARN19 Proceedings (pp. 1720-1729). IATED. https://doi.org/10.21125/edulearn.2019.0501.
  7. Dubé, D., & Feeley, M. (2005). BIT: A Very Compact Scheme System for Microcontrollers. Higher-Order and Symbolic Computation, 18(3), 271-298. https://doi.org/10.1007/s10990-005-4877-4.
  8. Feeley, M., & Dubé, D. (2003, November). PICBIT: A Scheme system for the PIC microcontroller. In Proceedings of the Fourth Workshop on Scheme and Functional Programming (pp. 7-15).
  9. St-Amour, V., & Feeley, M. (2010). PICOBIT: A Compact Scheme System for Microcontrollers. Implementation and Application of Functional Languages, 1-17. https://doi.org/10.1007/978-3-642-16478-1_1.
  10. Brouwers, N., Corke, P., & Langendoen, K. (2008, December). Darjeeling, a Java compatible virtual machine for microcontrollers. In Proceedings of the ACM/IFIP/USENIX Middleware'08 Conference Companion (pp. 18-23). https://doi.org/10.1145/1462735.1462740.
  11. Aslam, F. (2011). Challenges and Solutions in the Design of a Java VirtualMachine for Resource Constrained Microcontrollers (Doctoral dissertation, University of Freiburg).
  12. Varoumas, S., Vaugon, B., & Chailloux, E. (2016, January). Concurrent Programming of Microcontrollers, a Virtual Machine Approach. In 8th European Congress on Embedded Real Time Software and Systems (ERTS 2016) (pp. 711-720).
  13. Varoumas, S., Vaugon, B., & Chailloux, E. (2018, January). A generic virtual machine approach for programming microcontrollers: the OMicroB project. In 9th European Congress on Embedded Real Time Software and Systems (ERTS 2018).
  14. Gurdeep Singh, R., & Scholliers, C. (2019, October). WARDuino: a dynamic WebAssembly virtual machine for programming microcontrollers. In Proceedings of the 16th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes (pp. 27-36). https://doi.org/10.1145/3357390.3361029.
  15. Zandberg, K., & Baccelli, E. (2020, December). Minimal virtual machines on iot microcontrollers: The case of berkeley packet filters with rbpf. In 2020 9th IFIP International Conference on Performance Evaluation and Modeling in Wireless Networks (PEMWN) (pp. 1-6). IEEE. https://doi.org/10.23919/PEMWN50727.2020.9293081.
  16. Sarkar, A., Krook, R., Svensson, B. J., & Sheeran, M. (2021, September). Higher-order concurrency for microcontrollers. In Proceedings of the 18th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes (pp. 26-35). https://doi.org/10.1145/3475738.3480716.
Share
Facebook
Twitter
LinkedIn
Email
Telegram
Viber
WhatsApp

https://doi.org/10.32703/2617-9040-2025-45-1

Address
03049, Ukraine, Kyiv,
19, Ivana Ogienko Str.


Email
ntu@tstjournal.org.ua

Main information
  • Aims and Scope
  • Indexing
  • Terms of Publication
  • Editorial Board
  • Publication Ethics
Additional information
  • Complaints Policy
  • Peer Review Process
  • Open Access Policy
  • Anti-plagiarism Policy
  • Generative AI Policy
  • Archiving