|
Целесообразность тестирования памяти и регистров |
|
|
Guest_Serg79_*
|
Apr 28 2007, 09:57
|
Guests

|
В данной теме мне хотелось бы обсудить вопрос целесообразности проведения тестирований памяти и регистров микроконтроллера.
Теперь хочу высказать свои мысли по этому поводу. Одним из главных требований выдвигаемых к программному обеспечению (ПО) для встраиваемых систем, это – контроль и проверка правильного функционирования рабочего окружения программы. К этому набору относятся, касательно микроконтроллеров AVR, регистры общего назначения (РОН), оперативно запоминающее устройство (ОЗУ), регистр состояния выполнения программы (SREG), память хранящая код программы (FLASH) и устройства с которыми работает программа (USART, ADC, TWI и т.д.). Так что в независимости от того хочешь ты этого или не хочешь, твоя программа помимо того что должна соответствовать требованиям выдвигаемым “техническим заданием”, дополнительно должна выполнять все требования предъявляемые к ПО для встраиваемых систем.
Высказывания такого характера как: ”Да что их проверять, за всю мою долгую историю собирания разных устройств на коленка, еще не у одного контроллера не выбило ячейку памяти” или ”Этого не может быть потому что этого не может” и ”т.д.”, просто не выдерживают никакой критики.
А вот вопросы касающиеся целесообразности проверки того или иного узла микроконтроллера и глубины проверки одного взятого узла мне бы и хотелось здесь обсудить.
Вот я и хочу услышать мнение тех людей, которым приходилось сталкиваться с данными вопросами, а так же послушать их высказывания по этому поводу и методы решения этих проблем.
|
|
|
|
|
 |
Ответов
|
Feb 11 2008, 18:49
|

Участник

Группа: Свой
Сообщений: 66
Регистрация: 28-01-08
Из: Николаев
Пользователь №: 34 507

|
Для любой встроенной системы, имеет смысл тестировать EEPROM(для AVR), так как в ней наиболее часто происходят сбои, тестировать регистры(таймеры, АЦП, USART и т.п.) не имеет смысла потому, что с нерабочими регистрами устройство просто не пройдёт выходной контроль. В процессе работы есть смысл проверять связь с внешними устройствами (хотя это происходит само собой, если не использовать задержку вместо ожидания готовности устройства). Гораздо важнее обеспечить "Безопастное состояние" устройства после/вовремя сбоя. Например в случае выхода из строя источника тактирования процессора никакие тесты не помогут, а установка второго МК для контроля основного приводит к вопросу "Кто будет сторожить сторожей?". Последнее не относится к задачам где требуется резервирование, это отдельная и сложная тема.
|
|
|
|
|
Feb 11 2008, 20:05
|

Местный
  
Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947

|
Цитата(Getmanov @ Feb 11 2008, 21:49)  тестировать регистры(таймеры, АЦП, USART и т.п.) не имеет смысла потому, что с нерабочими регистрами устройство просто не пройдёт выходной контроль. Входной-то контроль может вполне вероятно, что они и проходят, но не факт, что какой-то из модулей MCU не выйдет из строя после 10 лет эксплуатации.. Поэтому тестировать надо Как Вы считаете, что более надёжно: 1) Вероятность сбоя устройства равна 10 в минус 9 степени; вероятность того, что этот сбой система не обнаружит (не зарегистрирует) и соотвтетственно не предпримит ни каких мер равна 50% 2) Вероятность сбоя устройства равна 10 в минус 3 степени; вероятность того, что этот сбой система не обнаружит (не зарегистрирует) и соотвтетственно не предпримит ни каких мер равна 0,0000001% И что более надёжно? "Надёжная" система, сбои которой просто не обнаруживаются или "ненадёжная" система, у которой 99,99999999% сбоев обнаруживаются и предпринимаются соответствующие меры по устранению их последствий Как говорится: лучше перебдеть, чем недобдеть
--------------------
После устранения бага в программе она стала работать....хуже
|
|
|
|
|
Feb 14 2008, 09:41
|

