Да, можно и любой другой, но многие исходники для мк написаны на Си и вы сможете их использовать. Возможности picoc на удивление обширны, если посмотреть на его тестовые примеры. Есть и другая причина. Я не видел нигде никаких других подобных исходников для других языков, исключая может быть tinybasic, но его отмёл сразу, т.к. не идёт ни в какое сравнение с picoc.Да,титанический труд,а зачем си код если он будет храниться в виде исходников,с таким же успехом можно использовать любой другой язык.
Есть ещё один вариант - это tcc, который является компилятором, т.е. можно иметь компилятор C прямо на мк, а программу хранить во флеш. Этот путь гораздо сложнее, т.к. там нужно написать часть, ответственную за формирование оп-кода avr. Ещё я не уверен, что он влезет в avr, в отличие от picoc. Скорее не влезет.
Что касается возможностей, то они будут определяться целиком доступными в прошивке библиотеками. Мой текущий код занимает всего 30% флеша у ATmega2560, там есть драйвер sd-карты и picoc (RTOS я пока исключил, т.к. надо изучить требования к памяти). Я могу добавить любой функционал: драйверы i2c, работа с экраном и т.д. Пользователи не должны их писать, функции для работы с периферией должны быть доступны внутри "скрипта" в виде какого-то API.в том то и дело что примитивно, возможности будут сильно ограничены, ну и скорость?
Скорость буду тестировать. Её можно регулировать через объём буфера чтения, чем больше объем, тем меньше обращений к карточке.
Поскольку всё упирается в ОЗУ, то без своей платы не обойтись. Кстати, существует отечественный ПЛК на avr с внешней ОЗУ (ПЛК NLсon-1AT). Это примерно то, чего хочу я, только мне нужно больше периферии и нужен обязательно JTAG, т.к. я отлаживаю код в отладчике. У меня к Arduino Mega2560 есть специальный комплект для железной отладки, без него было бы очень трудно или вообще не возможно что-то делать.
По поводу других железок типа esp32, где всего больше. У них у всех есть одна проблема, которая очень осложняет жизнь - это дефрагментация памяти. Она есть даже в железках на uClinux'е с 32 Мб ОЗУ, с которыми работал я, а они круче этих поделок. Эта проблема не даст возможности полноценно пользоваться интерпретаторами других языков, т.к. там объекты динамически создаются и освобождаются. Никто не скажет сколько сможет проработать такое устройство, пока память не закончится. Чем ещё там всё плохо, т.к. это тем, что нужна виртуальная машина с Linux, для сборки исходников. Следовательно нужно ещё знать всю кухню для сборки и чем сложнее устройство, тем дальше оно от простых смертных.
В общем, поскольку я знаком с этой всей кухней, то мне не охота каждый раз что-то разворачивать, чтобы запрограммировать устройство. Я хочу иметь одну универсальную прошивку и всё и знать, что мне достаточно простого текстового редактора (пока), чтобы изменить логику работы своего устройства. Конечно, у такого подхода будет и куча минусов, но мне этого одного плюса достаточно.