У меня есть ядерная плата STM32-F49ZI, представляющая собой ARM Cortex 4 - 32-битный MCU.У меня есть свой собственный обработчик NMI, т.е. функция NMI_Handler, адрес которой заканчивается битом 0. Я вижу это в отладчике.Однако векторный адрес обработчика NMI хранит тот же адрес функции NMI_Handler, за исключением того, что бит заканчивается на 1. Мой вопрос, почему существует расхождение.Я узнал, что это потому, что ARM Cortex M поддерживает только инструкции Thumb, т.е. только 16-битные инструкции.Я не могу понять это рассуждение.В чем причина этого?Почему он устанавливает последний бит равным 1.
void NMI_Handler()
{
}
В окне сторожевого таймера отображается
NMI_Handler address - 0x8010 1000
Однако адрес, сохраненный в векторном адресе NMI, равен -
0x8010 1001.