avatar
Спасибо, жаль что не появилась статья на пол-годика раньше. Небольшое замечание, эти настройки Checksum для IAR версий 6.40 и новее, а для версий 6.10-6.30 необходимо еще поставить флажок в поле «Reverse byte order within word».
avatar
Было бы интересно :)
avatar
Компилятор умрёт от рекурсии?
Нет, компилятор просто посчитает лишний байт (который там был до вставки CRC), а потом просто CRC не сойдется.

Не будет ли равен CRC от ВСЕЙ прошивки (включая CRC от компилятора!) нулю в случае отсутствия ошибок?
Нет, так было бы, если бы мы XOR прошивки считали, а не CRC32.
Как оказалось, будет :)
avatar
Мы ведь не хотим, чтобы CRC считало само себя.
Компилятор умрёт от рекурсии?

И это. Не будет ли равен CRC от ВСЕЙ прошивки (включая CRC от компилятора!) нулю в случае отсутствия ошибок?
avatar
Оно реализует логическую функцию A(B+C)+BC последовательно-параллельным соединением, типа (+) — пять транзисторов — нагрузка — (-). В общем и всё. Вообще, несмотря на огромную теоретическую базу, в основном только тройное дублирование с мажоритированием и используют. Никакой магии. Хотя, раз есть интерес к надёжным системам могу статейку по основным принципам накидать, жаль я оттуда ушёл, не смогу показать на готовых рабочих примерах.
avatar
Кстати, интересно, как оно работает. Если есть опыт, расскажите (можно, отдельной статьей).
avatar
Мне как-то довелось поработать не с АЭС, но с космосом. Тройное дублирование тоже используют. А мега-надёжное аппаратное мажорирующее устройство состоит из 5 транзисторов. :)
avatar
Со станцией это я загнул :) Насколько мне известно. там используют тройное дублирование с мега-надежным аппаратным мажорирующим устройством.
avatar
Если говорить об атомных станциях, то обычно постулируется, что система надёжно (ровно 100%) диагностирует один отказ (или два, три…). В данном случае это не так. Так что перед включением сервопривода вывода стержней из активной зоны стоит проверить сумму хотя бы ещё раз =)
avatar
Зависит от того, как повредится и в каком месте эта процедура находится :)

Во-первых, при перепрошивке целостность обычно контролирует неперепрошиваемый бутлоадер, вероятность что в нем что-то повредится резко меньше, чем в прошиваемом коде.

Единственное место в процедуре контроля, в котором повреждение критично — инструкция проверки if'a (повреждение во всех остальных местах приведет к правильной ветке if'а). Инструкция сравнения занимает 4 байта (может и 2, лень искать). Пусть прошивка — 64кБайта. Если просто поделить одно на другое, то вероятность пропустить ошибку — 0.006%. Думается мне, что в реальности вероятность будет на порядок больше, но это намного лучше, чем ничего.
avatar
Что будет, если повредится процедура контроля прошивки?
avatar
Ух ты! Спасибо огроменное за ссылки! Только сейчас их увидел, посмотрел пару — просто офигенная подача материала. Наконец-то я смогу понять чему меня учили десять лет назад. Реально очень доходчиво объясняют.
avatar
Пока нет :) Другие неотложные дела.
avatar
Ну, как там разводка, продвигается?:)
avatar
Поправил статью, а то тупо выглядит :)
avatar
Да? :) Не знал. Ну тогда эта заметка будет для таких как я :)
avatar
Поэтому придумал велосипед свой способ.
Вообще-то, это штатный способ организации многоплатных проектов :)
avatar
Про масштаб я понимаю, конечно, но статистические методы нужны для исследования, а применять их можно и в маленьких масштабах.

Согласен, что пример плохой, я описывал методы :)
avatar
Если задача развиться до «правильной» экономики не стоит, то да можно это все и не учитывать. Но если конечная цель — выйти на правильную рыночную модель, то ее нужно начинать внедрять и оттачивать с самого начала.
avatar
поиграться в мега-корпорацию
А я пытаюсь доказать, что для вашего случая эти теории неприменимы! Экономические закономерности, которыми вы пытаетесь оперировать, верны «в среднем», когда работает закон больших чисел. У вас же — единичные, ручные продажи и индивидуальное ценообразование. Не все покупатели выбирают оптимальные решения, кто-то делает импульсивные покупки, кого-то (в принципе) можно обмануть и он заплатит втридорога. Нельзя считать этих покупателей показательными, чтобы строить вероятностные модели и делать прогнозы. Понимаете, о чем я? Не работает здесь экономика…