Сбросить вектор - Википедия - Reset vector

В вычисление, то сбросить вектор это местоположение по умолчанию центральное процессорное устройство пойду искать первый инструкция он будет выполнен после перезагрузить. Вектор сброса - это указатель или же адрес, где ЦП всегда должен начинать работу, как только сможет выполнять инструкции. Адрес находится в разделе энергонезависимая память инициализирован, чтобы содержать инструкции для запуска работы ЦП, в качестве первого шага в процессе загрузка система, содержащая ЦП.

  • Вектор сброса для 8086 процессор находится по физическому адресу FFFF0h (16 байт меньше 1 МБ). Ценность Регистр CS при сбросе - FFFFh, а значение Регистр IP при сбросе - 0000h, чтобы сформировать сегментированный адрес FFFFh: 0000h, который отображается на физический адрес FFFF0h.[1]
  • Вектор сброса для 80286 процессор находится по физическому адресу FFFFF0h (16 байтов меньше 16 МБ). Значение регистра CS при сбросе - F000h с базой дескриптора, установленной на FF0000h, а значение регистра IP при сбросе - FFF0h для формирования сегментированного адреса FF000h: FFF0h, который отображается на физический адрес FFFFF0h в реальный режим.[2] Это было изменено, чтобы оставить достаточно места для переключения в защищенный режим без изменения регистра CS.[3]
  • Вектор сброса для 80386 и более поздние процессоры x86 имеют физический адрес FFFFFFF0h (16 байт меньше 4 ГБ). Значение селекторной части регистра CS при сбросе - F000h, значение базовой части регистра CS - FFFF0000h, а значение регистра IP при сбросе - FFF0h[4] для формирования сегментированного адреса FFFF0000h: FFF0h, который отображается в физический адрес FFFFFFF0h в реальном режиме.[5][6]
  • Вектор сброса для PowerPC /Питание ISA процессоры имеет эффективный адрес 0x00000100 для 32-битных процессоров и 0x0000000000000100 для 64-битных процессоров.
  • Вектор сброса для m68k Архитектура процессоры - это 0x0 для регистра стека начальных прерываний (IISR; на самом деле не вектор сброса и используется для инициализации указателя стека после сброса.) и 0x4 для счетчика начальной программы (сброса).[7]
  • Вектор сброса для SPARC процессоры версии 8 находятся по адресу 0x00;[8] вектор сброса для процессоров SPARC версии 9 находится по адресу 0x20 для сброса при включении, 0x40 для сброса сторожевого таймера, 0x60 для сброса, инициированного извне, и 0x80 для сброса, инициированного программным обеспечением.[9]
  • Вектор сброса для MIPS32 процессоры находятся по виртуальному адресу 0xBFC00000[10], который находится в последних 4 мегабайтах некэшируемой области памяти KSEG1.[11]. Ядро переходит в режим ядра как при сбросе, так и при обнаружении исключения, следовательно, может сопоставить виртуальный адрес с физическим адресом.[12]
  • Вектор сброса для Семейство процессоров ARM это адрес 0x0[13] или 0xFFFF0000. Во время обычного выполнения RAM повторно отображается в это место для повышения производительности по сравнению с исходной векторной таблицей на основе ROM.[14]

Рекомендации

  1. ^ «Руководство пользователя iAPX 86,88» (PDF). Intel. 1981. Сброс системы, стр. 2-29, таблица 2-4. Получено 15 апреля, 2018.
  2. ^ "AMD 80286 Лист данных" (PDF). AMD. 1985. с. 13. 286 начинает выполнение в реальном режиме с инструкцией по физическому адресу FFFFF0H.
  3. ^ «Справочное руководство программиста iAPX 286» (PDF). Intel. 1983. Приложение D, Вопросы совместимости программного обеспечения iAPX 86/88, стр. D-2. Получено 15 апреля, 2018. После сброса CS: IP = F000: FFF0 на iAPX 286. Это изменение было внесено для обеспечения достаточного пространства кода для входа в защищенный режим без перезагрузки CS.
  4. ^ "Справочное руководство программиста 80386" (PDF). Intel. 1990. Раздел 10.1 Состояние процессора после сброса, страницы 10-1 - 10.3.
  5. ^ "Справочное руководство программиста 80386" (PDF). Intel. 1990. Раздел 10.2.3 Первая инструкция, с. 10-4. Получено 3 ноября, 2013. Выполнение начинается с инструкции, адресованной начальному содержимому регистров CS и IP. Чтобы разрешить размещение программного обеспечения инициализации в ПЗУ наверху адресного пространства, устанавливаются старшие 12 бит адресов, выдаваемых для сегмента кода, до тех пор, пока первая инструкция, загружающая регистр CS, например, дальний переход или вызов . В результате выборка команд начинается с адреса 0FFFFFFF0H.
  6. ^ «Руководство разработчика программного обеспечения для архитектур Intel® 64 и IA-32» (PDF). Intel. Май 2012 г. Раздел 9.1.4 Выполнено первое распоряжение, стр. 2611. Получено 23 августа, 2012. Первая команда, которая выбирается и выполняется после аппаратного сброса, находится по физическому адресу FFFFFFF0h. Этот адрес находится на 16 байт ниже самого верхнего физического адреса процессора. EPROM, содержащий код инициализации программного обеспечения, должен находиться по этому адресу.
  7. ^ Лабросс, Жан Дж. (2008). Встроенное программное обеспечение. Newnes. ISBN  9780750685832.
  8. ^ Руководство по архитектуре SPARC, версия 8. SPARC International. п. 75.
  9. ^ Руководство по архитектуре SPARC, версия 9. SPARC International. С. 109–112.
  10. ^ "Архитектура MIPS32 для программистов; Том III: Архитектура привилегированных ресурсов MIPS32" (PDF). MIPS Technologies.
  11. ^ Ноергард, Тэмми (28 февраля 2005 г.). Архитектура встроенных систем: подробное руководство для инженеров и программистов. Эльзевир. ISBN  9780080491240.
  12. ^ «Руководство пользователя программного обеспечения ядра процессора MIPS32 M4K» (PDF). cdn2.imgtec.com. 29 августа 2008 г. Архивировано с оригинал (PDF) на 26.08.2017.
  13. ^ «5.9.1. Таблица векторов и сброс». Техническое справочное руководство Cortex-M3. Получено 2017-11-10.
  14. ^ «Последовательность загрузки встроенной системы на базе ARM -2 - DM». www.embeddedrelated.com. Получено 2017-11-10.

Смотрите также