You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Хаха. Все проще (пришлось формировать фейковый пакет и в него наталкивать показания регистров и особенно счетчиков MDRAH/MDRAL) - по приходу пакета в коде RxInt сперва вычитывается его заголовок (2 байта статус + 2 байта длина + 14 байт собственно заголовка), а затем принимается решение фильтровать его, не фильтровать, предлагать другим opener или нет - словом, в случае невостребованности пакета не происходит вызова CopyPacket, который бы должен довычитать остаток пакета. Без этого счетчик SRAM не дойдет до статуса следующего принятого пакета.
Выяснилось медитацией над счетчиком, равным 0xC12 после приема пакета длиной 0x40. Правильная длина счетчика после вычитки пакета должна бы быть 0x56. Разница в 0x12 (18 десятичное) и есть 4 байта статуса и длины + 14 байт заголовка.
Can be a SRAM pointer issue? MDRAH/MDRAL
http://read.pudn.com/downloads120/sourcecode/unix_linux/510106/dm9ks_20080214/dm9ks.c__.htm
The text was updated successfully, but these errors were encountered: