Крос-платформенна розробка для мікроконтролерів: проєктування переносимої мови програмування на основі віртуальної машини
Ключові слова:
мікроконтроллер, вбудовані системи, віртуальна машина, програмування, байт-код, паралелізм, інтернет речейАнотація
Фундаментальна роль мікроконтролерів у вбудовуваних системах та середовищах Інтернету речей потребує ефективних підходів до розробки програмного забезпечення. Обмеження ресурсів мікроконтролерів, складність мов програмування низького рівня та проблеми реалізації багатозадачності значно уповільнюють процес розробки. Крім того, різноманітність екосистеми мікроконтролерів створює суттєві бар'єри для портативності коду, що призводить до збільшення часу розробки для підтримки різних апаратних платформ. У цій статті представлено розробку підходу програмування на основі віртуальної машини, що забезпечує кроссплатформенну розробку для мікроконтролерів. Пропонована мова програмування, що переноситься, інтегрується з користувальницькою віртуальною машиною Mico8-Chip для відповідності сучасним додаткам мікроконтролерів. Це забезпечує інтуїтивне керування периферійними пристроями та вбудовану підтримку паралельного виконання. Наданий рівень абстракції значно покращує переносимість коду та прискорює розробку, ізолюючи логіку застосування від базових апаратних особливостей.
Посилання
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
Aslam, F. (2011). Challenges and Solutions in the Design of a Java VirtualMachine for Resource Constrained Microcontrollers (Doctoral dissertation, University of Freiburg).
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).
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).
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.
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.
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.
##submission.downloads##
Опубліковано
Як цитувати
Номер
Розділ
Ліцензія

Ця робота ліцензується відповідно до Creative Commons Attribution 4.0 International License.
Ліцензійні умови: Це стаття з відкритим доступом, поширювана за умовами Ліцензії Creative Commons Attribution License, яка дозволяє необмежено використовувати, розповсюджувати та відтворювати на будь-якому носії за умови представлення автора та джерела оригіналу.