Участник

Группа: Свой
Сообщений: 66
Регистрация: 28-01-08
Из: Николаев
Пользователь №: 34 507

|
Цитата(Дон Амброзио @ Feb 11 2008, 22:05)  Как говорится: лучше перебдеть, чем недобдеть Перебдеть то может и лучше, если это не будет вызывать сбоев оборудования, по опыту скажу, главное не перестараться. Когда диагностика превосходит по сложности основную программу, это только повышает вероятность отказа, причем однозначно по вине разработчика, что очень неприятно. Могу сделать вывод, что диагностика работы обязательна, но без фанатизма. Для устройств которые обеспечивают надёжность 99.9(9)% надо использовать какой-нибудь ПЛК с горячим резервированием, а не городить огород из МК.
|
|
|
|
|
Feb 14 2008, 15:45
|

Местный
  
Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947

|
Цитата(Getmanov @ Feb 14 2008, 12:41)  Перебдеть то может и лучше, если это не будет вызывать сбоев оборудования А почему правильно написанная программа должна вызывать сбои оборудования? Да хоть она сверхсложная и сверхзапутанная к оборудованию-то это какое имеет отношение? Если в программе нет ошибок, доущенных на этапе её проектирования, то никаких сбоев оборудования она вызвать не может.. Скорее наоборот, сбой оборудования может вызвать сбой в программе
--------------------
После устранения бага в программе она стала работать....хуже
|
|
|
|
|
Feb 16 2008, 00:29
|

Участник

Группа: Свой
Сообщений: 66
Регистрация: 28-01-08
Из: Николаев
Пользователь №: 34 507

|
Цитата(Дон Амброзио @ Feb 14 2008, 17:45)  Скорее наоборот, сбой оборудования может вызвать сбой в программе А вот как раз и нет. Сбой оборудования не должен вызывать сбоя в программе, иначе это ПЛОХАЯ программа. Цитата(Дон Амброзио @ Feb 14 2008, 17:45)  А почему правильно написанная программа должна вызывать сбои оборудования? Да хоть она сверхсложная и сверхзапутанная к оборудованию-то это какое имеет отношение? Под оборудованием я имел ввиду весь комплекс, а если он сбоит, то заказчику будет все равно, почему у него не работает его устройство- потому, что МК повис, или потому, что провод оборвался.
|
|
|
|
|
Feb 16 2008, 11:32
|

Местный
  
Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947

