|
в bugfixes.txt к HI-TECH PIC18 было такое описание "Fixed a bug where the PCLATH/U registers were not being restored correctly on a return from interrupt". Вот Ваша программа работает нормально, а потом вдруг бац - раз в сутки неправильно восстановили какой-то регистр при выходе из прерывания и программа в результате пошла работать не по той ветке, по которой должна. Это глюк. Часто из-за ошибок компилятора такое бывало, часто из-за кривизны рук - какую-то довольно экзотическую ситуацию не учел, бывают ошибки в RTOS. А если у вас что-то многозадачное с синхронизацией процессов, то это вообще простор для глюков. Да и по теории операционных систем или при многозадачных процессах есть такие понятия как "тупики" они же "смертельные объятия" или "клинч". Система работает месяц нормально, а потом бац - один процесс захватил один ресурс и ждет освобождения другого, а другой захватил другой ресурс и ждет освобождения первого - и система висит. Так что глюков бывает - ого-го.
E-mail: info@telesys.ru