Цитата(Golikov A. @ Jul 11 2014, 14:18)

если есть возможность FRAM поставить, то можно на ней сделать дата логер циклический. На EEPROM конечно ничего хорошего не сделаешь при нормальной активности смены потоков...
Единственный вариант это сделать флаги вход - выход задачи. Делается так
char FlagIn_FuncName;
char FlagOut_FuncName;
при входе в функцию увеличиваете первый, при выходе второй.
а по вочдогу все флаги от всех функций в EEPROM записывайте в ближайший не пустой сектор из выделенных для логированния. Если памяти полно то флаги можно int сделать, тогда сможете даже оценить сколько по времени проработала программа. Естественно пара не совпадающих флагов укажет функцию смерти...
O! Какая хорошая идея со счетчиками входа/выхода в функцию.
Да, можно сделать ячейки RAM __no_init,
если вотчдог ресета не было, мы их обнуляем, если был, значит там данные, пишем их в ЕЕПРОМ при рестарте вотчдога.
В данном случае EEPROM маленький, 128 байт, FRAM нет, правда есть место во флаше СТМки.
В айдл таск можно периодически проверять счетчики, если задача зависла на 200 миллисекунд, например, уходим на вотчдог ресет..
Да, чтото в этом есть..
Погуглю, может 24LCXX можно безболезненно на FRAM поменять..
Цитата(kolobok0 @ Jul 11 2014, 14:59)

На обработку заходят все траблы (hard fault, mem manage, bus fault, обработчик с прерывания от оконной собаки, прерывания от ассерта и т.п.),
в данной обработке есть стэк в нём адресс возврата, дата-время, состояние глобальных данных (флагов состояния, стэков динамических ошибок и т.д.)
вся информация до которой можно дотянуться.
по адресу возврата вычисляется модуль (модульная архитектура). прерывания полностью
блокируются, происходит запись во флэш(скользящая адресация, по трём банкам) и уход на рестарт.
При подъёме логики производится чтение из флэша. Если были траблы - производится расшифровка и запись в лог файл в MicroSD карточку
(если стоит), в лог файл.
где то так.
Хорошо, продуманно. А если ничего не происходит, а устройство не отвечает? гдето там в loop впало, например, или ожидание?
Както это обрабатывается? По моему, наиболее трудная задача.
Верить нельзя никому, даже себе. Мне - можно.