Поиск по сайту: |
|
По базе: |
|
Главная страница > Обзоры по типам > Микроконтроллеры > ARM |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
12. Обзор процессора ARM7TDMI12.1 Обзор Ядро ARM7TDMI способен выполнять как 32-битные ARM® команды, так и 16-битные Thumb® команды, что позволяет пользователю сделать оптимальный выбор между производительностью и размером кода. Процессор ARM7TDMI реализован по фон-неймановской архитектуре, использующей трехступенчатое конвейерное выполнение команд: Выборка, Декодирования и Выполнение. Основные отличительные особенности процессора ARM7TDMI:
12.2 Процессор ARM7TDMI Для получения более подробной информации по ядру ARM7TDMI обращайтесь к следующим документам:
12.2.1 Типы выполняемых команд Любые выполняемые команды ARM7TDMI могут быть либо 32-разрядными (в состоянии ARM), либо 16-разрядными (в состоянии THUMB). 12.2.2 Типы поддерживаемых данных ARM7TDMI поддерживает работу со следующими типами данных: байт (8 бит), полуслово (16 бит), целое слово (32 бита). При выполнении команд работы с целыми словами, адреса последних должны быть выровнены по четырехбайтной границе, а адреса полуслов - по двухбайтной границе. Поведение процессора ARM7TDMI при выполнении команд с данными, размещенными по не выровненным адресам (в зависимости от типа самих данных), зависит только от текущего режима работы ядра. 12.2.3 Режимы работы ARM7TDMI Ядро ARM7TDMI, основанное на ARM архитектуре v4T, поддерживает работу в семи режимах:
Смена режима может осуществляться либо программно, либо по внешнему событию (например, внешнему прерыванию), либо по возникновению исключительной ситуации. Подавляющее большинство прикладных программ создано для работы в пользовательском режиме (user). 12.2.4 Регистры ARM7TDMI Процессор ARM7TDMI имеет в своем составе всего тридцать семь 32-битных регистров:
Все эти 37 регистров недоступны в один и тот же момент времени. Набор регистров, которые доступны из прикладной программы единовременно, зависит от текущего состояния ядра. В любом состоянии ядра ARM7TDMI доступно не более 16 регистров, при этом все остальные регистры являются их синонимами, а обращение к ним может быть использовано с целью ускорения работы самой программы. Регистр 15 является программным счетчиком (PC) и может использоваться в любой команде для относительного доступа к данным в памяти (относительно адреса самой команды). Регистр 14 используется для хранения адреса возврата из последней вызванной подпрограммы. Регистр 13 используется для хранения адреса вершины программного стека. Таблица 12-1. Карта размещения регистров ARM7TDMI в различных состояниях ядра ARM
Регистры R0…R7 - регистры общего назначения с небанковым размещением. Это означает, что физически размещение этих регистров не зависит от рабочего состояния ядра процессора. Более того, ядро процессора не использует эти регистры в своих целях, т.е. каждый из них может использоваться в прикладной программе как обычные регистры. Регистры R8…R14 - регистры с банковым размещением. Это означает, что физически размещение этих регистров зависит от рабочего состояния ядра процессора. 12.2.4.1 Режимы исключительных ситуаций и их обработка Во всех исключительных ситуация ядра используются регистры R13 и R14. Сразу после возникновения исключительно ситуации в регистре R14 размещается адрес той команды, выполнение которой вызвало эту исключительную ситуацию. После обработки исключительной ситуации производится возврат в прерванную основную программу. Возврат возможен либо по адресу прерванной команды, либо в любое другое место программы (изменение содержимого регистра R14). Регистр R13 используется для поддержки работы своего программного стека для каждого из режимов ядра процессора. В режиме быстрого прерывания (FIQ) выполняется аппаратное сохранение и восстановление регистров R8…R12. Из всех семи режимов ядра процессора только системный режим не имеет собственных банковых регистров, поэтому он использует в своей работе регистры пользовательского режима. Из всех семи режимов ядра процессора только системный режим не имеет собственных банковых регистров, поэтому он использует в своей работе регистры пользовательского режима. Задачи, которые требуют своего выполнения в привилегированном режиме, могут быть запущены в системном режиме, что позволит отслеживать все классы исключительных ситуаций. 12.2.4.2 Статусные регистры процессора Все режимы работы ядра процессора размещаются в статусных регистрах. Текущее состояние ядра процессора находится в статусном регистре текущей программы (CPSR). Этот регистр имеет указанные следующие поля.
Все пять исключительных состояний ядра имеют сохраненный статусный регистр текущей программы (SPSR), который хранит содержимое регистра CPSR при возникновении исключительной ситуации. 12.2.4.3 Типы исключительных ситуаций Ядро поддерживает пять типов исключительных ситуаций, работающих в привилегированном режиме. Ниже приведен их список:
Исключительные ситуации вызываются от внешних или внутренних источников. В один и тот же момент времени могут возникать две и более исключительных ситуации. Сразу после возникновения исключительной ситуации для сохранения PC используется регистр R14, а для хранения регистра CPSR - регистр SPSR (для соответствующего состояния ядра). После обработки исключительной ситуации содержимое регистра SPSR копируется в регистр CPSR, а содержимое R14 копируется в программный счетчик PC. Для осуществления этого существуют два способа:
12.2.5 Обзор системы команд в режиме ARM Все команды в режиме ARM делятся на следующие группы:
Команды в режиме ARM могут выполняться по условию. Для этого в коде каждой команды присутствует 4-битное поле условия: биты [31:28]. В таблице 12-2 приведен полный список команд в режиме ARM. Таблица 12-2. Список команд в режиме ARM
12.2.6 Обзор системы команд в режиме Thumb Система команд ядра в режиме Thumb является подмножеством команд в режиме ARM. Все команды в режиме Thumb делятся на следующие группы:
В режиме Thumb доступны для работы восемь регистров общего назначения: R0…R7. Эти регистры являются физически теми же самыми регистрами в режиме ARM. Некоторые Thumb команды также имеют доступ к программному счетчику PC (ARM регистр R15), регистру ссылки LR (ARM регистр R14) и указателю на вершину стека (ARM регистр R13). Все остальные Thumb команды не имеют доступа к регистрам ядра R8…R15.
Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|