Игорь, спасибо за ответ!
Проявляется и в нормальном режиме и под отладчиком, что казалось сперва плюсом, думал отловлю быстро. Проблема проявляется не сразу, для её вызова нужно непрерывно вызывать запись во флэш с указанной частотой в течении времени от 10 до 120 секунд.
Чтобы вызвать функцию записи флэш с интерфейса нужно сперва войти в режим записи "заводских настроек", разрешить команды запись, записать новые значения, запретить команды записи, выйти из режима записи "заводских настроек". Сама запись выглядит классически для этих процессоров: копирование страницы в ОЗУ, замена в ОЗУ значений параметров, с контролем того что действительно что-то меняется, если были изменения, то стирание страницы флэш и запись всей страницы из ОЗУ. По пути всякие контрольные суммы считаются, счётчики инкрементируются и т.д.
Время стирания флэш на 344 эти же 15 мс, прерывания на время стирания и сам вотч-дог запрещены, согласно рекомендациям SiLabs. Отличия, конечно, от последовательности записи/стирания от апнотовских имеются: раздельная запись ключей, первая часть ключа пишется в специально выделенном для этих целей прерывании, разрешение которого делается отдельной функцией, вторая часть ключа пишется в самих функциях, но с обязательными проверками залочивания флэш и проверкой что первая часть ключа записалась. Сделано так для избежания самопроизвольного стирания флэш при различных внешних условиях.
С утра появилась идея параллельно с ватч-догом дёргать дискретными выходами, коих есть две штуки, одним делать тогл при сбросе вотч-дога, другим индицировать ресет. Этим выясню что, бывают ли действительно, при работе с вотч-догом, задержки большие 3 мс, приводящие к ресету процессора.
|