Por que meu novo manipulador de interrupção do PowerPC falha apenas quando os caches estão ligados

StackOverflow https://stackoverflow.com/questions/1509399

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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top