Para parceiros
Este documento explica os 1000003) Mensagens de Erro do aborto 1M3 (, porque este exemplo mostra:
#define ADDRESS_ERROR 1000003 /* Address error */
Não existem requisitos específicos para este documento.
Este documento não se restringe a versões de software e hardware específicas.
Consulte as Convenções de Dicas Técnicas da Cisco para obter mais informações sobre convenções de documentos.
Este aborto é registrado quando o processador MC680x0 não recebe um sinal de um dispositivo externo tal como um dispositivo de memória indicar que transferência de dados ocorreu. Isto é geralmente porque o software especifica um endereço inválido (inválido porque o ponteiro não foi inicializado) ou porque um dispositivo de hardware não fornece o sinal de reconhecimento de transferência.
A parcela do ponto de interruptor do serviço (SSP) da pilha do erro de software tem este formato para os processadores MC68040 como as placas de processador de rede (NPC) ou as placas de controlador de banda largas (BCC):
No. Type Number Data(Hex) PC(Hex) PROC SwRev Date Time 1. Abort 1000003 00000000 3001565C TRNS 9.3.45 08/04/03 03:14:53 SSP 30330660 10 00 30 15 10 9A 70 08 30 32 FD C0 01 01 00 01 ..0...p.02...... SSP 30330670 00 01 00 01 A4 22 C3 88 30 32 FD BC 00 00 00 0A ....."..02...... (Address error exception stack frame; p9-4 in MC68040 User's Manual) 1000 = status register 3015 109A = program counter 7 = stack frame type (access error) 0 08 = vector offset (8 = bus error) 3032 FDC0 = effective address 0101 = special status word 0001 = writeback 3 status 0001 = writeback 2 status 0001 = writeback 1 status A422 C388 = fault address 3032 FDBC = writeback 3 address 0000 000A = writeback 3 data
A maioria de informação importante nesta pilha é o lugar do aborto (contador de programa) e do endereço que não podem ser alcançados, que é o endereço com falha.
Você pode verificar o arquivo Nmemmap.h para determinar se o endereço com falha é um registro de hardware válido. Neste exemplo, o endereço 0xA422C388is não um registro de hardware válido, assim que o software tentam alcançar um endereço inválido. Um exemplo de uma falha do hardware é a falha de um dos registros da porta paralela responder. O endereço de base de PAR_PTS é 0xA0000000.
Você pode usar o programa ao contrário de determina o lugar que o software tenta alcançar. A instrução de montagem prevista é mover-se para um local de memória que um registro de endereço especifique. Esta não pôde ser a instrução no contador de programa porque o processador lê instruções antes da execução das instruções. Tem uma arquitetura canalizada.
Esta sequência de instrução gerencie um erro do aborto 1M3 quando uma tentativa é feita para ler do endereço1:
cmp.w #1234,Abort_Now BNE CK_PSOS move.l #1,A0 move.l (A0),D0 ;generate a bus error