Коммутаторы : Программное обеспечение Cisco BPX/IGX/IPX WAN

Объяснение прерывания 1M3 (1000003)

20 октября 2016 - Машинный перевод
Другие версии: PDF-версия:pdf | Английский (22 августа 2015) | Отзыв


Содержание


Введение

Этот документ объясняет прерывание 1M3 (1000003) сообщение об ошибках, как показано в примере:

#define ADDRESS_ERROR       1000003  /* Address error        */

Предварительные условия

Требования

Для этого документа отсутствуют особые требования.

Используемые компоненты

Настоящий документ не имеет жесткой привязки к каким-либо конкретным версиям программного обеспечения и оборудования.

Условные обозначения

Дополнительные сведения об условных обозначениях см. в документе Условные обозначения технических терминов Cisco.

Прерывание 1M3 (1000003) сообщение об ошибках

Это прерывание зарегистрировано, когда процессор MC680x0 не получает сигнал от внешнего устройства, такого как запоминающее устройство, чтобы указать, что передача данных имела место. Это обычно, потому что программное обеспечение задает недопустимый адрес (недопустимый, потому что указатель не инициализировался), или потому что аппаратное устройство не в состоянии предоставлять сигнал оповещения передачи.

Часть сервисного пункта коммутации (SSP) стека программной ошибки имеет этот формат для процессоров MC68040 как карты сетевого процессора (NPC) или карты широкополосного контроллера (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

Наиболее важная информация в этом стеке является местоположением прерывания (программный счетчик) и адрес, к которому нельзя обратиться, который является ошибочным адресом.

Можно проверить файл Nmemmap.h, чтобы определить, является ли ошибочный адрес действующим регистром. В данном примере адрес 0xA422C388 не является действующим регистром, таким образом, программное обеспечение пытается обратиться к недопустимому адресу. Одним примером отказа оборудования является сбой одного из регистров параллельного порта для ответа. Базовый адрес PAR_PTS является 0xA0000000.

Можно использовать программный счетчик для определения местоположения, к которому программное обеспечение пытается обратиться. Ожидаемая команда ассемблера должна переместиться в место в памяти, которое задает реестр адресов. Это не могло бы быть инструкцией в программном счетчике, потому что процессор читает инструкции перед выполнением инструкций. Это имеет конвейерную архитектуру.

Когда попытка предпринята для чтения из адреса 1, эта последовательность инструкций генерирует 1M3 ошибка прерывания:

        cmp.w   #1234,Abort_Now
        BNE     CK_PSOS
        move.l  #1,A0
        move.l  (A0),D0             ;generate a bus error

Дополнительные сведения


Document ID: 10796