Аппаратный сбой ошибка памяти сработал сторожевой таймер ошибка программы ошибка периферии
Что такое ошибка тайм-аута сторожевого таймера?
Ошибка CLOCK_WATCHDOG_TIMEOUT связана с аппаратным обеспечением вашей системы и, в частности, указывает на проблему взаимодействия системы и процессора.
Когда вы просите свой компьютер что-то сделать, операционная система сообщает процессору, «прерывая» его, чтобы сообщить ему, что происходит. Это процесс системного уровня, известный как «системное прерывание», и это совершенно нормальная функция Windows. Однако, если система слишком долго работает на фазе прерывания, известной как уровень запроса прерывания (IRQL), вы столкнетесь с ошибкой синего экрана.
Вот список наиболее распространенных исправлений этой проблемы.
1. Перезагрузите систему.
2. Проверьте и переустановите свое оборудование.
Очистите свой компьютер
Пока вы там, почистите свой компьютер. Скопление пыли убьет ваше оборудование. Это одна из худших вещей для вашего компьютера, и со временем она накапливается. Помните, ваш компьютер похож на любое другое оборудование, которое у вас есть. Позаботьтесь о нем, и он прослужит дольше.
3. Обновите Windows 10.
Затем проверьте, есть ли ожидающие обновления Windows 10. Ожидающее обновление Windows 10 может содержать исправление ошибки, которого ожидает ваша система.
Нажмите Клавиша Windows + I, затем отправляйтесь в Обновление и безопасность> Центр обновления Windows. Если есть обновления, скачайте и установите их.
4. Обновите драйверы.
Не всегда ясно, является ли ошибка драйвера причиной проблемы. Windows 10 автоматически обновляет драйверы, но все может проскользнуть через сеть. Проверить драйверы на наличие ошибок можно вручную через диспетчер устройств.
Тип Диспетчер устройств в строке поиска меню «Пуск» и выберите «Лучшее совпадение». Проверьте список на наличие желтых индикаторов ошибок. Если таковых нет, маловероятно, что причиной проблемы является драйвер. Однако, если вы хотите перепроверить, вы можете попытаться обновить каждый драйвер вручную.
Например, разверните Дисковый привод раздел, затем щелкните правой кнопкой мыши драйвер для вашего SSD и выберите Обновить драйвер. Выбрать Автоматический поиск обновленного программного обеспечения драйвера чтобы позволить Windows автоматизировать процесс обновления за вас.
5. Удалите новое программное обеспечение.
Вы недавно устанавливали какие-либо новые приложения? Возникла ли ошибка тайм-аута сторожевого таймера после установки нового программного обеспечения? Если это так, вам следует удалить новое программное обеспечение, перезагрузить систему и проверить, сохраняется ли ошибка.
Ввод программы в строке поиска меню «Пуск» и выберите «Лучшее совпадение». Переключите Сортировать по раскрывающееся меню для Дата установки, отсортировав список программ по дате установки. Удалите все недавно установленные программы, затем перезагрузите систему.
6. Запустите SFC и CHKDSK.
Перед запуском команды SFC важно убедиться, что она работает правильно. Для этого мы используем инструмент обслуживания образов развертывания и управления ими, или DISM.
Выполните следующие шаги.
7. Запустите средство диагностики памяти Windows 10.
Вы можете использовать встроенную диагностику памяти Windows, чтобы проверить, не является ли ваша RAM причиной ошибки. Программа диагностики памяти Windows сканирует вашу оперативную память, выявляя ошибки, которые могут привести к сбою системы. Вы не можете запустить его в Windows. Вам необходимо запустить инструмент, а затем перезапустить систему, чтобы позволить инструменту сканировать вашу оперативную память.
Тип Диагностика памяти Windows в строку поиска меню «Пуск» и выберите «Лучшее совпадение».
Диагностика памяти Windows запустится автоматически после перезагрузки.
Однако файл журнала не отображается после того, как вы снова загрузитесь в Windows 10. Нажмите Клавиша Windows + X и выберите Просмотрщик событий из меню питания. В средстве просмотра событий выберите Средство просмотра событий (локальное)> Журналы Windows> Система.
Затем в правом столбце выберите найти и введите ПамятьДиагностика в коробку. Ударил Найти следующее. Результаты вашей диагностики отобразятся в нижней части окна.
Оттуда вам нужно исследовать любые конкретные ошибки, которые выдает диагностика памяти Windows.
8. Удалите настройки разгона.
Если вы разогнали оборудование вашей системы, чтобы выжать дополнительную производительность, вы можете столкнуться с ошибкой тайм-аута сторожевого таймера. Учитывая характер разгона вашей системы, в этом руководстве нет конкретных инструкций. Это потому, что разгон уникален для вашего оборудования, и вам придется откатить вашу систему, используя определенные приложения или системные настройки.
Итак, если вы разогнали свою систему и столкнулись с ошибкой тайм-аута сторожевого таймера, рассмотрите возможность возврата к стандартной настройке.
Вы устранили ошибку тайм-аута сторожевого таймера Windows 10
Ошибки синего экрана Windows никогда не приносят удовольствия. К счастью, некоторые из них легко решить, и ошибка тайм-аута сторожевого таймера является одной из них. Выполните шаги из этого списка, и ваша система мгновенно вернется к нормальной работе.
Это довольно распространенная ошибка, особенно при первом выпуске Windows 10. Если у вас уже давно установлена Windows 10, возможно, ваша проблема связана с новым запоминающим устройством или неисправным приложением. Мы перечислили множество способов помочь вам решить эту проблему, так что не беспокойтесь.
Знакомство с DPC Watchdog
Нарушение протокола DPC Watchdog означает, что сторожевой таймер вашего ПК, утилита, которая отслеживает неотвечающие программы, был перегружен. Обычно это приводит к дампу памяти и ужасному синему экрану смерти.
Хотя Microsoft выпустила обновление для исправления основных проблем DPC Watchdog, проблема все еще существует по сей день. Обычно это происходит, если вы установили аппаратные или программные компоненты, с которыми ваша операционная система не может взаимодействовать.
Почему я получаю эту ошибку?
Самые эффективные решения в Windows 10
Пришло время провести всесторонний анализ аппаратного и программного обеспечения вашего компьютера! Убедитесь, что вы точно следуете инструкциям под каждым шагом, пока не найдете причину проблемы, чтобы вы могли точно определить ее и эффективно управлять ею.
Проверьте контроллер IDE ATA / ATAPI
Большинство пользователей Windows обнаружили, что настройка контроллера IDE ATA / ATAPI на их ПК устранила ошибку.
- На клавиатуре одновременно нажмите Windows + X и перейдите в «Диспетчер устройств».
- Отсюда разверните «Контроллеры IDEA ATA / ATAPI». Затем щелкните правой кнопкой мыши «Контроллер SATA AHCI» и перейдите в «Свойства».
Если вместо этого вы видите «storahci.sys», вернитесь на вкладку «Драйвер» и нажмите «Обновить драйвер». Отсюда выберите следующие варианты соответственно:
- Найдите на моем компьютере драйверы.
- Позвольте мне выбрать из списка драйверов устройств на моем компьютере.
- Стандартный контроллер SATA AHCI.
После завершения обновления компьютера перезагрузите систему, чтобы изменения вступили в силу.
Удалить все внешние устройства
Поскольку мы установили, что нарушение сторожевого таймера DPC может быть вызвано аппаратными конфликтами, попробуйте отключить все вновь установленные внешние жесткие диски, твердотельные накопители, принтеры или сканеры. После отключения этих периферийных устройств перезагрузите компьютер.
Если вы подтвердили, что ваш компьютер работает нормально без всех устройств, вы можете продвинуться дальше в своем исследовании и повторно подключать одно устройство за раз, чтобы узнать, какое из них вызывает ошибку. Это поможет вам изолировать и устранить проблему, сохранив при этом полезность других ваших устройств.
Обновите твердотельные накопители
Вот как вы можете обновить драйверы SSD.
- Нажмите Windows + X и откройте «Диспетчер устройств».
- Найдите «Дисковые накопители» и разверните его, чтобы отобразить все ваши устройства хранения.
- Щелкните первое устройство правой кнопкой мыши и выберите «Обновить драйвер».
- Нажмите «Автоматический поиск драйверов», чтобы обновить драйвер.
Повторите этот шаг для всех ваших запоминающих устройств, чтобы убедиться, что все обновлено. Надеюсь, это решит вашу проблему нарушения сторожевого таймера DPC.
Сканируйте системные файлы
Ошибка сохраняется? Тогда это может быть работа поврежденного или поврежденного системного файла, спрятанного на вашем компьютере. Вам нужно будет запустить проверка системных файлов (SFC) для проверки целостности всего содержимого на вашем устройстве.
- Введите «cmd» в поле поиска Windows. Щелкните правой кнопкой мыши приложение командной строки и выберите «Запуск от имени администратора».
- Введите sfc / scannow и нажмите Enter.
- Дайте ему немного времени.
К концу сканирования он должен показать, есть ли на вашем компьютере поврежденные файлы. Если вы этого не сделаете, вы можете закрыть окно.
Если он обнаружил поврежденные файлы и восстановил их, вам следует перезагрузить компьютер после сканирования, чтобы изменения вступили в силу.
Восстановите вашу систему
Не беспокойтесь, так как он не удалит, не удалит или не изменит какие-либо ваши личные файлы, такие как ваши документы, музыку, фотографии, видео или электронные письма.
- Откройте панель управления.
- В правом верхнем углу окна вы увидите текст «Просмотреть по» с раскрывающейся кнопкой рядом с ним. Выберите «Маленькие значки» среди вариантов в меню. Это должно вызвать появление вкладки «Система». Щелкните по нему.
- Выберите «Защита системы» в правой части всплывающего окна в области «Связанные настройки».
- Нажмите «Восстановление системы» в диалоговом окне.
- Пройдите через мастер настройки и подтвердите восстановление.
Этот процесс, вероятно, займет от 15 до 20 минут. После этого вам нужно будет перезагрузить устройство, чтобы изменения вступили в силу.
Как избежать ошибки нарушения сторожевого таймера DPC
В любой ситуации профилактика лучше лечения. Пройти все эти этапы сложно, особенно когда вы находитесь в середине рабочего дня или занимаетесь другим важным делом.
Хотя это может быть трудно предвидеть, вы все же можете принять превентивные меры против ошибки, дважды проверив, чтобы убедиться, что оборудование и программное обеспечение, в которое вы инвестируете, совместимы с вашим ПК, прежде чем использовать его в течение длительного периода времени.
Ошибка современного синего экрана смерти (BSOD). Установка нового программного и аппаратного обеспечения, вирус, эмуляция, виртуальная машина, видео, регистрация. Справочная информация об отчете о сбое системы. Векторные иллюстрации
Что такое нарушение сторожевого пса DPC?
Нарушение происходит, когда Windows недостаточно быстро получает ответ от оборудования или какого-либо компонента компьютера. Обновление драйвера и проверка соединений могут помочь решить эти проблемы.
Удалить все внешние устройства
Нарушение сторожевого таймера DPC может быть вызвано несовместимым диском или устройством. Удалите все внешние устройства (кроме мыши и клавиатуры). Если вы подключили новый внешний жесткий диск, принтер или другой аксессуар, отключите его от компьютера и перезагрузите.
Если проблема не повторится, вы можете сделать вывод, что проблема связана с одним из устройств. Подключайте их по очереди, пока не сможете определить, какое устройство вызывает ошибку.
Проверьте кабельные соединения
Слегка надавите на точки соединения, чтобы обеспечить надежное соединение. Если кабели ослаблены и вы не уверены, куда их следует подключать, обратитесь к руководству по эксплуатации вашего ПК.
Для получения более подробной информации обратитесь к нашему окончательному руководству по созданию индивидуального ПК. Если кабель ослаблен и система не может получить ответ на запрос, она выдаст нарушение.
Проверить драйверы устройств
Устаревший или неисправный драйвер может лишить систему возможности получить требуемый ответ. Если вы регулярно сталкиваетесь с нарушением DPC Watchdog, убедитесь, что все ваши последние версии драйверов устройств.
Откройте Панель управления> Диспетчер устройств и просмотрите список устройств. Щелкните правой кнопкой мыши любое устройство в списке и выберите «Обновить драйвер» в появившемся меню. Вы должны проверить все свои устройства, но обратите особое внимание на внешние жесткие диски. Это частый источник этой ошибки.
Замените драйвер iastor.sys
В меню драйвера разверните контроллеры IDE ATA / ATAPI и выберите элемент с SATA в его имени. Выберите «Свойства» в меню, а затем перейдите на вкладку «Драйверы». Выберите «Обновить драйвер»> «Искать драйверы на моем компьютере»> «Я выберу драйверы из списка доступных на моем компьютере».
Windows рекомендует заменить именно этот драйвер, поскольку он является известным виновником ошибки DPC Watchdog Violation.
Выполните проверку диска
Если обновление кабеля и драйверов не устранило проблему, следующим шагом должна быть проверка диска во всей системе. Сделайте это, открыв командную строку. Нажмите Windows + R, чтобы открыть меню «Выполнить», а затем введите cmd, чтобы открыть командную строку. После открытия введите следующее:
Если раздел вашего жесткого диска отличается от C :, просто замените C: на правильное имя диска.
Это выполнит проверку вашей системы, которая найдет и устранит любые проблемы в логике вашего привода. Во многих случаях эта простая команда может устранить нарушение сторожевого таймера DPC.
Обновите вашу ОС
Нарушение сторожевого таймера DPC часто вызвано устаревшими и неисправными драйверами, поэтому обеспечение актуальности вашей операционной системы и наличие у вас доступа к новейшему программному обеспечению, предлагаемому для ваших устройств, может помочь снизить частоту возникновения ошибки.
Откройте «Настройки»> «Обновление и безопасность»> «Центр обновления Windows» и нажмите «Проверить наличие обновлений». Если доступно обновление Windows, загрузите его. Несмотря на огромное количество плохой прессы, обновления Windows, как правило, создают, они необходимы для безопасности вашего компьютера.
Запустите средство устранения неполадок совместимости программ
Откройте Настройки> Обновление и безопасность> Устранение неполадок> Дополнительные средства устранения неполадок> Средство устранения неполадок совместимости программ. Щелкните средство устранения неполадок, а затем щелкните Запустить средство устранения неполадок.
Вы можете выбрать программу, вызывающую проблемы, из списка. Если вы его не видите, выберите «Нет в списке» и просмотрите папки с файлами, пока не найдете его. Затем инструмент попытается диагностировать любые проблемы несовместимости между программой и оборудованием.
Если вы столкнетесь с нарушением DPC Watchdog, и это приведет к сбою вашего компьютера, это может повлиять на вашу производительность, особенно если вы работаете из дома, как многие. Попробуйте эти разные методы, чтобы решить проблему и еще раз сделать работу вашего ПК безупречной.
В этом уроке поговорим о способах повышения надежности программ для Ардуино, узнаем, как использовать сторожевой таймер в системе Ардуино.
Как и любое электронное устройство на микроконтроллерах, платы Ардуино могут зависать. Причины могут быть разные:
- неисправность контроллера;
- ненормальная система питания контроллера, броски питающего напряжения, помехи через цепи питания;
- наводки, электромагнитные помехи на плату и компоненты контроллера;
- импульсные помехи через общие цепи внешних компонентов системы (компьютер, другие контроллеры, длинные линии связи и т.п.);
- паразитные связи на плате, особенно в тяжелых условиях эксплуатации (высокая влажность, температура, вибрации);
- неправильные (скорее непредусмотренные программистом) действия пользователя или реакция внешних компонентов;
- ошибки в программе.
Конечно, это ненормальное явление. Допускать этого нельзя, но что-то не предусмотрели, что-то случилось независящее от нас. К тому же мы программируем на языке высокого уровня, а это означает, что есть программная среда, которую мы не контролируем. Компилятор создает какие-то стеки, области собственных данных, и мы не знаем, насколько надежно они реализованы.
Поэтому необходимо контролировать ход выполнения программы и принимать меры, если она работает ненормально.
Сторожевой таймер (watchdog) в системе Ардуино.
Одним из способов повышения надежности является использование сторожевого таймера (watchdog) для контроля выполнения программы. Он представляет собой аппаратный таймер, который должен периодически сбрасываться программой. Если сброс сторожевого таймера не произойдет в течение заданного времени, то он вызовет перезагрузку всей системы, т.е. выработает сигнал сброс микроконтроллера. Таким образом, если программа зависнет и перестанет сбрасывать сторожевой таймер, то микроконтроллер будет перезагружен, как будто нажали кнопку сброс.
В системах Ардуино есть сторожевой таймер, который является внутренним узлом микроконтроллера ATmega.
Библиотека для работы со сторожевым таймером Ардуино.
Для управления сторожевым таймером необходимо подключить к проекту библиотеку avr/wdt.h.
Эту библиотеку не надо искать в интернете, скачивать. Ее не надо устанавливать. Это стандартная библиотека, она находится в каталоге Arduino. У меня в D:\Arduino\hardware\tools\avr\avr\include\avr\wdt.h
Просто добавьте в проект строку:
Библиотека имеет три функции.
void wdt_enable(timeout)
Функция разрешает работу сторожевого таймера, задает время тайм-аута. Аргумент timeout (время тайм-аута) может принимать следующие значения.
WDTO_15MS // 15 мс
WDTO_30MS // 30 мс
WDTO_60MS // 60 мс
WDTO_120MS // 120 мс
WDTO_250MS // 250 мс
WDTO_500MS // 500 мс
WDTO_1S // 1 сек
WDTO_2S // 2 сек
WDTO_4S // 4 сек
WDTO_8S // 8 сек
wdt_enable(WDTO_120MS); // разрешение работы сторожевого таймера с тайм-аутом 120 мс
void wdt_reset(void)
Сброс сторожевого таймера. Для нормальной работы необходимо вызывать эту функцию не реже периода сторожевого таймера. При задержке превышающей тайм-аут произойдет аппаратный сброс контроллера.
wdt_reset(); // сброс сторожевого таймера
void wdt_disable(void)
Отключение сторожевого таймера.
wdt_disable(); // запрет работы сторожевого таймера
Применение сторожевого таймера в системе Ардуино.
Сторожевой таймер позволяет контролировать выполнение отдельных циклов программы. Функцию его сброса не надо ставить, где попало. Я обычно контролирую цикл прерывания по таймеру, от которого отсчитываются остальные циклы программы. В предыдущих уроках я поставил бы сброс watchdog в цикле обработки прерывания по таймеру 2 мс.
Давайте проверим работу сторожевого таймера на реальной программе. В программе:
- Организован цикл прерывания по таймеру 2мс.
- В основном асинхронном цикле реализовано управление светодиодом платы (мигает с периодом 1 сек).
- В основном цикле проверяются данные с последовательного порта, и при появлении любого данного запрещается работа прерывания по таймеру. Этим имитируется сбой установок таймера.
void setup()
pinMode(LED_PIN, OUTPUT); // определяем вывод светодиода как выход
Serial.begin(9600); // инициализируем последовательный порт
MsTimer2::set(2, timerInterupt); // задаем период прерывания от таймера 2 мс
MsTimer2::start(); // разрешаем прерывание от таймеру
// wdt_enable(WDTO_15MS); // разрешение работу сторожевого таймера с тайм-аутом 15 мс
>
void loop()
// мигание светодиода
if ( ledCount > 250 )
ledCount= 0;
digitalWrite(LED_PIN, ! digitalRead(LED_PIN)); // инверсия состояния светодиода
>
// проверка данных в буфере последовательного порта (имитация сбоя)
if ( Serial.available() != 0 ) MsTimer2::stop(); // запрет прерывания от таймера
>
// обработчик прерывания
void timerInterupt()
ledCount++; // счетчик светодиода
// wdt_reset(); // сброс сторожевого таймера
>
Загрузим программу в плату. Светодиод мигает раз в секунду. Откроем монитор порта и пошлем какой-нибудь символ. Светодиод перестанет мигать. Мы имитировали сбой установок таймера и программа зависла. Если нажать кнопку сброс на плате, то программа снова начнет работать, светодиод замигает.
Теперь освободим от комментариев две строчки разрешения и сброса сторожевого таймера.
wdt_enable(WDTO_15MS); // разрешение работы сторожевого таймера с тайм-аутом 15 мс
wdt_reset(); // сброс сторожевого таймера
Загрузим программу в плату, запустим. Теперь при имитации сбоя сторожевой таймер сбрасывает микроконтроллер, и программа продолжает работать.
Способы повышения надежности работы программы.
Сторожевой таймер не панацея от неправильной работы программы. Представьте, что в предыдущем примере установки таймера прерывания собьются так, что он будет работать с периодом не 2 мс, а 5 мс. И как тут поможет сторожевой таймер? Если собьются параметры последовательного порта? Программа не будет выполнять своих функций.
Только комплекс мер позволит написать надежную программу. Я разрабатываю программы для PIC-контроллеров фирмы Microchip. Программы работают в устройствах, зависание или неправильная работа контроллеров в которых приведет к фатальным последствиям. Это мощные специализированные источники питания, станции катодной защиты, системы контроля технологических процессов, GSM телеметрия и т.п. Надежность программ это очень обширная, сложная тема. Я коротко расскажу об основных принципах создания надежных программ.
Что может случиться с программой? После чего она перестает правильно работать?
- Могут испортиться данные (переменные) в оперативной памяти.
- Возможно ошибочное изменение состояния регистров микроконтроллера.
- Программа может бесконечно ожидать какого-то события, которое не наступает, а разработчик полагал, что оно будет обязательно.
Контроль данных, переменных, регистров микроконтроллера.
Переменные, которые используются для промежуточных результатов вычислений мы контролировать не в состоянии. Откуда мы знаем, что в них должно быть в данный момент. А переменные, в которых хранятся параметры, режимы, технологические установки и т.п. вполне можно контролировать. А можно циклически переустанавливать.
В моих программах на PIC-контроллерах всегда есть программный блок с названием ”циклические установки”. В нем с определенным периодом переустанавливаются все переменные и регистры микроконтроллера. Конечно те, которые не меняются в цикле.
Например, в программе происходит циклическое прерывание по таймеру с определенным временем периода. В циклических установках переустанавливаются все режимы таймера и контроллера прерываний. При таком подходе время периода прерывания по таймеру не может измениться, сбиться, испортиться. Хотя, надо признать, что при разработке программ на языке высокого уровня все переменные и регистры переустанавливать непросто.
Большие блоки данных я защищаю контрольными суммами и периодически проверяю. О контроле целостности данных написано в уроке 14.
В случае ошибочных данных лучше перезагрузить всю программу, сформировав программный сброс. Неизвестно, что в ней еще испортилось.
Но лучше использовать аппаратный сброс, чтобы переустановить все регистры микроконтроллера. Сделать это можно, используя сторожевой таймер:
Контроль хода выполнения программы.
Одной из распространенной ошибкой, приводящей к зависанию программы, является ожидание события в бесконечном цикле.
Допустим, Вы принимаете данные с компьютера по последовательному порту. Ждете 10 байтов, а пришло 9. И программа бесконечно ждет 10го байта. Я видел много программ, которые зависали при нарушении приема данных по последовательному интерфейсу.
В подобных случаях необходимо контролировать время выполнения операции. Если байт не пришел в течение 1 сек, то он не придет никогда. Надо считать время ожидания события и при отсутствии его принимать меры. У каждого ожидаемого события должен быть свой тайм-аут – время ожидания. А использовать для этого сторожевой таймер или программные счетчики – решать программисту.
В следующем уроке разработаем на базе платы Ардуино полностью рабочее устройство – охранную сигнализацию. Знаний для этого теперь достаточно.
Читайте также: