[an error occurred while processing this directive] [an error occurred while processing this directive]
Ответ: ОК. По заявкам про многозадачность...
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Михаил Евстафьев 09 января 2002 г. 19:34
В ответ на: Так вопрос в том и был: что мы хотим отлавливать? отправлено Щ.С. 08 января 2002 г. 19:05

Работая с RTOS UCOS-II я делаю самую низкоприоритетную задачу сторожем, занимающимся системной диагностикой.
Такая задача получает управление если в данный момент делать больше нечего. Если одна из задач зациклилась, или сломался внутренний механизм диспетчеризации задач RTOS, то задача диагностики не получит управления, и если сброс WDT происходит именно в ней, то он и сработает когда нужно.
Задача диагностики проверяет стеки остальных задач на переполнение (а резервирование памяти под стеки задач дело не тривиальное, без run-time измерений не обойтись), собирает другую информацию о состоянии системы (заполненность динамических буферов, диагностические счетчтки ошибок, % использованного задачами времени и т.п.) и выводит ее на консоль (обычно это один из UART'ов) либо периодически, либо в случае обнаружения ошибки, либо интерактивно по командам с консоли.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru