Чистая эмпирика:
1. Блоки данных с CRC16 в конце прекрасно самосинхронизируются при фиксированной длине блока.
Таким образом, достаточно отследить последний правильный кадр методом скользящего CRC.
2. При overlapping-записи в память никаких проблем не наблюдается, если длина записываемого блока нечетная (ессно, при четном размере свободного пространства памяти

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