Устройство на микроконтроллере и комп связаны по USB, но со стороны микроконтроллера все предельно просто - 8-битный порт для данных, 2 бита для контроля заполнения FIFO, и 2 бита для записи/чтения порта.
Возможно горячее подключение/отключение устройства, и поэтому простой протокол типа len-cmd-data-crc не может определить где начинается пакет, и где он кончается. Как проще всего организовать синхронизацию в таких случаях? Микроконтроллер 8-битный, очень мало памяти, сам по себе медленный, посему варианты перепаковывать байты по 7 бит не приветствуются. Таймауты тоже не вариант, тк данные буферизируются, да и таймеры заняты другим.
Нужно что-то быстрое и не требовательное к ресурсам. Пока рассматриваю вариант неких magic чисел в начале/конце пакета. Выслушаю ваши предложения.