ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
2 мая
1396794 Топик полностью
Nikolay_Po (25.01.2024 15:45, просмотров: 126) ответил VVB на Сейчас это стало очевидным. Кто же ожидал такой подлянки от Nuvoton? Errata нет. Косяки в документации, биты местами перепутаны, описание IP блоков не соответствует реальному поведению. Короче, это опыт на будущее: внимательно смотреть китайцев на наличие errata и на качество документации, перед закладыванием в серийный проект. И не бояться "выкинуть в корзину" все альфа-бета-гамма версии ПО, сделанные на основе оценочного модуля. Сейчас я бы заложил другой чип, не Nuvoton.
Что-то мне кажется, что это случай "виноват компилятор". Просто баг в коде, и программа творит дикости, затирает коэффициенты ФАПЧ и выводит из режима тактовый генератор. Тактирование сбоит и падает. А виноват чип... 

Уточните, при RESET ОЗУ затирается или сохраняется? Если сохраняется, то при входе в функцию, пишите массив ячееек номер функции и метку времени по таймеру, когда происходил переход.

Можете отдельно записывать вход и выход, если это прерывания.

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

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

Ещё, если есть нюансы с тактированием памяти, WAIT STATES и подобным - перепроверьте. Если память настроена нештатно, то могут быть аппаратные сбои и особенно при повышенной нагрузке на шины, когда исполняется код после LTO.


P.S. Все предупреждения в компиляторе включены? Типа -Wall и -Werror (синтаксис навскидку).