Решил заняться чем-то новым, точнее хорошо забытым старым, и освоить форт
на микроконтроллерах.
Перед компилируемыми ЯП форт имеет преимущество за счёт своей интерактивности -
писать и отлаживать код можно непосредственно на целевом устройстве не занимаясь каждый раз сборкой и прошивкой.
С другой стороны, микроконтроллеры уже достаточно мощные, что бы запускать интерпретируемые языки, такие как Lua или JavaScript,
но они отбирают для своей работы ценные ресурсы МК, да и работают сравнительно медленно.
Ядро же форт-машин компактно, и сам язык позволяет генерировать эффективный код, что позволяет
на минимальном железе писать программы сопоставимые по скорости с ассемблерными, при этом обладающие хорошей переносимостью
между различными архитектурами (в рамках одной реализации).
Есть в природе вот такая забавная штучка на базе микроконтроллера STM32F103.
В своём составе имеет:
Микроконтроллер STM32F103RBT6 на базе ядра ARMv7-M (Cortex-M3). В корпусе LQFP64. Трёхкоординатный датчик ускорения. Цветной графический дисплей 128x128 точек. Кнопка, USB-интерфейс, звукоизлучатель, светодиоды, площадки для подключения устройств расширения. Встроенный JTAG отладчик с подключением к ПК через USB. Версия OpenOCD из репозитория поддерживает встроенный отладчик под именем rlink.
Если отладка на реальном железе не нужна, можно пойти другим путём и воспользоваться встроенными возможностями контроллера STM32 - загрузчиком через UART1.
Инициализирует встроенные часы реального времени (RTC) на работу с внешним кварцевым резонатором 32768 кГц и с секундными прерываниями.
Процедура инициализации и обработки прерывания по переполнению от таймера.