Да, пришлось.
Когда размер файла стукнулся в 300к было принято решение сделать либу.
Заодно нашел баг в Ардуино ИДЕ, отрепортил. Пришлось файлы переименовывать все из .c в .h. Иначе внутряння ошибка в Ардуино ИДЕ при парсинге файлов.
Хреновый у них function prototype generator. Кстати, непонятно, зачем они свой парсер писали, который об GCCшные экстеншны спотыкается. Взяли бы что-нибудь из GNU Compiler Collection, там есть генераторы прототипов.
Достаточно просто включить заголовочный файл шелла, чтобы шелл автоматически запустился. Собственно, #include “espshell.h” и больше ничего не надо.
Поменял частотомер\счетчик импульсов: теперь их можно запускать параллельно (до 8 штук на оригинальном, и поменьше на S3 и всяких кастратах типа C3, C6).
Частотомер может работать в режиме триггера: ждать первого входного импульса и только потом засекать время и считать.
Команда suspend теперь умеет останавливать не только скетч, но и вообще любую задачу, если знаете ее ID. Команда kill больше стала похожа на Linux утилиту по синтаксису.
Из шелла можно смотреть\менять переменные скетча.
Если в процессе набора команды нажать вопросик, то появится подсказка по аргументам команды. Если такой хоткей мешает (например, вы AT команды набираете, там бывают вопросики, или xml файл редактируете), то его можно отключить (“var bypass_qm 1”).
Файловый менеджер все так же не умеет копировать каталог в каталог (ну, в смысле, все дерево каталогов). Зато можно маунтить флешки (SD) по SPI :). Кто бы мог подумать, что ФМ это такой долгий гемморой :-/.
Было принято решение приклеить туда еще примитивный ftp сервер, однопользовательский. Обоснование простое: сильно упрощается работа с файлами, т.к. большинство файловых менеджеров на PC поддерживают так или иначе FTP.
Удобнее работать из какого-нибудь условного Far’a, например, когда вам в html страницах вашего embedded HTTP сервера приходится чего-нибудь редактировать, файлы туда-сюда гонять.
Какие-то еще были улучшения, но я уже забыл, что и как.
Мне приехала ESP32S3 USB-OTG борда, буду запиливать злощастную USB консоль. Вроде нашел функции-примитивы для работы с USB CDC в самом ESP32S3, вернее, в его ROM.