Size: a a a

2020 December 17

A

Alexander in Embedded Group
Василий Ярошенко
что еще раз подтверждает - что своё CRC - будет 100% подтверждением целосности пакета
А если битики побьются так, что контрольная сумма будет совпадать, а пакет будет не тем? )
источник

DP

Dmitry Ponyatov in Embedded Group
Alexander
Кстати есть ли какая-нить реализация передачи только diff прошивок через очень узкий канал и потом применения его, проверки целостности и прошивки? )
там веселье с линковкой — если меняется набор используемых функций из libc, LTO отрезает разные куски, и код по памяти елозит
т.е. нужно _всю_ libc статически во флеш запихивать на постоянные адреса, а потом к ней линковаться — не во всякий МК влезет
источник

ED

Electronics Designer in Embedded Group
Alexander
А если битики побьются так, что контрольная сумма будет совпадать, а пакет будет не тем? )
Тогда коды Хемминга! :) Да чего там Хемминга... Сразу Рида-Соломона, причем с перемежением. :)
источник

DP

Dmitry Ponyatov in Embedded Group
Electronics Designer
Тогда коды Хемминга! :) Да чего там Хемминга... Сразу Рида-Соломона, причем с перемежением. :)
с алгоритмами коррекции надо осторожно, а то можно OS/2 получить на выходе
источник

A

Alexander in Embedded Group
Dmitry Ponyatov
там веселье с линковкой — если меняется набор используемых функций из libc, LTO отрезает разные куски, и код по памяти елозит
т.е. нужно _всю_ libc статически во флеш запихивать на постоянные адреса, а потом к ней линковаться — не во всякий МК влезет
Если в линкерном файле побить на секции для бизнес-логики с запасом на расширение, а диффать hex?
Ведь intel hex однозначно говорит где какая секция должна лежать
источник

ED

Electronics Designer in Embedded Group
Кстати, если серьезно, есть так называемая контрольная сумма Флетчера. Она не сильно сложнее обычной, но зато чувствительна к порядку байт, например.
https://en.wikipedia.org/wiki/Fletcher's_checksum
источник

A

Alexander in Embedded Group
Electronics Designer
Кстати, если серьезно, есть так называемая контрольная сумма Флетчера. Она не сильно сложнее обычной, но зато чувствительна к порядку байт, например.
https://en.wikipedia.org/wiki/Fletcher's_checksum
Для многих STM CRC32 хороша тем что можно влёт через аппаратный блок посчитать.
А коды Рида-Соломона, Голда и проч. - могут быть требовательнее к вычислительным ресурсам.
источник

ED

Electronics Designer in Embedded Group
Да естесственно, коды Рида-Соломона это уже безумие.
источник

ED

Electronics Designer in Embedded Group
Нужен серьезный повод, чтобы с ними заморачиваться.
источник

A

Alexander in Embedded Group
Electronics Designer
Да естесственно, коды Рида-Соломона это уже безумие.
Хотя они насколько я помню несколько ошибок восстановить могут.
Не придется пакет перепосылать.
источник

ED

Electronics Designer in Embedded Group
Это да, но есть нюансы.
источник

Х

Х in Embedded Group
Electronics Designer
Нужен серьезный повод, чтобы с ними заморачиваться.
Чего не сделаешь ради хобби...
источник

ED

Electronics Designer in Embedded Group
:DDD
источник

LZ

Leonid Zaliubovskii in Embedded Group
Василий Ярошенко
а это может у вас получится объяснить как TCP может доставить битый пакет
вот интересный пример из одного из прошлого проекта. Дело было в 201x делали проект трекера. Который посылал данные через sim900. И был такой забавный эффект - данные из девайса ушли, провайдер данные посчитал. Но на сервер не дошло. При этом встроенный TCP стек отрапортовал что данные ушли. И проблема воспроизводилась всегда, в определенных сотах оператора.
источник

Х

Х in Embedded Group
Leonid Zaliubovskii
вот интересный пример из одного из прошлого проекта. Дело было в 201x делали проект трекера. Который посылал данные через sim900. И был такой забавный эффект - данные из девайса ушли, провайдер данные посчитал. Но на сервер не дошло. При этом встроенный TCP стек отрапортовал что данные ушли. И проблема воспроизводилась всегда, в определенных сотах оператора.
Т.е. впн тоже бы поломался?
источник

LZ

Leonid Zaliubovskii in Embedded Group
Х
Т.е. впн тоже бы поломался?
а вот хз. Были времена GPRS
источник

A

Alexander in Embedded Group
Leonid Zaliubovskii
вот интересный пример из одного из прошлого проекта. Дело было в 201x делали проект трекера. Который посылал данные через sim900. И был такой забавный эффект - данные из девайса ушли, провайдер данные посчитал. Но на сервер не дошло. При этом встроенный TCP стек отрапортовал что данные ушли. И проблема воспроизводилась всегда, в определенных сотах оператора.
У нас был потрясающий глюк на Telit: при температуре -35 блок переставал принимать сообщения и впадал в коматоз минут на 10 (видимо, до истечения внутреннего таймаута), но стоило отправить сообщение самому или пингануть любой IP - всё сразу же оживало )
источник

LZ

Leonid Zaliubovskii in Embedded Group
не пробовал. Воспроизводилось на симкомах с определенной прошивкеой
источник

Х

Х in Embedded Group
Leonid Zaliubovskii
а вот хз. Были времена GPRS
Ну просто операторы раньше и рекламу пихали в данные...
источник

LZ

Leonid Zaliubovskii in Embedded Group
Alexander
У нас был потрясающий глюк на Telit: при температуре -35 блок переставал принимать сообщения и впадал в коматоз минут на 10 (видимо, до истечения внутреннего таймаута), но стоило отправить сообщение самому или пингануть любой IP - всё сразу же оживало )
какая прелесть
источник