Поиск по сайту: |
|
По базе: |
|
Главная > Обзоры по типам > Микроконтроллеры > ARM > Система команд |
|
|||||||||||||||
Программное прерывание (SWI)Эта команда будет выполнена, если условие истинно. Все различные условия ее выполнения перечислены в таблице 6. Машинный код команды приведен на рис.33.
Команда программного прерывания используется для входа в защищенный режим (Supervisor), выполнение которой вызывает прерывание работы программы и передачу управления в соответствующий обработчик, при этом происходит смена режима работы ядра ARM7TDMI. В регистр PC записывается определенное значение, соответствующее вектору обработчика (0x08), а содержимое CPSR сохраняется в специальном регистре SPSR_svc. Защита обработчика программного прерывания от возможности изменений из основной программы или приложения (и контроллером внешней памяти) позволяет построить на основе команды SWI полностью защищенную операционную систему. Возврат из прерывания Так как перед передачей управления обработчику программного прерывания содержимое регистра PC предварительное сохранено в R14_svc, то для возможности правильного возврата из прерывания фактически в R14_svc заносится адрес команды, сразу следующий за командой SWI. При выполнении команды MOVS PC,R14_svc восстанавливается содержимое CPSR и возвращается управление в основную прерванную программу. Необходимо отметить, что этот способ входа и выхода из такого прерывания не позволяет реализовывать вложенные прерывания, поэтому внутри этого обработчика необходимо вручную сохранять адрес возврата (PC) и флаги процессора (SPSR), а перед выходом из него вручную восстанавливать указанные регистры. Поле комментариев Младшие 24-х бита кода при выполнении команды SWI всегда игнорируются, поэтому это поле комментариев может быть использовано, например, для передачи внутрь обработчика программного прерывания дополнительной информации. Например, в этом поле можно передавать индекс внутри массива указателей на подпрограммы, выполняющие определенные функции для защищенного режима. Число машинных тактов Команда SWI выполняется за 2S + 1N, где S и N зависят от типа машинных тактов. Синтаксис в ассемблере SWI{cond} <выражение> где:
Примеры
Код обработчика (Supervisor) Предыдущие примеры подразумевают существование обработчика, например, подобного этому:
<---- Вернуться к Системе команд ---> Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|