I have got a STM32-F49ZI nucleo board which is ARM Cortex 4 - 32 bits MCU. I have my own NMI handler i.e. NMI_Handler function, whose address ends with a bit 0. I can see that in the debugger. However, the vector address of NMI Handler stores the same address of NMI_Handler function except that the bit ends with 1. My question why there is a discrepancy. I got to know that this is because ARM cortex M supports only Thumb instructions i.e. 16-bit instructions only. I am unable to understand this reasoning. What's the reason behind it? Why it sets the last bit to 1.
void NMI_Handler()
{
}
Watchdog window shows
NMI_Handler address - 0x8010 1000
However, the address stored in the NMI Vector address is -
0x8010 1001.