Por que meu novo manipulador de interrupção do PowerPC falha apenas quando os caches estão ligados
-
19-09-2019 - |
Pergunta
Estou usando um PowerPC 750 e comecei a experimentar a interrupção externa.
Eu tenho um mini-programa orientado a interrupções que funciona bem, desde que o cache de dados esteja desativado. Se eu ligar o cache, o PowerPC trava o primeiro acesso a um periférico mapeado pela memória após a interrupção externa ter disparado.
Isso me surpreende porque:
Meu entendimento é que, quando o manipulador de exceção é chamado de endereço do processador, está no 'modo real' e que, como todos os meus endereços são iguais no modo real e traduzido, os acessos devem funcionar normalmente.
O periférico está no espaço marcado como não em um DBAT
Há algo que você tem a ver com o cache / abordagem após uma exceção externa que perdi?
Solução
No final, reativei a tradução de endereço para instruções e dados como a primeira operação no meu Hander de interrupção externa. Parece evitar o problema.