Скачиваний:
209
Добавлен:
13.06.2014
Размер:
3.13 Mб
Скачать

1. Рабочие состояния процессора

О модели программирования

Ядро процессора ARM7TDMI использует архитектуру ARM v4T, которая поддерживает 32-разрядный набор инструкций ARM и 16-разрядный набор инструкций Thumb. Модель программирования описана в "ARM Architecture Reference Manual" (справочное руководство по архитектуре ARM).

Рабочие состояния процессора

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

ARM - в данном состоянии выполняются 32-разрядные инструкции ARM;

Thumb - в данном состоянии выполняются 16-разрядные инструкции Thumb.

В состоянии Thumb счетчик программы (PC) использует бит 1 для переключения между альтернативными полусловами.

Прим.: переход между состояниями ARM и Thumb не оказывает влияния на процессорный режим или содержимое регистров.

2.1 Изменение состояния

Рабочее состояние ядра ARM7TDMI может переключаться между состоянием ARM и Thumb с помощью инструкции BX. Данная процедура описана в "ARM Architecture Reference Manual".

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

2. Форматы памяти

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

  • байты 0..3 представляют первое записанное слово;

  • байты 4...7 представляют второе записанное слово.

Процессор ARM7TDMI поддерживает оба порядка следования байт многобайтных слов в памяти:

  • Прямой порядок байт (Little-endian), когда сначала следует младший, а затем старший байты.

  • Обратный порядок байт (Big-Endian), когда сначала следует старший, а затем младший байты.

Прим.: по умолчанию у ARM-процессоров используется прямой порядок байт (Little-endian).

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

Конфигурация порядка следования байт не зависит от типа хранимых данных (слова, полуслова или байты).

2.1 Прямой порядок (Little-endian)

В формате прямого порядка, байт с наименьшим адресом в слове рассматривается как младший значащий байт слова, а байт с наибольшим адресом - старший значащий байт. Т.о., байт по адресу 0 системы памяти соединяет с линиями данных 7...0. На рисунке 2.1 показывается, как слово по адресу А, полуслова по адресам А и А+2, а также байты по адресам А, А+1, А+2, А+3 соотносятся между собой при конфигурации ядра к прямому порядку.

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

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

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

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

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

Соседние файлы в папке ПЦиПУ. материалы для Курсового проекта Тютякин А.В.