2013-08-23 4 views
0

Я не много о том, как таймер работает в среде встроенных и я столкнулся вопрос, связанный с сторожевой таймерНастройка watchdog_set_period для значений причины макс перезагрузки

Максимальное время ожидания значение, определенное в одном из макроса 55 и когда мы пытаемся установить это значение из функции watchdog_set_period, наша плата становится Перегрузить

#define Max_time_out 55

watchdog_set_period (интермедиат период) // установить контролеров счетчик тайм-аута

белый ERE период = 55

Теперь это что-то ожидается, или как то, что является причиной для перезагрузки

Мы пишем это значение периода в какой-то драйвер, который мы обращающиеся через дескриптор файла.

+0

Первое, что вам нужно, чтобы понять, что такое таймер для часов. –

+0

Вам необходимо периодически обновлять сторожевой таймер. В противном случае плата перезагружается, когда таймер сторожевого таймера истекает – stev

+0

@SanthoshPai. Я согласился на этот вопрос, и, возможно, я узнаю что-то здесь. –

ответ

1

link указывает это описание на таймеры сторожевого таймера.

A watchdog timer is a piece of hardware that can be used to automatically detect software anomalies and reset the processor if any occur. Generally speaking, a watchdog timer is based on a counter that counts down from some initial value to zero. The embedded software selects the counter's initial value and periodically restarts it. If the counter ever reaches zero before the software restarts it, the software is presumed to be malfunctioning and the processor's reset signal is asserted. The processor (and the embedded software it's running) will be restarted as if a human operator had cycled the power.

Вы не разместили код, поэтому мы не можем судить, что именно проблема. Если вы написали код, проверьте, вызывает ли ваш код какие-либо проблемы, вызывающие сброс таймера сторожевой собаки.

1

Контрольный таймер - это особый тип таймера, который обычно используется во встроенных системах, который используется для обнаружения, когда запущенное программное обеспечение/прошивка зависает по какой-либо задаче. Таймер сторожевого таймера - это в основном таймер обратного отсчета, отсчитываемый от некоторого начального значения до нуля. Когда достигнут нуль, сторожевой таймер понимает, что система зависает и сбрасывает его.

Поэтому работающее программное обеспечение должно периодически обновлять сторожевой таймер (в бесконечном цикле) с новым значением, чтобы остановить его от достижения нуля и вызывать сброс. Когда запущенное программное обеспечение заблокировано, выполняя определенную задачу и не может обновлять (обновлять не удается) сторожевой таймер, таймер в конечном итоге достигнет нуля и произойдет перезагрузка/перезагрузка.

Итак, если вы включите сторожевой таймер, вам необходимо периодически обновлять сторожевой таймер. В противном случае плата перезагружается, когда сторожевой таймер истекает.

+0

Моя задача - когда мы пытаемся установить счетчик тайм-аута сторожевого таймера на значение 55, которое является max_time_out, перезагрузится ли плата? –

+0

@AmitSinghTomar: сторожевым таймерам всегда нужно какое-то событие, если не получится какое-либо событие от программного обеспечения, счетчик будет тайм-аут, из-за чего плата будет сброшена. –

+1

Да, плата перезагружается после 55 единиц времени (я предполагаю это в миллисекундах). Предположим, у вас есть карта (которая выполняет некоторые встроенные функции системы) в слоте PCI или PCIe ПК. Если сторожевой таймер перезагрузит карту, вы можете даже перезагрузить карту для перезагрузки ПК для перезагрузки ПК. Итак, как я сказал ранее, вы должны периодически обновлять сторожевой таймер после его включения. – stev