HardFault при запуске кода из оперативной памяти в ARM Cortex-M0+

В настоящее время я занимаюсь разработкой прошивки для микроконтроллера Arm Cortex-M0+ и столкнулся с довольно интересной проблемой. Я не ищу никаких ответов, а хотел бы поделиться этой проблемой с другими разработчиками, чтобы я мог (надеюсь) пролить свет на проблему, с которой я столкнулся. Я опишу это ниже:

У меня есть программа, которая динамически загружает (правильно скомпилированный и связанный) код из внешнего Flash-чипа, который должен выполняться прямо из ОЗУ MCU. Интересно, что я могу прекрасно выполнить загруженный в ОЗУ код при пошаговом выполнении (через отладчик), но он всегда будет аварийно завершать работу [формально HardFault] при свободном запуске. Я пытался отключить все прерывания, я дважды проверил инструкции, адреса памяти, байтовые выравнивания, все, но я все еще не могу определить причину исключения.

Есть ли у кого-нибудь намеки на то, что может происходить? Мне очень интересно узнать больше о вашем опыте! Спасибо,

K.

0 ответов

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