То есть развернул виртуальную машину на микроконтроллере вам не придётся писать байт код для этой машины?
Придётся, но подправить скрипт и обновить прошивку можно за считанные секунды. С бинарником такой фокус не пройдёт. Да и небезопасно это, можно сделать ошибку в программе и устройство уже никогда не выйдет на связь.
А теперь все дружно идем сюда и читаем http://microsin.net/programming/avr/avr109-self-programming.html И понимаем, что самообновление не из секции загрузчика это уровень далеко не абдурино телепузиков. А если обновляться с помощью загрузчика, то не вижу смысла во всей этой затее.
Умм, публиковать пока не думал. Может, для вас лично, в онлайн устройство вывести? Это можно, могу завтра.
На avr можно просто загружать код, без всяких интерпретаторов. Собственно, ардуино так и работает - принимает код по serial-интерфейсу, записывает в память и перезагружается.
Для создания ПЛК на основе ардуино я решил использовать графические блоки. Мне очень понравилась технология blockly. Blockly позволяет сгенерировать очень компактный байткод для очень простой виртуальной машины. Такая виртуальная машина много проще чем NanoVM.
Ох уж эти священные войны вокруг ПЛК. Что круче ST,LD,FBD или С++ программа. Для меня всегда было круче ПЛК, хотя у меня большая практика писать на ассемблере.
Что? Не могу привязать это к моему сообщению никак. Если вам нужен функционал плк, то просто напишите транслятор из языка плк в язык мк. Половина плк так и работают.
Почему нет? Blockly это гибкая платформа для генерации графических блоков в разные языки, и в ассемблер тоже. Согласен с вами. Мне именно ПЛК и нужен был. Понимаю, что виртуальная машина и ПЛК понятия совершенно разные. Просто в моём случае, ПЛК содержит в себе виртуальную машину, которая проигрывает байткод, сформированный blockly.