Цели для прототипов:
☑ 1. Научиться собирать код отдельно от Arduino IDE.
☑ 2. Написать универсальную отладочную функцию (пока нет отладчика).
☑ 3. Научиться отлаживать код при помощи аппаратного отладчика.
☑ 4. Запустить операционную систему (ОС) на Arduino Mega 2560.
☐ 5. Научиться конфигурировать ОС и использовать средства межпроцессного управления и передачи данных.
☑ 6. Подключить библиотеки Arduino Framework'а (как временное решение).
☑ 7. Написать простейший командный интерпретатор (shell).
☑ 8. Написать простейший Telnet сервер.
☑ 9. Разобраться с одновременной работой Ethernet карты и SD-карты.
☑ 10. Написать простейший FTP сервер.
☑ 11. Написать простейший HTTP сервер.
☐ 12. Написать Modbus TCP сервер.
☐ 13. Добавить поддержку последовательных Modbus RTU master и slave.
☐ 14. Написать простой шлюз Modbus TCP <-> Modbus RTU.
☑ 15. Написать простой C-подобный интерпретатор (для выполнения программ ПЛК).
☑ 16. Написать специальный загрузчик по типу 2boot, который имел бы несколько способов обновления прошивки.
Вот такой план. Будем потихоньку исполнять.
Новости:
Загрузчик предназначен для прошивки мк с использованием sd-карты.
Исходники доступны через svn (см. ссылки).
Замечания:
1. Где-то внутри Arduino Framework происходит отключения прерывания, отвечающего за переключение задач в scmRTOS. Из-за этого, как мне кажется, вторая задача не выводит в терминал сообщения. Думается мне, это связано с работой SPI, хотя это только догадки. Всё равно нужно переписывать класс SPI и работу с сокетами под многозадачность.
2. "Мусор" от клиентских терминалов не даёт нормально исполнять команды (работаю над этим).
3. Из-за наличия двух реализаций (подходов) к указателям на flash память, трудно написать универсальный (удобный) командный интерпретатор (все текстовые константы должны находиться во flash).
4. Нужно доработать интерпретатор, добавив управление клиентским терминалом через esc-последовательности. Это добавит гибкости в визуализацию.
1. Документация.
2. scmRTOS 5.1.0 (библиотека для Arduino Framework без конфигурационных файлов).
3. Telnet Server (svn, http).
4. SoapBox Snap .
5. Arduino-Ftp-Server (форум).
6. Виртуальная машина отладки (AVDM) .
7. AttoBasic - интерпретатор диалекта Бейсика для avr.
8. Проект «Дом для AMS» (модульное исполнение Arduino Mega2560 и W5500 для установки на DIN-рейку).
9. PicoC - very small C interpreter for scripting .
10. MegaD-2561 - новая ступень в развитии проекта MegaD .
11. Ардуино-совместимый ПЛК CONTROLLINO, часть 1 .
12. Исходники загрузчика uniboot .