Можно ли установить обработчик ISR во время выполнения на M0 +

Travis Griggs спросил: 14 ноября 2017 в 06:55 в: c

У меня есть файл defaultVectors.c по умолчанию для моего SAMD21 ARM M0 +. В нем есть что-то похожее:

__attribute__ ((section(".vectors")))
const DeviceVectors exception_table = {
    ...
};

, которое определяет где разные заглушки обработчиков. В целях тестирования я хочу использовать один из неиспользуемых периферийных IRQ.

По умолчанию для неиспользуемых установлены нулевые адреса. Я продемонстрировал себе, что я могу изменить этот файл и во время компиляции изменить свой неиспользуемый IRQ (21) для запуска обработчика. НО, возможно ли сделать это вне времени компиляции?

Я заметил, что таблица, кажется, основана на смещении 0. Поэтому я попробовал это:

DeviceVectors *table = 0x0000000;
table->pvReserved21 = PV21Handler;

0 ответов