Я отлаживаю часть прошивки на процессоре семейства arm (Cortex M3).
Отладчик показывает регистры процессора, включая регистр xPSR, который включает в себя подполе ISR. Режим в регистрах CPU - «Mode = Handler», что означает, что процессор m3 находится в обработчике прерываний вместо режима «thread». Это я знаю.
Я вижу значение для поля xPSR.ISR = 15 там. Я думаю, что это должно быть шестнадцатеричное 15 (21 декабря). И я предполагаю, что это прерывание "System Timer Tick 0B" при просмотре комментариев таблицы векторов ISR. На самом деле, теперь я предполагаю, что это 15 десятичных знаков, и это обработчик прерываний таймера SysTick, на который я смотрю. (Обратите внимание, что, поскольку код представляет собой случайный обработчик однострочного ассемблера ассемблера, где около 100 различных меток asm попадают в одном месте Трудно сказать по коду, кто вызвал ISR.)
Тем не менее, я довольно новичок в чипах Cortex M3, и мои знания ARM7TDMI настолько блеклые от того, что я их не использую, что не могу вспомнить. И я нигде не могу найти это в своих документах.
Может кто-нибудь сказать мне, как это выяснить?