По какому адресу запускается прерывание предварительной выборки. Это может произойти из-за того, что счетчик программы (ПК или R15) настроен на адрес, недопустимый на вашем микроконтроллере (это может произойти, даже если вы не используете MMU - адресное пространство микроконтроллера, вероятно, имеет «дыры» в это то, что вызовет прерывание предварительной выборки). Это также может произойти, если вы попытаетесь предварительно выбрать адрес, который будет неправильно выровнен, но я думаю, что это зависит от реализации микроконтроллера (ARM ARM отображает поведение как «UPREDICTABLE»).
На самом ли деле процессор находится в режиме прерывания? Если он выполняет обработчик предварительной выборки, но не находится в режиме прерывания, это будет означать, что некоторый код разветвляется через вектор прерывания предварительной выборки, как правило, по адресу 0x0000000c, но контроллеры часто позволяют переназначать векторные адреса.