Автор |
Съобщение |
stoyanoff
Ранг: Форумен бог
Регистриран на: Чет Юни 25, 2009 12:01 pm Мнения: 2202
|
Защита от грешка в ЕЕПРОМ
Здравейте! Днес имах интересен проблем с едно от моите радиоуправления. Изпращачът отказваше да се инициализира - при подаване на захранване контролерът стартира веригата за захранване и тактува правилно, но не изпълнява правилно следващите операции. След като се закачих с дебъгера всичко си тръгна! Предполагам, че става дума за грешка в ЕЕПРОМ-а. По време на работа контролерът не записва в EEPROM, а само чете. Не се сетих да премахна командите за писане в ЕЕПРОМ в програмата си и така като включих дебъгера забърсах стойностите там и сега няма как да съм 100% сигурен, че това се е случило. Направило ми е впечатление, че на китайчетата също се случва тук там. Китаецът е направил стойностите огледални за изпращача и за майката. Така като стане нещо такова изтегляш данните от работещия нод и ги зареждаш на повредения. Няколко въпроса: 1. Като стане така целият ЕЕПРОМ ли се бъгва или говорим само за 1 клетка? 2. Ако сложа стойносттите в програмната памет(като константи) това ще реши ли проблема? 3. Ако направя резевно копие в самият ЕЕПРОМ(по 2 пъти да ги запазя) и при нужда със специална комбинация да се копира ще има ли ефект? (не ми се ще да ги задава като константи, за да оставя някакъв контрол на потребителя евентуално...)
Става дума за проблем, които явно се случва много рядко - у-вото е монтирано миналата година Март месец... Ако може някой да сподели опит! Вариантът на китаеца не ми харесва, защото много често достъпът до "майката" е много труден. Поздрави!
_________________www.elkran.com
|
Пет Яну 25, 2019 1:36 pm |
|
|
Gogo
Ранг: Форумен бог
Регистриран на: Чет Фев 24, 2005 10:41 pm Мнения: 1029 Местоположение: Pz
|
Re: Защита от грешка в ЕЕПРОМ
т1. виждал съм различно бъгнати - само първия байт (adr:0x000), в един случай бяха 4 байта, а в друг над 20 и все от адрес 0 нататък... т2. Сигурно може, но предполагам, че са в еепром за да може да се променят "в движение" т3. на устройствата ми имам резервно копие във флаша на дефолт стойностите на параметрите, които са във еепрома. При проблем (още не съм имал), с комбинация се записват в еепрома. Така устройството пак е работоспособно, само трябва да се донастроят някой параметри, за да се доизгладят нещата.
|
Пет Яну 25, 2019 4:47 pm |
|
|
stoyanoff
Ранг: Форумен бог
Регистриран на: Чет Юни 25, 2009 12:01 pm Мнения: 2202
|
Re: Защита от грешка в ЕЕПРОМ
Ами аз правя нещо подобно при едни модеми, но тук е неприложимо. Основният ми проблем е, че параметрите няма как да бъдат валидирани - няма алгоритъм, чрез който като се прочете дадена стойност, да се провери дали е правилна или не(как да валидираш парола?!)... Така че това обезсмисля варианта с 2 копия на данните... Ако прехвърля всичко в РОМ-а това ще направи ли системата ми по-устойчива? ROM по-добре ли е от EEPROM?
Мога да направя специална комбинация с бутоните, която да дава нещо като factory reset...
_________________www.elkran.com
|
Пет Яну 25, 2019 6:29 pm |
|
|
itso.t
Ранг: Форумен бог
Регистриран на: Чет Фев 03, 2005 1:21 am Мнения: 10622 Местоположение: София
|
Re: Защита от грешка в ЕЕПРОМ
Контролна сума на еепрома или част от него?
|
Пет Яну 25, 2019 7:08 pm |
|
|
gicho
Ранг: Форумен бог
Регистриран на: Пон Мар 13, 2006 12:59 pm Мнения: 3855 Местоположение: Габрово
|
Re: Защита от грешка в ЕЕПРОМ
Voting логика на множество копия?
|
Пет Яну 25, 2019 7:45 pm |
|
|
stoyanoff
Ранг: Форумен бог
Регистриран на: Чет Юни 25, 2009 12:01 pm Мнения: 2202
|
Re: Защита от грешка в ЕЕПРОМ
Мога да сложа контролна сума - някакво CRC. Има ли смисъл резервното копие да бъде отново на EEPROM-a? Или трябва да е на ROM, за да е сигурно, че ще има какво да се запише при установена грешка? Принципно мога да сложа и допълнителен външен EEPROM при нужда....
_________________www.elkran.com
|
Пет Яну 25, 2019 7:51 pm |
|
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 8:21 pm Мнения: 28023 Местоположение: София
|
Re: Защита от грешка в ЕЕПРОМ
Това като цяло е странно, толкова рядко че почти невъзможно. Ако имаш писане да, но само с четене... Ако са критични данни правиш копия, 3 са достатъчно добре, ак и трите са еднакви всичко е наред, ако две са еднакви шанса да са верни е голям, може да избереш как да действаш, ако и трите са различни не можеш да разчиташ на тях. Зависи и от реда на запис, ако първо записаната се ра, личава от следващите то може нито една да не е вярна, има голям шанс да се е счупил по време на записа на първата.
|
Пет Яну 25, 2019 8:26 pm |
|
|
stoyanoff
Ранг: Форумен бог
Регистриран на: Чет Юни 25, 2009 12:01 pm Мнения: 2202
|
Re: Защита от грешка в ЕЕПРОМ
Тони, и аз си мислих за това, но какво друго може да бъгне програмата на един контролер?! Както казах контролерът стартираше и упяваше да си подава достатъчно на често импулси на веригата, която го държи захранен. Индикацията за включено у-во работеше(отново мигаща светлина, управлявана от контролера), но не изпълняваше никакви команди. След като заредих програма за дебъг всичко си тръгна нормално...
_________________www.elkran.com
|
Пет Яну 25, 2019 10:19 pm |
|
|
itso.t
Ранг: Форумен бог
Регистриран на: Чет Фев 03, 2005 1:21 am Мнения: 10622 Местоположение: София
|
Re: Защита от грешка в ЕЕПРОМ
Зависи от зависи, но често R/W е един бит. Евентуално проблеми (смущения) по бъса?
|
Пет Яну 25, 2019 10:40 pm |
|
|
timt
Ранг: Форумен бог
Регистриран на: Вто Ное 27, 2012 8:27 pm Мнения: 2008
|
Re: Защита от грешка в ЕЕПРОМ
И аз си мисля че е по скоро в синхронизацията от колкото грешка при четене в EEPROM-а Когато пак се бъгне прочети паметта и я сравни с записа за да се увериш че програмата не ти прави номера, щом от ЕЕПРОМ-а само чете. Погледни си в програмата да нямаш прекъсвания...
|
Пет Яну 25, 2019 11:01 pm |
|
|
stoyanoff
Ранг: Форумен бог
Регистриран на: Чет Юни 25, 2009 12:01 pm Мнения: 2202
|
Re: Защита от грешка в ЕЕПРОМ
EEPROM-ът е вътре в контролера!
_________________www.elkran.com
|
Съб Яну 26, 2019 9:30 am |
|
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 11:48 am Мнения: 4723
|
Re: Защита от грешка в ЕЕПРОМ
бъг в кода ?
запис, проверка ... няколко пъти
_________________ main[-1u]={1};
|
Съб Яну 26, 2019 11:09 am |
|
|
gicho
Ранг: Форумен бог
Регистриран на: Пон Мар 13, 2006 12:59 pm Мнения: 3855 Местоположение: Габрово
|
Re: Защита от грешка в ЕЕПРОМ
CRC на няколко байта е несигурно, затова е по-смислено да има копия, особено че като са малко данните има място за много копия. Имаш ли свестен супервайзор на захранването, имаш ли ранен сигнал за отпадане на захранването (но ти казваш че само четеш в тоя момент). По-скоро нещо обърква flow-а на програмата - бъгче, EMC, захранване и предполагам се случа нещо, което няма как да си представиш. Какъв е чипа? Предполагам PIC или Atmel? Принципно като защита срещу подобни обърквания нормалните чипове има механизми за access - примерно key - преди да ти даде да пишеш в критични регистри трябва да спазиш определена последователност - изчиташ от регистър ключ, трябва да бутнеш нещо стойността (+1, инверсия) и да го върнеш обратно, което ти дава достъп до регистъра (за кратко). Иначе при смущение може програмния брояч или стека просто да смени на адреса на функцията ти за запис и тя да си свърши работата неочаквано. Софтуерни защити трудно могат да помогнат - колкото и да проверяваш в началото на функцията пак има един адрес в програмата точно след проверките ти - и ако рандом-а удари не на първия адрес от функцията, ами направо на реда след проверките си готов изгорял. Т.е. ако нямаш хардуерна защита можеш само да се мъчиш да премахнеш причината за объркването - дали бъг, дали смущение, дали космическа частица удряща клетка от паметта. Правени ли са EMC тестове на това нещо? Твоите неща май щракаха големи тоци, т.е. EMC тест си е не просто желателен.
|
Съб Яну 26, 2019 11:41 am |
|
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 8:19 pm Мнения: 4410 Местоположение: Stara Zagora
|
Re: Защита от грешка в ЕЕПРОМ
Хм "CRC на няколко байта е несигурно" Нещо не виждам логиката, ще обясниш ли?
|
Съб Яну 26, 2019 11:45 am |
|
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 8:21 pm Мнения: 28023 Местоположение: София
|
Re: Защита от грешка в ЕЕПРОМ
Ами зависи от crc-то спрямо размера на данните, колкото по-голяма е разликата, толкова по-ненадеждна е проверката. Не знам дали ти се е случвало но сме имали еднакво счупени копия, както и счупено копие и crc като обаче crc-то излизаше вярно за счупените данни, т.е.мърфи не е бил на кеф ...ако репроматериали е вътре по-скоро бъг или концепция която не е фейл /ерор сейф. Типична грешка, виждал съм я стотици пъти, особено при програмисти неразбиращи от хардуер без идея какво става зад командите и функциите които пишат. Надеждното записване на данни си е предизвикателство, особено когато разчиташ на бавни медии какъвто е еепрома, затова са измислени батерийки поддържани nvram или Fram/mram.
|
Съб Яну 26, 2019 12:27 pm |
|
|