cortex-m: где хранится номер исключения прерванного прерывания - PullRequest
0 голосов
/ 03 февраля 2020

Чтобы NVI C мог сравнивать приоритеты, он должен их знать.

Сначала это кажется простым (он может получить их по номеру исключения; номер исключения текущего прерывания находится в SCB->ICSR bits [5:0] ) но что происходит, когда прерывание прерывается? Где хранится номер исключения (или приоритет) прерванного прерывания?

Я проверил книгу Ю, но не могу найти ответ там.

Ответы [ 2 ]

2 голосов
/ 04 февраля 2020

Регистр состояния программы прерывания содержит «содержит номер типа исключения текущей подпрограммы обработки прерывания (ISR)» согласно документации ARM.

0 голосов
/ 04 февраля 2020

NVIC_IPRn (регистр приоритетов прерываний) сохраняет приоритеты прерываний в соответствии с описанием бита. Его адрес начинается с 0xE000E400 + 4n (безопасный)

Ниже приведено назначение битов регистра NVIC_IPRn (0..128) для каждого плеча. NVIC_IPRn bit assignment

например, младший бит NVIC_IPR0 содержит приоритет INTR0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...