"CPU не остановлен" и "APB-AP не найден" ошибка

Когда я использую JTAG для загрузки своего кода C на плате оценки, он загружается успешно. Однако, когда я выполнил свой код из main(), я сразу же получил ошибку "CPU is not halted", а затем ошибка "No APB-AP found".

Я смог загрузить и выполнить код, связанный с USB, прежде чем я получил эту ошибку.

Я гуглил это и использую команду JTAG "rx 0" для сброса цели, но она не вносит никаких изменений.

Я использую процессор ARM Cortex-M3, J-Link ARM V4.14d, интегрированную среду разработки IAR.

Спасибо за твою помощь.

3 ответа

Одна возможность: сторожевой

Если на вашем оборудовании есть сторожевой таймер, вы должны убедиться, что он не сбрасывает процессор, когда JTAG хочет остановить его. Если сторожевой таймер сбрасывает процессор, вы, как правило, получаете ошибку типа "Процесс не остановлен", который вы описали.

Если в ЦП имеется внутренняя схема сторожевого таймера, на некоторых ЦП он автоматически "останавливается", когда JTAG останавливает ЦП. Но в других случаях этого не происходит, и вам необходимо убедиться, что сторожевой таймер отключен во время отладки JTAG.

Если ваша схема имеет схему сторожевого таймера, которая является внешней по отношению к ЦП, то, как правило, вам нужно каким-то образом отключить ее (обычно разработчик аппаратного обеспечения предоставляет для этого своего рода переключатель / перемычку на плате).

Убедитесь, что у вас есть эта строка в коде:

WatchdogStallEnable (WATCHDOG0_BASE); // остановить сторожевой таймер, когда процессор остановлен

Вы повторно используете линии jtag в качестве линий gpio и теряете способность jtag связываться с чипом? Таким образом я положил кирпичную доску.

Другие вопросы по тегам