Какой объем оперативной памяти занимает вектор прерываний
Таблица векторов прерываний (англ. Interrupt Descriptor Table, IDT ) используется в x86 архитектуре и служит для определения корректного ответа на прерывания и исключения.
В IDT используются следующие типы прерываний: аппаратные прерывания, программные прерывания и прерывания, зарезервированные процессором, называемые исключениями (первые 32) на случай возникновения некоторых событий (деление на ноль, ошибка трассировки, переполнение).
В защищённом режиме элементом IDT является шлюз прерывания длиной 8 байт, содержащий сегментный (логический) адрес обработчика прерывания, права доступа и др.
В длинном режиме размер дескриптора прерывания увеличен до 16 байт.
В режиме V86 при использовании расширения VME таблица векторов располагается по виртуальному адресу 0000:0000. Без использования этого расширения (и в том случае, если переадресация прерываний запрещена) при возникновении прерывания процессор покидает режим V86 и выполняет обычный обработчик защищённого режима.
1.4 Переопределение векторных таблиц и векторных таблиц
После того, как процессор Cortex-M принимает запрос на исключение, он должен определить начальный адрес обработки исключения (если это прерывание, вы должны знать функцию ввода прерывания). Информация о начальном адресе хранится в таблице векторов. Таблица векторов начинается с адреса 0 по умолчанию, а адресом вектора является номер исключения * 4. Этот вектор обычно находится в файле запуска поставщика микросхем, то есть в файле .s. :
Начальным элементом таблицы векторов является начальное значение указателя основного стека MSP.Этот дизайн необходим, потому что за ненормальностью, такой как NMI, может последовать сброс, и это не было выполнено в это время. Любая операция инициализации. Вообще говоря, начальный адрес 0x00000000 должен быть памятью, отвечающей за запуск, это может быть устройство Flash или ROM, и его нельзя изменить во время работы. Однако некоторым приложениям может потребоваться изменить или переопределить векторную таблицу во время выполнения, поэтому Cortex-M3 и Cortex-M4 обеспечивают перенаправление векторной таблицы. Эта функция реализуется с помощью программируемого регистра, называемого регистром смещения векторной таблицы (VTOR). Значение сброса VTOR равно 0, а начальный адрес памяти по умолчанию определяется как векторная таблица. Если вы используете библиотеку драйверов устройств CISIS для программирования приложений, вы можете получить доступ к регистру через SCB-> VTOR. Чтобы переопределить таблицу векторов в области SRAM, вы можете использовать следующий код для достижения:
Маскирование
В зависимости от возможности запрета аппаратные прерывания делятся на:
- Маскируемые — прерывания, которые можно запрещать установкой соответствующих битов в соответствующем регистре маски прерываний;
- Немаскируемые — обрабатываются всегда, независимо от значения флага IF (в процессорах
Обработчики прерываний обычно пишутся таким образом, чтобы время их обработки было как можно меньшим.
1.3 Определение приоритета
Независимо от того, есть ли исключение или прерывание, существует приоритет.Размер приоритета определяет порядок выполнения прерывания и может быть вложенным (чем меньше значение приоритета, тем выше приоритет), приоритет приоритета может прерывать приоритет приоритета. Уровень прерывания, это называется вложением прерывания. Существуют некоторые исключения, которые имеют фиксированный приоритет и не могут быть запрограммированы. Например: сброс, NMI и HardFault имеют фиксированный отрицательный приоритет, а другие программируемые приоритеты находятся в диапазоне от 0 до 255 (8 бит).
Фактическое количество программируемых приоритетов напрямую определяется производителем микросхемы.На самом деле, большинство Cortex-M3 и Cortex-M4 поддерживают менее ограниченные уровни, такие как 8 (3 бита), 16 (4 бита), 32 (5). немного) и т. д. Это потому, что большое количество приоритетов увеличит сложность NVIC, И это увеличит скорость снижения энергопотребления , Количество уровней приоритета уменьшается путем удаления младшего значащего бита (LSB) из регистра конфигурации приоритета. Номер приоритета прерывания контролируется регистром приоритета, ширина составляет 3 ~ 8 бит, если в проекте только три бита, регистр конфигурации приоритета такой, как показано ниже. (STM32 использует 4 бита, чип BLE Bluetooth нашей компании также 4 бита). Если он реализован с 3 битами, значение ограниченного уровня может быть 0x00 (высокий приоритет), 0x02, 0x04, 0x60, 0x80, 0xa0, Конкретные уровни приоритета 0xc0 и 0xe0 настраиваются следующим образом.
Причина, по которой младший значащий бит LSB регистра приоритета удаляется вместо старшего значащего бита MSB, заключается в том, что его удобнее портировать между различными устройствами Cortex-M. Как видно из приведенного выше рисунка, регистры приоритетов ширины 3 и 4 бита имеют перекрывающиеся приоритеты, поэтому код, записанный в 3-битном коде, может быть до 4-битного без модификации.
Приоритезация
До окончания обработки прерывания обычно устанавливается запрет на обработку этого типа прерывания, чтобы процессор не входил в цикл обработки одного прерывания. Приоритезация означает, что все источники прерываний делятся на классы и каждому классу назначается свой уровень приоритета запроса на прерывание. Приоритеты могут обслуживаться как относительные и абсолютные. Относительное обслуживание прерываний означает, что если во время обработки прерывания поступает более приоритетное прерывание, то это прерывание (более приоритетное) будет обработано только после завершения текущей процедуры обработки прерывания. Абсолютное обслуживание прерываний означает, что если во время обработки прерывания поступает более приоритетное прерывание, то текущая процедура обработки прерывания вытесняется, и процессор начинает выполнять обработку вновь поступившего более приоритетного прерывания. После завершения этой процедуры процессор возвращается к выполнению вытесненной процедуры обработки прерывания.
Перехват прерывания — изменение обработчика прерывания на свой собственный.
1.2.1 Общее использование прерывания
После сброса все прерывания отключаются, и приоритет по умолчанию равен 0. Перед использованием любого прерывания (1) установите приоритет прерывания (2) включите управление генерацией прерывания в периферийном устройстве, которое может инициировать прерывание (3) включите прерывание NVIC.
Процедура обслуживания прерываний (ISR) должна быть записана в таблицу векторов прерываний в коде запуска. Имя ISR должно совпадать с именем, используемым в таблице векторов в коде запуска. Код запуска предоставляется поставщиком микросхемы предоставлять.
Таблица прерываний
Вектор прерывания — закреплённый за устройством номер, который идентифицирует соответствующий обработчик прерываний. Векторы прерываний объединяются в таблицу векторов прерываний. Местоположение таблицы зависит от типа и режима работы микропроцессора.
1.4.1 Сценарии применения перенаправления векторных таблиц
Перенаправление векторной таблицы обычно используется в следующих трех ситуациях:
(1) Устройства с загрузчиком
Некоторые микроконтроллеры имеют несколько программных запоминающих устройств, таких как загрузочное ПЗУ и пользовательская флэш-память. Как правило, производитель микросхем заранее записывает загрузочный код загрузчика в загрузочное ПЗУ, чтобы при запуске микроконтроллера сначала выполнялся загрузчик загрузочного ПЗУ, а перед переходом к пользовательскому флэш-приложению Таблица векторов по адресу 0x00000000 копируется в начальный адрес флэш-памяти пользователя, и VTOR будет установлен так, чтобы указывать на начало флэш-памяти пользователя, поэтому будет использоваться таблица векторов во флэш-памяти пользователя. Конкретный процесс реализации показан на следующем рисунке:
(2) Приложение загружено в ОЗУ
В некоторых случаях приложение может быть записано с внешнего устройства для выполнения в ОЗУ, оно может быть расположено на SD-карте или некоторые из них могут быть переданы по сети, в этом случае сохранены на микросхеме. Программа, используемая для запуска в памяти, должна инициализировать некоторое оборудование, скопировать прикладную программу, расположенную на внешнем устройстве, в ОЗУ, а затем обновить VTOR для выполнения программы, хранящейся на внешнем устройстве. Конкретный процесс реализации выглядит следующим образом:
(3) Динамически изменять таблицу векторов
В некоторых случаях в ПЗУ может быть несколько прерванных экземпляров обработки, и может потребоваться переключаться между ними на разных этапах приложения. В этом случае вы можете скопировать таблицу векторов из памяти программы в SRAM и установить VTOR для указания на таблицу векторов в SRAM. Поскольку содержимое SRAM может быть изменено в любое время, вектор прерывания может быть легко изменен на разных этапах приложения.
Примечание: таблица векторов должна по крайней мере обеспечить начальное значение MSP и вектор сброса, используемый для запуска системы. Кроме того, для некоторых приложений, если устройство может запускать NMI при запуске, может потребоваться добавить векторы NMI и hardfault.
Программирование и использование встроенной таблицы векторов прерываний
Прерывание: когда программа MCU работает нормально, из-за неисправности ядра MCU или из-за того, что каждый модуль MCU отправляет событие запроса, работающий MUC передается для обработки и выполнения программы обслуживания прерывания.
Источник прерывания: событие, вызвавшее прерывание MCU. На примере KEA128 источники прерываний делятся на прерывания ядра и прерывания, не относящиеся к ядру.
Прерывания ядра: прерывания ядра - это в основном аварийные прерывания. При возникновении ошибки запускается прерывание, которое может перезагрузить микросхему или выполнить другие операции.
Неосновное прерывание: относится к прерыванию, вызванному источником прерывания каждого модуля MCU, также известному как маскируемое прерывание. Этот тип прерывания может быть запрограммирован для управления переключателем. После того, как MCU завершит процедуру обслуживания прерывания, он затем обрабатывает обычную процедуру выполнения перед прерыванием.
Таблица векторов прерываний: указывает фиксированную последовательность номера вектора прерывания источника прерывания, используемую для хранения адреса входа подпрограммы обслуживания прерывания. Этот адрес занимает 4 бита каждый, а таблица векторов прерываний KEA128 хранится во флэш-памяти 0x0000 0000-0x0000 00BF, 192B.
Номер вектора прерывания, номер прерывания IRQ (запрос неосновного прерывания), номер регистра IRQ приведены в таблице. Это число не может быть изменено Заводские настройки, каждое число представляет собой источник прерывания, не являющийся основным.
В файле запуска массив определяет последовательность номеров векторов прерывания источника прерывания. Во время компиляции файл связи загружает этот массив в позицию таблицы векторов прерываний.
Просто нужно знать несколько моментов
- Массив таблицы векторов прерываний __isr_vector определяется и помещается в указанную область .isr_vecor в файле связи.
- Чтобы определить все записи таблицы векторов прерываний, введите значения по умолчанию и используйте английское имя периферийного устройства, соответствующего вектору прерывания, в качестве функции обработки прерывания. Например, заполните UART0_IRQHandler в таблице векторов прерываний модуля последовательного порта 0.
- Определение обработчика прерывания по умолчанию Default_Handler на самом деле представляет собой постоянный цикл.
- В слабом символьном режиме записи таблицы векторов прерываний по умолчанию определены как обработчик прерываний по умолчанию Default_Handler. При фактическом использовании вам нужно только определить функцию с тем же именем, что и функция по умолчанию вектора прерывания в определяемом пользователем файле программы службы прерывания, а затем указать конкретное имя программы службы прерывания, написанное ей пользователем. Например:
Имя функции UART0_IRQHandler совпадает с именем программы обслуживания прерывания по умолчанию для последовательного порта 0. В это время компилятор устанавливает его как сильный символ по умолчанию, и он перезапишет исходное значение по умолчанию, определенное символом if в таблице векторов прерываний во время компиляции. В это время используйте метод определения макроса, чтобы указать служебную программу прерывания последовательного порта 0 isr_uart0_re, написанную пользователем, на эту функцию, и может быть реализовано отображение внешнего прерывания на служебную программу пользовательского прерывания.
В реальном программировании пользователь фактически пишет используемую служебную программу прерывания.
`
«Микроконтроллеры серии KEA для автомобильной электроники»
Что такое прерывание? Что ненормально? На самом деле это одно и то же, но разные источники называются по-разному. Аномалии, вызванные внутренней системой, называются аномалиями, а аномалии, вызванные периферийными устройствами или внешними выводами, называются прерываниями. Когда речь заходит об исключениях и прерываниях, следует упомянуть контроллер векторов прерываний NVIC, который представляет собой аппаратную структуру. Он будет принимать запросы от многих источников прерываний и выполнять соответствующие функции в соответствии с номером прерывания. Конкретная структурная схема выглядит следующим образом:
NVIC Cortex-M3 и Cortex-M4 поддерживает до 240 IRQ (запрос прерывания), одно немаскируемое прерывание (NMI), одно прерывание по таймеру (системный тик) и несколько систем аномальный. Большинство IRQ генерируются периферийными устройствами, такими как таймеры, порты ввода-вывода и коммуникационные интерфейсы (такие как UART, I2C). NMI обычно генерируется периферийными устройствами, такими как сторожевой таймер или детектор отключения питания. Остальные исключения - входящее ядро процессора, а прерывания также могут генерироваться программным обеспечением.
Полезное
1.5 Прерывание ввода и приостановка поведения
Каждое прерывание имеет несколько атрибутов: (1) каждое прерывание может быть отключено (по умолчанию) или включено через регистр управления прерываниями; (2) каждое прерывание может быть приостановлено (Ожидание в состоянии ожидания) Выполните функцию прерывания) или отпустите приостановку; (3) каждое прерывание может быть активным (в процессе) или неактивным (активный бит состояния доступен только для чтения), условие, на которое прерывание отвечает и может выполнять функцию прерывания: приостановить Прерывание включается одновременно, и приоритет прерывания выше, чем текущий приоритет.
Инициализация IDT
Первый этап инициализации выполняется BIOS, перед загрузкой ОС. Второй непосредственно самой операционной системой. Операционной системе доступно изменение некоторых адресов прерываний.
См. также
Микроядро • Монолитное ядро • Гибридное ядро • Пространство ядра (kernel space) • Модульное ядро • Наноядро • Драйвер • Пространство пользователя • Область пользователя • Экзоядро
Защита памяти • Сегментация памяти • Страничная память (Paging) • Блок управления памятью • Ошибка сегментации • Общая ошибка защиты
Самое начало оперативной памяти от адреса 0000h до 03FFh отводится под векторы прерываний – четырехбайтовые области, в которых хранятся адреса обработчиков прерываний (ОбрПр на рис. 1.12). В два старшие байта каждого вектора записывается сегментный адрес обработчика, в два младшие – смещение (относительный адрес) точки входа в обработчик. Векторы, как и соответствующие им прерывания, имеют номера, причем вектор с номером 0 располагается, начиная с адреса 0, вектор 1 – с адреса 4, вектор 2 – с адреса 8 и т.д. Вектор с номером п занимает, таким образом, байты памяти от n*4 до n*4+3. Всего в выделенной под векторы области памяти помещается 256 векторов.
Получив сигнал на выполнение процедуры прерывания с определенным номером, процессор сохраняет в стеке выполняемой программы текущее содержимое трех регистров процессора: регистра флагов, CS и IP. Два последних числа образуют полный адрес возврата в прерванную программу. Далее процессор загружает CS и IP из соответствующего вектора прерываний, осуществляя, тем самым, переход на обработчик прерывания, связанный с этим вектором.
Обработчик прерываний всегда заканчивается командой iret (interrupt return, возврат из прерывания), выполняющей обратные действия – извлечение из стека сохраненных там слов и помещение их назад в регистры IP и CS, а также в регистр флагов. Это приводит к возврату в основную программу в ту самую точку, где она была прервана.
В действительности запросы на обработку прерываний могут иметь различную природу. Помимо описанных выше аппаратных прерывания от периферийных устройств, называемых часто внешними, имеются еще два типа прерываний: внутренние и программные.
Внутренние прерывания возбуждаются цепями самого процессора при возникновении одной из специально оговоренных ситуаций, например, при выполнении операции деления на ноль или при попытке выполнить несуществующую команду. За каждым из таких прерываний закреплен определенный вектор, номер которого известен процессору. Например, за делением на 0 закреплен вектор 0, а за неправильной командой – вектор 6. Если процессор сталкивается с одной из таких ситуаций, он выполняет описанную выше процедуру прерывания, используя закрепленный за этой ситуацией вектор прерывания.
Наконец, еще одним чрезвычайно важным типом прерываний являются программные прерывания. Они вызываются командой hit с числовым аргументом, который рассматривается процессором, как номер вектора прерывания. Если в программе встречается, например, команда: int 13h то процессор выполняет ту же процедуру прерывания, используя в качестве номера вектора операнд команды int. Программные прерывания применяются в первую очередь для вызова системных обслуживающих программ – функций DOS и BIOS. С командой int 2In вызова DOS мы уже сталкивались в Примере 1.1 и будем встречаться еще многократно. В дальнейшем будут также приведены примеры использования команды int для вызова прикладных обработчиков программных прерываний.
Важно подчеркнуть, что описанные действия процессора выполняются совершенно одинаково для всех видов прерываний – внутренних, аппаратных и программных, хотя причины, возбуждающие процедуру прерывания, имеют принципиально разную природу.
Большая часть векторов прерываний зарезервирована для выполнения определенных действий; часть из них автоматически заполняется адресами системных программ при загрузке системы. Приведем краткую выдержку из таблицы векторов, позволяющую продемонстрировать разнообразие ее состава:
Как видно из таблицы, векторы прерываний можно условно разбить на следующие группы:
- векторы внутренних прерываний процессора (0lh, 02h и др.);
- векторы аппаратных прерываний (08h…0Fh и 70h…77h);
- программы BIOS обслуживания аппаратуры компьютера (10h, 13h, 16h и др.);
- программы DOS (21h, 22h, 23h и др.);
- адреса системных таблиц BIOS (IDh, lEh и др.).
Системные программы, адреса которых хранятся в векторах прерываний, в большинстве своем являются всего лишь диспетчерами, открывающими доступ к большим группам программ, реализующих системные функции. Так, видеодрайвер BIOS (вектор 10h) включает программы смены видеорежима, управления курсором, задания цветовой палитры, загрузки шрифтов и многие другие. Особенно характерен в этом отношении вектор 21h, через который осуществляется вызов практически всех функций DOS: ввода с клавиатуры и вывода на экран, обслуживания файлов, каталогов и дисков, управления памятью и процессами, службы времени и т.д.
Для вызова требуемой функции надо не только выполнить команду int с соответствующим номером, но и указать системе в одном из регистров (для этой цели всегда используется регистр АН) номер вызываемой функции. Иногда для "многофункциональных" функций приходится указывать еще и номер подфункции (в регистре AL).
1.5.1 Типы запросов на прерывание
NVIC поддерживает два типа запросов периферийных прерываний: (1) запрос импульсного прерывания, (2) высокоуровневый запрос прерывания, его не нужно настраивать, и оба могут отвечать по умолчанию.
Для запросов прерывания импульса ширина импульса должна составлять не менее одного тактового цикла, для запросов прерывания высокого уровня состояние высокого уровня всегда поддерживается до тех пор, пока в ISR не будет сброшен ожидающий бит. Хотя уровень внешнего запроса на выводе ввода / вывода может быть активным низким, сигнал запроса, полученный NVIC, все еще остается активным высоким. Независимо от того, какой тип запроса прерывания приходит, он будет установлен в регистре состояния приостановки.
Состояние приостановки прерывания сохраняется в программируемом регистре NVIC. Когда вход прерывания NVIC подтверждается, он запускает состояние приостановки прерывания, которое устанавливается в соответствующей позиции бита регистра приостановленного состояния. Даже если запрос прерывания отменен в это время, состояние ожидания все еще остается высоким, и запрос прерывания все равно будет выполнен , Приостановленное состояние означает, что прерывание ожидает обработки процессором.
Существует две ситуации, когда прерывание обрабатывается: (1) Когда прерывание приостановлено, Pending остается, процессор непосредственно обрабатывает его, а затем очищает бит Pending. (2) Если процессор обрабатывает прерывание с более высоким приоритетом или равным приоритетом, или прерывание маскируется маскировщиком прерываний (после того, как прерывание маскируется, ожидающий бит все равно будет приостановлен, если прерывание наступит), тогда Ожидающий запрос будет оставаться до тех пор, пока не будет завершена другая обработка прерывания или пока маска прерывания не будет очищена
Далее рассматривается несколько типичных процессов запроса прерывания:
Как показано на рисунке 7.14 выше, когда прерывание обрабатывается, оно будет активным. При входе прерывания несколько регистров будут автоматически помещаться в стек, который также называется Нажмите на стек. В то же время начальный адрес ISR будет взят из таблицы векторов. Когда приходит запрос на прерывание, состояние ожидания прерывания устанавливается на 1, что доказывает, что прерывание наступает и ожидает выполнения процессором. Когда процессор выполняет функцию обработки прерывания, бит ожидания прерывания будет очищен, а запрос обработки прерывания Уровень также должен быть опущен.
Когда прерывание активно, процессор не может снова принять тот же запрос прерывания, пока прерывание не будет завершено и исключение не вернется. То есть, даже если поступит запрос прерывания, бит Pending не будет установлен 。
Как показано на рисунке 7.15 выше, когда процессор выполняет запрос прерывания, бит приостановки очищается, и процессор не будет обрабатывать прерывание после его освобождения.
Как показано на рисунке 7.16 выше, когда процессор выполняет запрос прерывания, бит приостановки очищается, но запрос прерывания все еще существует, тогда бит приостановки все равно будет сброшен.
Как показано на рисунке 7.17 выше, после обработки прерывания ожидающий бит сбрасывается, но запрос прерывания все еще существует. Когда функция прерывания выполняется, Pending будет снова помещен. Введите прерывание.
Как показано на рисунке 7.18 выше, для запроса прерывания в форме импульса, до того, как прерывание будет выполнено, то есть до того, как ожидающий бит будет очищен, независимо от того, сколько поступит запросов на прерывание, он будет засчитан как один.
Как показано на рисунке 7.19 выше, когда процессор обрабатывает прерывание (бит Pending был очищен), приходит запрос на прерывание, затем позиция Pending будет снова повышена.После завершения текущей обработки прерывания он снова войдет в прерывание ,
Запись : Даже если прерывание отключено, его состояние «Ожидание» все еще можно установить, то есть запрос прерывания все равно установит бит «Ожидание прерывания» после _disable_irq. В этом случае прерывание включается позже и может быть включено. Запустить и выполнить. Но иногда мы надеемся, что прерывание из критической секции не будет выполнено, что требует очистки бита ожидания прерывания перед включением interrupt_enable_iqr. В целом, метод запроса NMI похож на China Lonely. Если обработка NMI в данный момент не выполняется или процессор приостановлен или заблокирован, поскольку NMI имеет наивысший приоритет и не может быть отключен, он будет выполнен почти сразу.
Справочная литература:
«Полное руководство по Cortex-M3 / 4»
"Подробный исходный код FreeRTOS и разработка приложений"
Прерывание (англ. interrupt ) — сигнал, сообщающий процессору о наступлении какого-либо события. При этом выполнение текущей последовательности команд приостанавливается, и управление передаётся обработчику прерывания, который выполняет работу по обработке события и возвращает управление в прерванный код.
В зависимости от источника возникновения сигнала прерывания делятся на:
- Аппаратные — события от периферийных устройств (например, нажатия клавиш клавиатуры, движение мыши, сигнал от таймера, сетевой карты или дискового накопителя) — внешние прерывания, или события в микропроцессоре — (например, деление на ноль) — внутренние прерывания; — инициируются выполняемой программой явным исполнением специальных инструкций, то есть синхронно, а не асинхронно. Программные прерывания могут служить для вызова сервисов операционной системы.
Термин "ловушка" (trap) иногда используется как синоним термина "прерывание", или же синоним термина "внутреннее прерывание" (см. выше). Единого словоупотребления этих терминов не существует ни в русском, ни в английском языке. Как правило, словоупотребление устанавливается в документации производителя конкретной архитектуры процессора.
Содержание
1.2 Управление исключениями и прерываниями
Ссылки
- Программирование x86
- Компьютерное аппаратное обеспечение
Wikimedia Foundation . 2010 .
Смотреть что такое "Таблица векторов прерываний" в других словарях:
Дескрипторные таблицы — Дескрипторные таблицы служебные структуры данных, содержащие дескрипторы сегментов. В архитектуре x86 есть три вида дескрипторных таблиц: Глобальная дескрипторная таблица (англ. Global Descriptor Table, GDT); Локальная дескрипторная… … Википедия
Режим виртуального 8086 — (V86, VM86, иногда просто виртуальный режим) режим адресации процессоров семейства x86 совместимый с прародителем семейства процессором Intel 8086. Является подрежимом защищенного. Впервые появился в процессоре 80386 и предназначался… … Википедия
вешалка — сл. уст. таблица векторов прерываний interruрt vectors. Hаходится по адресу 0000:0000. В ней находятся far адреса процедур обработки соответствующих прерываний, которые генерирует процессор или устройство при определенных условиях … Hacker's dictionary
Реальный режим — (или режим реальных адресов) это название было дано прежнему способу адресации памяти после появления процессора 80286, поддерживающего защищённый режим. Но только с появлением процессора 80386 можно говорить о защищённом режиме в… … Википедия
Основная область памяти — (Основная память, англ. Conventional memory) занимает первые 640 Кбайт оперативной памяти в IBM PC совместимых компьютерах. В эту область загружается таблица векторов прерываний (занимает 1 Кбайт), некоторые данные из BIOS (например, буфер… … Википедия
ОЗУ — Запрос «ОЗУ» перенаправляется сюда. Cм. также другие значения. Простейшая схема взаимодействия оперативной памяти с ЦП Оперативная память (также оперативное запоминающее устройство, ОЗУ) в информатике память, часть системы памяти ЭВМ, в которую … Википедия
Оперативное запоминающее устройство — Запрос «ОЗУ» перенаправляется сюда. Cм. также другие значения. Простейшая схема взаимодействия оперативной памяти с ЦП Оперативная память (также оперативное запоминающее устройство, ОЗУ) в информатике память, часть системы памяти ЭВМ, в которую … Википедия
Основная память — Основная область памяти (Основная память, англ. Conventional memory) занимает первые 640 Кбайт оперативной памяти в IBM PC совместимых компьютерах. В эту область загружается таблица векторов прерываний (занимает 1 Кбайт), некоторые данные из BIOS … Википедия
Ячейка памяти ЭВМ — Запрос «ОЗУ» перенаправляется сюда. Cм. также другие значения. Простейшая схема взаимодействия оперативной памяти с ЦП Оперативная память (также оперативное запоминающее устройство, ОЗУ) в информатике память, часть системы памяти ЭВМ, в которую … Википедия
IDT — Таблица векторов прерываний (англ. Interrupt Descriptor Table) IDT Integrated Device Technology … Википедия
См. также
1.1 Типы исключений
Архитектура Cortex-M поддерживает множественные исключения и внешние прерывания.Номера 1–15 - системные исключения, а 16 и выше - входы прерываний. Приоритет большинства исключений, включая прерывания, является программируемым, а некоторые системные исключения имеют фиксированный приоритет. (Номер прерывания и приоритет прерывания не одно и то же, обратите внимание на различение; значение перечисления исключения и номер исключения не являются понятием)
Список системных исключений:
Список внешних прерываний:
Номер прерывания (например, прерывание № 0) указывает на вход прерывания NVIC, что важно для определения, какое прерывание, например: номер запущенного в данный момент исключения находится в специальной программе регистрации прерываний. В регистре состояния (IPSR) или в NVIC вызывается регистр состояния управления прерываниями. Если для программирования используется CMSIS-Core, номер прерывания определяется перечислением, начиная со значения 0 (представляющего прерывание № 0), номер системного исключения является отрицательным, конкретное определение выглядит следующим образом:
Номер прерывания и связанные с ним перечисления основаны на конкретном чипе и обычно находятся в заголовочном файле, предоставленном поставщиком микроконтроллера, в разделе typedef с именем IRQn.
Читайте также: