Цитата(jcxz @ Feb 8 2017, 21:20)

Вот в этом есть сомнения.
Если нет функции обратной трассировки в отладчике/МК (типа ETB) можно попробовать эмулировать какое-то её подобие.
Я уже описывал здесь на форуме как:
Запустить высокочастотное периодическое прерывание и в его ISR записывать состояния процессора (регистры, несколько слов стека) в кольцевой буфер. Если частота прерывания достаточно высока, то так можно получить точки записи через каждые неск. команд и локализовать место.
И полезно поставить ловушки на все исключения процессора.
Да и MMU поди есть в МК? А значит надо с его помощью разрешить доступ только в нужные регионы памяти. Остальные - на исключение и ловушку.
То, что программа что-то куда-то пишет, но не туда, куда надо, в этом сомнений почти нет. Возможно в какой-нибудь жизненно-важный регистр, там этих регистров... Устройств только несколько десятков (
Zynq 7000), а общее число регистров под 1000...
А мысль про высокочастотное прерывание интересна.
Цитата(mantech @ Feb 9 2017, 01:41)

Это взаимодействие проверяли? ФПГА связано с шинами проца, может что выставляет туда "нехорошее". Можно попробовать пока его отключить и сэмулировать функционал программно...
И второе, линукс, который на первом ядре, точно не вносит в работу никаких особенностей, может проверить пока без него?
Взаимодействие с FPGA в какой-то степени проверяли, полностью исключить пока нельзя, но не думаю, что она. FPGA в этом приборе работает только на чтение памяти, и это чтение отключали, не помогло.
Linux вчера пробовал отключить: полностью исключить его работу сложно, он выполняет функции связи с внешним миром, но после получения всех нужных параметров программа на cpu1 отключала тактовую частоту и подавала сигнал сброса на ядро с Linux, после чего Linux переставал существовать, а cpu1 спустя 10 секунд завис.
Цитата(Genadi Zawidowski @ Feb 9 2017, 15:12)

Остальные (кроме перечисленных) тоже важные... Весь набор CP15 например, GICC_PMR тоже не последнюю роль играет.
CP15 проверить не догадался.
Только что проверил "по-быстрому": запретил изменять "Некоторые регистры GIC и CP15" (так написано в документации), процессор завис в положенный момент времени.
Сообщение отредактировал Gehar - Feb 10 2017, 05:20