Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Закрытая тема
Опции темы
Непрочитано 14.02.2011, 23:27   #101
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Отказоустойчивость ПО

Сообщение от realid Посмотреть сообщение
но если частично повреждена область памяти где нах-ся подпрограмма расчета CRC?
Посчитает направильно и результат не сойдется. Выходит будет принято решение, что пользовательская программа битая, хотя она целая. Это называется перебдеть
Реклама:
kison вне форума  
Сказали "Спасибо" kison
realid (14.02.2011)
Непрочитано 14.02.2011, 23:27   #102
testerplus
Прописка
 
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
testerplus на пути к лучшему
По умолчанию Re: Отказоустойчивость ПО

Сообщение от realid Посмотреть сообщение
Тогда где хранить CRC и как проверить её достоверность?
Хранится чаще всего либо в ROM вместе с кодом (если вычисляется на этапе компиляции), либо в EEPROM, если вычисляется в ходе работы. Иногда при вычислении в рантайме - пишется во Flash, но операция небезопасная, требует разных защит.

Достоверность проверяется пересчетом. Если не сходится - значит недостоверна. Часто в ответственных системах держат несколько ЦРЦ для различных участков кода.

Цитата:
CRC нужно посчитать, но если частично повреждена область памяти где нах-ся подпрограмма расчета CRC? Получается на каждого "проверяльщика" нужен свой "проверяльщик".
Насчет повреждения программы расчета: почему-то часто этот аргумент выдвигают в пользу вообще его не проверять ROM. Типа, фиг ли, если сбой там?

Но во-первых, например, на 64К кода нужен проверяльщик, скажем, размером 0.5К, т.е. область уязвимости сужается более чем в 100 раз. Во-вторых, сами проверяльщики пишутся с особыми требованиями (контроль стека, контроль сигнатур и пр.) и являются гораздо более устойчивыми к сбоям. Наконец в-третьих, и в самом проверяльщике не в любом месте сбой приведет к фатальным последствиям. Т.е. вероятность страшного сбоя, например в адресе команды GOTO, не так велика по отношению ко всем остальным вероятностям, вроде сбоя поля данных или арифметической инструкции. Но она не нулевая. Абсолютной защиты в 100% не будет, но снизить вероятность отказа с 10^-6 до 10^-8 - это хорошо.
testerplus вне форума  
Сказали "Спасибо" testerplus
realid (14.02.2011)
Непрочитано 14.02.2011, 23:28   #103
testerplus
Прописка
 
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
testerplus на пути к лучшему
По умолчанию Re: Отказоустойчивость ПО

Сообщение от st_1 Посмотреть сообщение
Сложнее с выбором действий после получения битой CRC ROM...
В системах с повышенными требованиями по отказоустойчивости следует хранить минимум две копии подпрограммы безопасного режима и держать ЦРЦ для каждой из них. (причем размещать и надо в разных фрагментах ROM)
testerplus вне форума  
Непрочитано 14.02.2011, 23:33   #104
testerplus
Прописка
 
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
testerplus на пути к лучшему
По умолчанию Re: Отказоустойчивость ПО

Сообщение от kison Посмотреть сообщение
Проверяется вся память вместе с загрузчиком. Проверяет сам загрузчик, так что гарантия не 100%. Это рассчитано не на сбой в памяти, а в основном контроль работы загрузчика.
100% никогда не достигнем
А как же с data retention быть? Да и при работе бутлоадера могут сбои быть (сбои бутлоадера - вообще отдельная тема, там на несколько страниц писанины получится)

Цитата:
Я думал извне это UART/SPI/I2C и т.п. Кстати и они оказывается не всегда проверяются - например время из RTC читаю как есть и понятия не имею как его проверить.
Обычно RTC содержат облать RAM общего назначения. тут после установки времени прописывается сигнатура (чем длиннее, тем лучше), которая каждый раз при чтении времени проверяется. Есть, конечно неприятности с RAM: при скачках питания или просто при падении напряжения батарейки данные теряются не одновременно во всех ячейках. Может сбиться один бит в поле минут, а все остальное, включая сигнатуру, останется живым.
testerplus вне форума  
Непрочитано 14.02.2011, 23:33   #105
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Отказоустойчивость ПО

