Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Only 1st packet gets RXed #3

Open
timtashpulatov opened this issue Nov 21, 2013 · 1 comment
Open

Only 1st packet gets RXed #3

timtashpulatov opened this issue Nov 21, 2013 · 1 comment

Comments

@timtashpulatov
Copy link
Owner

Can be a SRAM pointer issue? MDRAH/MDRAL

http://read.pudn.com/downloads120/sourcecode/unix_linux/510106/dm9ks_20080214/dm9ks.c__.htm

@timtashpulatov
Copy link
Owner Author

Хаха. Все проще (пришлось формировать фейковый пакет и в него наталкивать показания регистров и особенно счетчиков MDRAH/MDRAL) - по приходу пакета в коде RxInt сперва вычитывается его заголовок (2 байта статус + 2 байта длина + 14 байт собственно заголовка), а затем принимается решение фильтровать его, не фильтровать, предлагать другим opener или нет - словом, в случае невостребованности пакета не происходит вызова CopyPacket, который бы должен довычитать остаток пакета. Без этого счетчик SRAM не дойдет до статуса следующего принятого пакета.

Выяснилось медитацией над счетчиком, равным 0xC12 после приема пакета длиной 0x40. Правильная длина счетчика после вычитки пакета должна бы быть 0x56. Разница в 0x12 (18 десятичное) и есть 4 байта статуса и длины + 14 байт заголовка.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant