Habilitando abortos externos em uma CPU ARM

DeManual de referência Cortex-R, provavelmente não específico do Cortex-R

Máscara de interrupção assíncrona

A natureza das interrupções assíncronas significa que elas podem ocorrer enquanto o processador está lidando com uma interrupção diferente. Se um cancelamento assíncrono gerar uma nova exceção em tal situação, or14_abt eSPSR_abt os valores são substituídos. Se isso ocorrer antes dos dados serem enviados para a pilha na memória, as informações de estado sobre o primeiro cancelamento serão perdidas. Para impedir que isso aconteça, o CPSR contém um bit de máscara, o bit A, para indicar que um cancelamento assíncrono não pode ser aceito. Quando o bit A é definido, qualquer interrupção assíncrona que ocorre é mantida pendente pelo processador até que o bit A seja limpo, quando a exceção é realmente executada. O bit A é definido automaticamente quando as exceções de interrupção, IRQ ou FIQ são obtidas e redefinidas. Você só deve limpar o bit A em um manipulador de cancelamento após as informações de estado terem sido empilhadas na memória ou não serem mais necessárias.

Minha pergunta é, se eu tiver oA pouco mascarado desde a redefinição como posso saber se umabortamento assíncrono pendente? Os abortos externos pendentes podem ser limpos sem desmascarar oA pouco e tendo a exceção? Ou, de maneira mais geral, existem conselhos sobre como limpar oA pouco depois de um reset?

Aparentemente, algo na minha cadeia de inicialização atual tem um abortamento externo pendente (mas somente após um hard power ligado). Gostaria de permitir abortos externos, mas parece bastante complicadocaso especial o primeiroabortar externo no código de exceção.

questionAnswers(1)

yourAnswerToTheQuestion