Если попадает в hard fault exeption обработчик, то это и означает что этот самый hard fault exeption случился. Скорее всего название функции прерывания здесь ни при чем.
Нужно почитать документацию на cortex ядро. Там есть регистр(ы). который расшифровывает в каком именно месте этот самый hard fault exeption случился и по какой причине.
STM32F10xxx Cortex-M3 programming manual
PM0056
Programming manual
2.4 Fault handling
Особое внимание нужно обратить на Illegal unaligned load or store. Данные должны быть выравнены на свою длину. То есть адрес перемененной длиной 2 байта должен быть кратен 2. 4 байта - 4. Эта особенность arm не всем известна.
Работающий пример вроде должен лежать в библиотеке в каталоге Project/Examples/EXTI.
http://radiokot.ru/forum/viewtopic.php? ... 56&start=0 - ветка на ту же тему