Сообщение от testerplus Посмотреть сообщение
В системах с повышенными требованиями по отказоустойчивости следует хранить минимум две копии подпрограммы безопасного режима и держать ЦРЦ для каждой из них.
Вы там что - софт для ядерных реакторов проверяете? Просто следующий шаг это "иметь несколько систем с повышенными требованиями по отказоустойчивости". От трех до пяти
kison вне форума  
Непрочитано 14.02.2011, 23:38   #106
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: Отказоустойчивость ПО

Сообщение от kison Посмотреть сообщение
Вы там что - софт для ядерных реакторов проверяете? Просто следующий шаг это "иметь несколько систем с повышенными требованиями по отказоустойчивости". От трех до пяти
А почему бы и нет?
realid вне форума  
Непрочитано 14.02.2011, 23:40   #107
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Отказоустойчивость ПО

Сообщение от testerplus Посмотреть сообщение
Обычно RTC содержат облать RAM общего назначения. тут после установки времени прописывается сигнатура (чем длиннее, тем лучше), которая каждый раз при чтении времени проверяется.
Не все RTC содержат. Но вот некоторые... Я очень хорошо знаю непредсказуемость суждения о правильном времени по состоянию ОЗУ. В DS1302/1307. Если записать данные в ОЗУ, затем просадить батарейное питание до 1,0-1,2В, естественно сняв основное, то после подачи питания время собьется, а содержимое ОЗУ - нет. Я это проверял неоднократно.
kison вне форума  
Непрочитано 14.02.2011, 23:41   #108
testerplus
Прописка
 
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
testerplus на пути к лучшему
По умолчанию Re: Отказоустойчивость ПО

Сообщение от kison Посмотреть сообщение
Просто следующий шаг это "иметь несколько систем с повышенными требованиями по отказоустойчивости". От трех до пяти
Кстати, так и делается . Называется аппаратное резервирование (троирование). Часто делается с мажоритарным сравнением.

А почему ядерный реактор? Есть более простые устройства, например у стиральной машины есть блокировка дверцы во время стирки. И по 60730 (американский аналог для бытовухи UL1998 ) такие устройства должны выполнять функцию проверки памяти. Хотя, я знаю, некоторые просто выдают "1" на выходе и несложная схема переводит девайс в безопасный режим (блокирует всякие ответственные узлы и мигает лампочкой). Т.е. вся программа безопасного режима - выдать единичку и зациклиться.

Последний раз редактировалось testerplus; 14.02.2011 в 23:57.
testerplus вне форума  
Непрочитано 14.02.2011, 23:46   #109
testerplus
Прописка
 
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
testerplus на пути к лучшему
По умолчанию Re: Отказоустойчивость ПО

Сообщение от kison Посмотреть сообщение
Не все RTC содержат. Но вот некоторые... Я очень хорошо знаю непредсказуемость суждения о правильном времени по состоянию ОЗУ.
Это слабое место всех RTC (да и вообще любой ОЗУ). Остается только внутри программы сравнивать времена. Некоторые часы имеют бит контроля батарейки (не совсем необычный триггер, там что-то другое), поищу, у меня было описание такой микросхемы. Т.е. если бит рухнул, то нельзя говорить о достоверности, а по сигнатуре хотя бы можно судить, что была предустановка времени.
testerplus вне форума  
Непрочитано 14.02.2011, 23:52   #110
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Отказоустойчивость ПО

Сообщение от testerplus Посмотреть сообщение
А почему ядерный реактор? Есть более простые устройства, например у стиральной машины есть блокировка дверцы во время стирки.
Я вообще не понимаю как это работает После окончания стирки дверь разблокируется не сразу, причем не зависимо от питания. Можно выдернуть стиралку из розетки, но все равно придется ждать. Разбирать не хочется, да и жена не поймет..
kison вне форума  
Закрытая тема

Закладки


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 16:10.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot