
- •Краткая характеристика ядра arm7tdmi
- •2. Архитектура ядра arm7tdmi
- •3. Структурная, функциональная схемы процессора и процессорного ядра
- •4. Краткое описание набора инструкций ядра arm7tdmi
- •1. Рабочие состояния процессора
- •2. Форматы памяти
- •3. Типы данных
- •4. Режимы работы
- •5. Регистры
- •6. Регистры статуса программы
- •7. Исключительные ситуации
- •8. Задержка прерываний
- •9. Сброс
- •Интерфейс памяти
- •Интерфейс сопроцессора
- •Отладочный интерфейс
- •Временные диаграммы циклов инструкций
- •7. Статические и динамические характеристики
- •Приложение a Описание сигналов
- •Приложение б Детальное описание отладки
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)