Всем привет!
Есть регистр Application Interrupt and Reset Control Register, в котором задается поле PRIGROUP, то есть разбитие прерываний на группы и подгруппы по приоритетам. Вопрос нафига оно надо, чисто для удобства?
допустим у нас 16 групп и 16 подгрупп, прерывание из 5 группы, 0 уровня, 5.0 (значение в поле приоритета 0x50 = 80) имеет приоритет выше прерывания 6.0 (значение в поле приоритета 0x60 = 96). Но так и прерывание 80 имеет приоритет выше 96.
То есть разбитие на группы получается чисто для человека, удобства чтения, что ли...
Более того это поле вынесено в другие регистра, а не в группу NVIC, который вроде как является частью всех кортексов. И как я понимаю его вообще не интересуют группы, ему нужен конечный номер, да еще с числом используемых им в реализации бит или же я ошибаюсь? в NVIC прерывание с высшим приоритетом всегда прервет текущее, а с тем же или более низким будет ждать окончание текущего, не зависимо от группы, или это не так? И прерываться будут только подгруппы? А внутри одной группы прерывания не будут друг друга прерывать?
|