Pull to refresh
4
5.5
Алексей Тертычный@pinelab

Electronics Design Eng.

Send message

pineTERM — минималистичный, но мощный веб-терминал для UART

Level of difficultyEasy
Reading time2 min
Reach and readers4.4K

Перепробовал кучу софта для UART. Все бесит. Решил завайбить запилить свой.

pineTERM — минималистичный веб-терминал для UART, который не тормозит на длинных сессиях и не требует установки. Работает через Web Serial API: открыл браузер, подключился к порту, работаешь.

Основная боль существующих решений — они начинают фризиться, когда в логе сотни тысяч строк. pineTERM решает это батчингом DOM-обновлений и yield в main thread. Можно держать сессии часами с плотным потоком данных — интерфейс остаётся отзывчивым.

Ключевая фича — JSON-сценарии. Загружаешь файл с последовательностью команд, задаёшь задержки и повторы, выполняешь автоматом. Удобно для отладки протоколов и стресс-тестов.

Другие фичи: динамические поля ввода HEX/ASCII, автоформатирование hex-строк, тайминг пакетов с настраиваемым порогом, переключение HEX/ASCII на лету, экспорт полного лога без ограничений, тёмная/светлая тема.

Написан на чистом JS без фреймворков. Работает в Chrome, Edge, Opera.

Читать далее

Реализация многозадачности на функциональных очередях (без RTOS)

Reading time8 min
Reach and readers5.9K

Когда необходимо выполнять несколько действий (процессов/задач) одновременно на микроконтроллере, обычно мы задумываемся об использовании RTOS (Real Time Operating System). RTOS обычно занимает несколько дополнительных килобайт памяти. В то же время для приложений RTOS может добавить больше сложности, в том числе при отладке.

Большинство RTOS использует алгоритм упреждающего планирования. С помощью использования прерывания текущий выполняемый процесс приостанавливается и вызывается планировщик задач, чтобы определить, какой процесс должен выполняться следующим. Процессы получают некоторое количество процессорного времени небольшими порциями. Суммарная длительность времени, получаемого процессом, зависит от его приоритета. Все процессы обычно представляют собой бесконечные циклы.

Происходит прерывание одного задания, сохранение и переключение контекста. Операции переключения между заданиями требуют несколько дополнительных операций со стороны операционной системы.

Читать далее

Information

Rating
946-th
Registered
Activity