|
Цитата(Getmanov @ Feb 16 2008, 03:29)  А вот как раз и нет. Сбой оборудования не должен вызывать сбоя в программе, иначе это ПЛОХАЯ программа. Да? А случайный джамп не вызовет сбоя в программе? И искжение данных в ОЗУ? Почитайте тут http://electronix.ru/forum/index.php?showt...mp;#entry365890Цитата(Getmanov @ Feb 16 2008, 03:29)  если он сбоит, то заказчику будет все равно, почему у него не работает его устройство- потому, что МК повис, или потому, что провод оборвался. Согласен..А к чему Вы это сказали? Цитата(Dog Pawlowa @ Feb 15 2008, 07:31)  Потому что, дружище доктор, диагностика требует и дополнительных аппаратных затрат. По крайней мере дополнительного объема программной памяти Да Вы мне прям Америку открыли Цитата(Dog Pawlowa @ Feb 15 2008, 07:31)  будет сбоить именно при диагностическом тестировании. Повторяю. Нормально написаннная программа без ошибок просто так не сбоит. Если программа сбоит (ПРАВИЛЬНАЯ ПРОГРАММА) значит железо сбойнуло Цитата(SasaVitebsk @ Feb 15 2008, 14:02)  Чем сложнее система, тем она менее надёжна. Это относится и к программному обеспечению, хотя и в меньшей степени. Это к программному обеспечению не относиться...Поскольку для программного обеспечения нет такого понятия как износ. Если алгоритм корректный и кодирование без ошибок, то сложная программа будет даже более надёжной, поскольку более интеллектуально сможет разрулить все ситуации, чем дубовая простая прога, в которой от всех ситуация есть только лом - Watchdog
--------------------
После устранения бага в программе она стала работать....хуже
|
|
|
|
|
Feb 16 2008, 11:48
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Дон Амброзио @ Feb 16 2008, 14:32)  Если алгоритм корректный и кодирование без ошибок, то сложная программа будет даже более надёжной, поскольку более интеллектуально сможет разрулить все ситуации, чем дубовая простая прога, в которой от всех ситуация есть только лом - Watchdog Абсолютно правильные слова - подпишусь под каждым. Неуклонно следую принципу, что в правильно написанной системе кода, который занимается разборками с нештатными ситуациями должно быть как минимум сопоставимое количество с рабочим кодом. Watchdоg, для защиты от программых ошибок это вообще абсолютный моветон. Однако, весь, извинте, буду грубым, бред, который в соседней ветке и тут выплескивается не соответствует первым-же словам Вашего постулата "если алгоритм корректный" - ну нет корекных алгоритмов работы программ в неисправных машинах. И "кодирование без ошибок" - занимаясь всей этой надуманной фигней написать код без ошибок становится невероятной задачей, для сколь-нибудь РЕАЛЬНОГО приложения, а не кунштюковской демки.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
Сообщений в этой теме
Serg79 Целесообразность тестирования памяти и регистров Apr 28 2007, 09:57 arttab В серии есть сбои в работе мк. раньше основная про... Apr 28 2007, 10:14 Dog Pawlowa Цитата(Serg79 @ Apr 28 2007, 09:57) В дан... Apr 28 2007, 10:35 beer_warrior МК достаточно сложное устройство и полноценная про... Apr 28 2007, 10:50 Serj78 я не вижу смысла проверять целостность внутренних ... Apr 28 2007, 11:17 =AVR= Проверка работоспособности МК самим МК, работоспос... Apr 28 2007, 11:23 zltigo Цитата(=AVR= @ Apr 28 2007, 11:23) Провер... Apr 29 2007, 13:06 Дон Амброзио Цитата(=AVR= @ Apr 28 2007, 14:23) Провер... Feb 11 2008, 18:16 VladimirYU МК в конечном счете лишь часть системы, может быть... Apr 28 2007, 11:43 KRS А вот у меня был реальный случай в ATMega8515 5 би... Apr 28 2007, 12:58 SasaVitebsk Цитата(KRS @ Apr 28 2007, 12:58) А вот у ... Apr 30 2007, 00:35  KRS Цитата(SasaVitebsk @ Apr 30 2007, 01:35) ... Apr 30 2007, 11:46   SasaVitebsk Цитата(KRS @ Apr 30 2007, 11:46) Если вы ... Apr 30 2007, 12:11  zltigo Цитата(SasaVitebsk @ Apr 30 2007, 00:35) ... May 1 2007, 00:48 Kovrov Тоже очень больной вопрос....
У меня в одном проек... Apr 29 2007, 12:46 Dog Pawlowa Цитата(Kovrov @ Apr 29 2007, 12:46) Тоже ... Apr 29 2007, 19:50 sadat Добавлю свое замечание по этому вопросу.
Из опыта,... Apr 29 2007, 14:53 singlskv Долго думал участвовать в обсуждении или не участв... Apr 30 2007, 00:55 Nanobyte А вот ещё какой вопрос возникает.
Все предложенные... Apr 30 2007, 19:56 umup ЦитатаТак как КР580 выполнен на динамических регис... Apr 30 2007, 20:52 Nanobyte Очень просто. Статические регистры выполнены на об... Apr 30 2007, 21:12 bodja74 2Nanobyte
Незнаю как РОН ,но SRAM в AVR указано я... Apr 30 2007, 23:23 Nanobyte Цитата(bodja74 @ May 1 2007, 00:23) ...Не... May 1 2007, 00:09 slog Можно проверить CRC EEPOM и FLASH, как самые вероя... May 2 2007, 13:19 SasaVitebsk Цитата(slog @ May 2 2007, 13:19) Можно пр... May 2 2007, 16:37 ПАВ Хочу сказать свои два слова.
В общем случае разли... May 9 2007, 06:34 klop Для средненькой прооверки памяти AVR польззовал сл... May 9 2007, 16:27   SasaVitebsk Цитата(Getmanov @ Feb 14 2008, 13:41) Для... Feb 14 2008, 11:14    Dog Pawlowa Цитата(Дон Амброзио @ Feb 14 2008, 19:45)... Feb 15 2008, 04:31       Дон Амброзио Цитата(zltigo @ Feb 16 2008, 14:48) не со... Feb 16 2008, 13:09      Getmanov Цитата(Дон Амброзио @ Feb 16 2008, 13:32)... Feb 16 2008, 12:52 galjoen Насчёт тестов считаю, что они полезны, но не особо... Feb 11 2008, 20:35  Дон Амброзио Цитата(galjoen @ Feb 11 2008, 23:35) Насч... Feb 11 2008, 20:44 SasaVitebsk Стиральная доска всегда надёжнее чем стиральная ма... Feb 15 2008, 11:02 _Pasha По поводу надежности программы.
Вот, я, например, ... Feb 16 2008, 11:53 galjoen Цитата(_Pasha @ Feb 16 2008, 14:53) По по... Feb 16 2008, 12:53 SasaVitebsk Цитата(_Pasha @ Feb 16 2008, 15:53) По по... Feb 16 2008, 13:17  _Pasha Цитата(SasaVitebsk @ Feb 16 2008, 16:17) ... Feb 16 2008, 14:14   SasaVitebsk Цитата(_Pasha @ Feb 16 2008, 18:14) У мен... Feb 16 2008, 22:38    _Pasha Цитата(SasaVitebsk @ Feb 17 2008, 01:38) ... Feb 17 2008, 08:02     Getmanov Цитата(SasaVitebsk @ Feb 17 2008, 11:46) ... Feb 18 2008, 14:57      Дон Амброзио Цитата(Getmanov @ Feb 18 2008, 18:57) При... May 18 2008, 18:40       Getmanov Цитата(Дон Амброзио @ May 18 2008, 21:40)... May 18 2008, 19:10        BigBolt Цитата(Getmanov @ May 18 2008, 23:10) А т... May 19 2008, 04:11         _Pasha Цитата(BigBolt @ May 19 2008, 07:11) Снач... May 19 2008, 04:54          BigBolt Цитата(_Pasha @ May 19 2008, 08:54) Извес... May 19 2008, 08:01          tag Цитата(_Pasha @ May 19 2008, 08:54) Извес... May 19 2008, 10:23         Getmanov Цитата(BigBolt @ May 19 2008, 07:11) Можн... May 19 2008, 04:58         zltigo Цитата(BigBolt @ May 19 2008, 06:11) Можн... May 20 2008, 10:05          BigBolt Цитата(zltigo @ May 20 2008, 14:05) А пот... May 20 2008, 10:57          sKWO Цитата(zltigo @ May 20 2008, 13:05) одна ... May 20 2008, 12:03 SasaVitebsk Конечно - это всё не праздные вопросы. И в каждом ... Feb 17 2008, 09:46 _Pasha Цитата(SasaVitebsk @ Feb 17 2008, 12:46) ... Feb 17 2008, 09:52  SasaVitebsk Цитата(_Pasha @ Feb 17 2008, 13:52) Брат ... Feb 17 2008, 10:14 vetal Мне, вот, просто интересно стало. А что же делать ... May 16 2008, 08:01 BigBolt Интересно...., а контроль переполнения стека тоже ... May 20 2008, 09:42 Rst7 ЦитатаИнтересно...., а контроль переполнения стека... May 20 2008, 10:00 defunct Цитата(Rst7 @ May 20 2008, 13:00) Плохо т... May 20 2008, 10:14
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|