DashyFox bf14b3d7ad fix(rx/tx): B5 pop-by-value, B6 ISR micros mask, B7 crc parens, B10 div guard, send length validation
B5 (MEDIUM): RingBuffer::pop(T&) копирует под одной критсекцией; tick() перешёл на неё → нет торн-рида (внутренний interrupts() в T* pop снимал внешнюю защиту до чтения *ptr). T* pop() оставлен (не используется).
B6 (MEDIUM): убрана лишняя noInterrupts/interrupts вокруг micros() в EXTI-ISR (снимала PRIMASK посреди ISR). std::function-диспетчеризация attachInterrupt — структурна, не трогаю.
B7 (LOW): скобки в crcCheck (== & 0xFF по приоритету).
B10 (LOW): guard деления на 0 в ceil_div (актуально только при freeFrec — НЕ включаю).
send: sendDataFULL — валидация полного packSize<=31 (было len>bytePerPack=31, packSize=7+len оборачивался → тихая потеря Data payload 25..31).
B8 (isSubBufferOverflow) — уже volatile, потеря флага безвредна (диагностика), не трогаю. B9 (prevRise==0 при micros()==0) — уже обработан веткой в preambleProcessEdge, намеренно.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 13:38:51 +03:00
2026-04-13 14:44:18 +03:00
2026-04-15 11:00:48 +03:00
2026-04-15 11:00:48 +03:00
2026-04-07 13:25:55 +03:00
2025-01-16 17:51:21 +03:00
upd
2026-04-20 17:47:33 +03:00
2026-04-17 09:45:32 +03:00
2026-04-17 09:45:32 +03:00
2024-04-23 13:35:49 +03:00
2026-04-02 17:25:10 +03:00
Description
No description provided
7.9 MiB
Languages
C++ 79.2%
Python 18.2%
CMake 1.6%
Batchfile 1%