реклама на сайте
подробности

 
 
> Logging. Какие опции, Как изловить трудно повторяющийся баг
A. Fig Lee
сообщение Jul 11 2014, 15:24
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Народ, а че вы делаете чтобы изловить once in a while событие.
Например есть у нас ОС, и вот раз в пару дней система выпадает в осадок и не отвечает.
Что делать?
Опции:
1) иметь наружный дополнительный контроллер с питанием от батарейки, ножки которого дергать периодически из задач ОС.
Контроллер будет писать какая задача заткнулась. Сложно, муторно, надо делать плату и прикручивать к основной.
2) Использование battery backed RAM, писать инфо туда. Хорошо, когда есть еще риал тайм клок.
Чтоб время писать.
3) Использование вотчдога, только как определить что именно заткнулось?
В айдл таск проверять счетчики и смотреть, какая задача вылетела?
По вотчдогу писать в EEPROM?

Как вы вылавливаете баги?


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
andrewlekar
сообщение Jul 11 2014, 19:46
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



Как-то пока отлавливается всё логами и натурными экспериментами. Но в идеале:

1. Глобальный и многозадачный вотчодги. Многозадачный вотчодог делается так: задача с минимальным приоритетом должна выполниться хотя бы раз в минуту, для примера. Глобальный вотчдог срабатывает при сбое ОС, например в Hard Fault.
2. Пишем логи просто в порт для проведения натурных экспериментов. Можно отключать/включать перемычкой, чтобы производительность не страдала.
3. При появлении Fault выдавать стэк трейс или хотя бы SP, PC. Это правда не поможет при таинственных зависаниях.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- A. Fig Lee   Logging. Какие опции   Jul 11 2014, 15:24
- - Jekin   Я при решении подобных проблем делаю трассировку с...   Jul 11 2014, 15:33
|- - A. Fig Lee   Цитата(Jekin @ Jul 11 2014, 11:33) Я при ...   Jul 11 2014, 17:32
|- - AlexandrY   Цитата(A. Fig Lee @ Jul 11 2014, 20:32) Р...   Jul 12 2014, 07:33
|- - A. Fig Lee   Цитата(AlexandrY @ Jul 12 2014, 03:33) Ну...   Jul 12 2014, 11:26
||- - AlexandrY   Цитата(A. Fig Lee @ Jul 12 2014, 14:26) П...   Jul 12 2014, 12:34
||- - A. Fig Lee   Цитата(AlexandrY @ Jul 12 2014, 08:34) Ош...   Jul 12 2014, 13:52
|- - jcxz   Цитата(AlexandrY @ Jul 12 2014, 13:33) Не...   Jul 13 2014, 05:26
|- - adnega   Цитата(jcxz @ Jul 13 2014, 09:26) Во-во...   Jul 13 2014, 05:28
- - jcxz   Цитата(A. Fig Lee @ Jul 11 2014, 21:24) Н...   Jul 11 2014, 15:51
- - Golikov A.   если есть возможность FRAM поставить, то можно на ...   Jul 11 2014, 18:18
|- - A. Fig Lee   Цитата(Golikov A. @ Jul 11 2014, 14:18) е...   Jul 11 2014, 19:29
||- - kolobok0   Цитата(A. Fig Lee @ Jul 11 2014, 23:29) ....   Jul 11 2014, 19:52
|||- - A. Fig Lee   Цитата(kolobok0 @ Jul 11 2014, 15:52) был...   Jul 11 2014, 20:39
|||- - kolobok0   Цитата(A. Fig Lee @ Jul 12 2014, 00:39) Я...   Jul 11 2014, 22:47
||- - kolobok0   Цитата(A. Fig Lee @ Jul 11 2014, 23:29) ....   Jul 11 2014, 20:20
|- - jcxz   Цитата(Golikov A. @ Jul 12 2014, 00:18) Е...   Jul 12 2014, 03:42
- - kolobok0   Цитата(A. Fig Lee @ Jul 11 2014, 19:24) Н...   Jul 11 2014, 18:59
- - Golikov A.   Цитата128 байт, FRAM нет, правда есть место во фла...   Jul 11 2014, 20:06
- - Golikov A.   Общие функции вызываемые всеми будут иметь флаги о...   Jul 12 2014, 06:15


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 16:29
Рейтинг@Mail.ru


Страница сгенерированна за 0.01389 секунд с 7
ELECTRONIX ©2004-2016