По всей видимости, компилятор генерил неподходящие инструкции из-за
того, что некоторых ключей не было. Падало как раз на выходе из
считалки, где было деление на 10. Но падало не там, где была
неверная инструкция, а чуть позже. Что озадачило - когда ставил точку останова в Hard Fault, то видел код mcause=4 (невыровненный доступ при загрузке). А когда поставил в обоих исключениях, и в Hard Fault, и в NMI (в обоих - зацикленные NOP) - то стала первой срабатывать NMI с кодом mcause=2 (illegal instruction).
Проверив питание, проверив код стартапа с переключениями тактовой частоты, проблем не нашёл (FLASH WAIT STATES стоит на 2 - как и положено для 48МГц). Значит, на самом деле illegal instruction, а не просто сбой аппаратуры. Пораскинув мозгами, стал проверять ключи компиляции и обнаружил, что в другой IDE просто нет таких полей для настройки, что были в MRS2. Поэтому прописал ключами, а не через GUI. И, вроде, заработало.