Пиши Дома Нужные Работы

Обратная связь

Обратный порядок (Big-Endian)

В формате обратного порядка, процессор ARM7TDMI запоминает старший значащий байт слова в позиции байта с наименьшим порядковым номером, а младший байт - в позиции байта с наибольшим порядковым номером. Т.о., байт по адресу 0 системы памяти связан с линиями данных 31..24.

На рисунке 6 показывается, как слово по адресу А, полуслова по адресам А и А+2, а также байты по адресам А, А+1, А+2, А+3 соотносятся между собой при конфигурации ядра к обратному порядку.


Рисунок 6. Адреса байт и полуслов в слове при обратном порядке (Big-endian)

Типы данных

Процессор ARM7TDMI поддерживает следующие типы данных:

· слова: 32 бит;

· полуслова: 16 бит;

· байты: 8 бит.

Их необходимо выровнять следующим образом:

Значения слов необходимо выровнять в пределах 4 байт

Значения полуслов необходимо выровнять в пределах 2 байт

Значения байт могут располагаться в любых пределах байта.

Прим.: системы памяти, как правило, поддерживают все типы данных. В частности, система должна поддерживать запись подслов без повреждения смежных байт в слове.

 

Режимы работы

Процессор ARM7TDMI поддерживает семь режимов работы:

Режим пользователя - обычное состояние ARM при выполнении программы, также используется для выполнения большинства прикладных программ.

Режим быстрого прерывания (FIQ), который поддерживает передачу данных или обработку канала.

Режим прерывания (IRQ), который используется для обработки прерываний общего назначения.

Супервизорный режим, который является защищенным режимом для операционной системы.

Аварийный режим, который вводится после аварийной выборки данных или инструкции.

Системный режим - привилегированный режим пользователя для операционной системы.



Прим.: Вы можете вводить системный режим из другого привилегированного режима только путем изменения бита режима в регистре текущего состояния программы (CPSR).

Неопределенный режим вводится, когда выполняется неопределенная инструкция.

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

Каждый регистр имеет идентификатор режима (см. таблицу 2).

Таблица 2. Идентификаторы режима

Регистры

Процессор ARM7TDMI содержит всего 37 регистров:

· 31 32-разрядных регистра общего назначения

· 6 регистров статуса.

Не все регистры доступны в одно и тоже время. Доступность регистров для программиста зависит от состояния процессора и рабочего режима.

 

Набор регистров в состоянии ARM

В состоянии ARM доступны 16 регистров общего назначения, один или два регистра статуса. В привилегированных режимах становятся доступными специфические банки регистров. На рисунке 2.3 демонстрируется, какие регистры доступны в каждом режиме.

В набор регистров в состоянии ARM входят 16 регистров r0...r15. Еще один регистр, CPSR, содержит флаги условия кода и биты текущего режима. Регистры r0...r13 являются регистрами общего назначения и могут использоваться как для хранения данных, так и для хранения адреса. Регистры r14 и r15 выполняют следующие специальные функции:

Регистр связи

Регистр 14 используется как регистр связи (LR) подпрограммы.

Регистр r14 принимает копию регистра r15 при выполнении инструкции переход по ссылке (BL).

Во всех остальных случаях регистр r14 может использоваться как регистр общего назначения. Соответствующие банкированные регистры r14_svc, r14_irq, r14_fiq, r14_abt и r14_und аналогичным образом используются для запоминания значений возврата r15 при возникновении прерываний и исключительных ситуаций или при выполнении инструкции BL внутри процедур обработки прерываний или исключительных ситуаций.

Счетчик программы

Регистр 15 хранит значение PC.

В состоянии ARM биты [1:0] регистра r15 имеют неопределенное значение и должны игнорироваться. Биты [31:2] содержат значение PC.

В состоянии Thumb бит [0] имеет неопределенное значение и должен игнорироваться. Биты [31:1] содержат значение PC.

Регистр r13 iиспользуется в качестве указателя стека (SP).

В привилегированных режимах доступен еще один регистр - регистр хранения статуса программы (SPSR). Он содержит флаги кода условия и биты режима, являющиеся результатом исключительной ситуации, которое вызвало вхождение в текущий режим.

Банки регистров - дискретные физические регистры в ядре, которые находятся в позициях доступных регистров в зависимости от текущего рабочего режима процессора. Содержимое банкированного регистра запоминается при изменениях рабочих режимов.

В режиме FIQ имеется семь банкированных регистров в позициях r8-r14 (r8_fiq-r14_fiq).

В состоянии ARM несколько обработчиков быстрых прерываний (FIQ) не должны выполнять запись в какой-либо регистр.

В режимах пользователя, IRQ, супервизорном, аварийном и неопределенном имеется два банкированных регистра в позиции r13 и r14, позволяя хранить собственное значение SP и LR в каждом режиме.

В системном режиме используются те же регистры, что и в режиме пользователя.

На рисунке 7 представлены регистры для состояния ARM.


Рисунок 7. Организация регистров в состоянии ARM






ТОП 5 статей:
Экономическая сущность инвестиций - Экономическая сущность инвестиций – долгосрочные вложения экономических ресурсов сроком более 1 года для получения прибыли путем...
Тема: Федеральный закон от 26.07.2006 N 135-ФЗ - На основании изучения ФЗ № 135, дайте максимально короткое определение следующих понятий с указанием статей и пунктов закона...
Сущность, функции и виды управления в телекоммуникациях - Цели достигаются с помощью различных принципов, функций и методов социально-экономического менеджмента...
Схема построения базисных индексов - Индекс (лат. INDEX – указатель, показатель) - относительная величина, показывающая, во сколько раз уровень изучаемого явления...
Тема 11. Международное космическое право - Правовой режим космического пространства и небесных тел. Принципы деятельности государств по исследованию...



©2015- 2024 pdnr.ru Все права принадлежат авторам размещенных материалов.