Выпуск Snek 1.6, Python-подобного языка программирования для встраиваемых систем
Кит Паккард (Keith Packard), активный разработчик Debian, лидер проекта X.Org и создатель множества X-расширений, включая XRender, XComposite и XRandR, опубликовал новый выпуск языка программирования Snek 1.6, позиционируемого как упрощённый вариант языка Python, адаптированный для использования на встраиваемых системах, на которых недостаточно ресурсов для использования MicroPython и CircuitPython. Snek не претендует на полноценную поддержку языка Python, но может использоваться на чипах, имеющих всего 2КБ ОЗУ, 32 КБ Flash-памяти и 1КБ EEPROM. Код проекта распространяется под лицензией GPLv3. Сборки подготовлены для Linux, Windows и macOS.
В языке Snek используется семантика и синтаксис Python, но поддерживается лишь ограниченное подмножество возможностей. Одной из целей, которая учитывается при разработке, является сохранение обратной совместимости — программы на Snek могут выполняться с использованием полноценных реализаций Python 3. Snek портирован для широкого спектра встраиваемых устройств, включая платы Arduino, Feather/Metro M0 Express, Adafruit Crickit, Adafruit ItsyBitsy, Lego EV3 и µduino, предоставляет доступ к GPIO и различным периферийным устройствам.
При этом проект также развивает собственный открытый микроконтроллер Snekboard (ARM Cortex M0 с 256КБ Flash и 32КБ ОЗУ), рассчитанный на использование со Snek или CircuitPython, и нацеленный на обучение и создание роботов с использованием деталей LEGO. Средства для создания Snekboard собраны в ходе крaудфандинга.
Для разработки приложений на Snek может использоваться редактор кода Mu (патчи для поддержки) или собственная консольная интегрированная среда разработки Snekde, которая написана с использованием библиотеки Curses и предоставляет интерфейс для редактирования кода и взаимодействия с устройством через USB-порт (можно сразу сохранять программы в eeprom устройства и загружать код с устройства).
В новом выпуске:
Добавлена поддержка явной синхронизации на базе ENQ/ACK, позволяющей приложениям отправлять большие объёмы данных без необходимости поддержи управления потоком на стороне операционной системы, в том числе при подключении большого числа устройств к USB или последовательному порту, не предоставляющих управления потоком.
- Значительно улучшен порт для платы Lego EV3, поддержка которой доведена до уровня других устройств.
Добавлен порт для платы Narrow 1284 на базе SoC ATmega1284.
Добавлен порт для платы Seeed Grove Beginner Kit на базе ATmega328p.
- Добавлен порт для платы Seeeduino XIAO на базе SAMD21, подключаемой через USB-C.
- Добавлен порт для платы Arduino Nano Every на базе ATmega4809, оснащённой 6 КБ ОЗУ.
- Источник:
© OpenNet