Ядро ARM7TDMI-S, помимо стандартного базового состояния, называемого ARM, также использует уникальное архитектурное решение, известное как состояние THUMB. Это решение в большей степени, нежели состояние ARM, подходит для крупномасштабных приложений, реализация которых предполагает ограничение объема используемой памяти или размера программного кода. Идея состояния THUMB заключается в использовании уменьшенной, по сравнению с системой команд ARM, системы команд. По существу, процессор ARM7TDMI-S имеет две системы команд:
• стандартная 32-битная система команд ARM;
• 16-битная система команд THUMB.
При использовании состояния THUMB с 16-битной длиной команды, в ряде случаев удается достичь двойной плотности относительно стандартного кода ARM; при этом сохраняется большинство функций кода ARM. Дело в том, что код THUMB оперирует тем же самым набором 32-битных регистров, что и код ARM. По некоторым оценкам, код THUMB «ужимается» до 65% размера функционально эквивалентного ему кода ARM, а также обеспечивает до 160% производительности по сравнению с 16-битной процессорной системой, архитектура которой отлична от ARM.
Процессор ARM7TDMI-S использует следующие типы данных:
• слово (32 бита);
• полуслово (16 битов);
• байт (8 битов).
Процессор ARM7TDMI-S рассматривает память как линейное расположение байтов, пронумерованных в возрастающем порядке от нуля:
• байты 0...3 содержат первое хранимое в памяти слово;
• байты 4...7 содержат второе хранимое в памяти слово;
• байты 8... 11 содержат третье хранимое в памяти слово и т. д. Процессор ARM7TDMI-S использует следующие форматы хранения данных (программ) в памяти:
• big-endian;
• little-endian.
В соответствии с форматом big-endian, процессор сохраняет старший байт слова данных (программ) в байте памяти с наименьшим номером, а младший байт слова — в байте памяти с наибольшим номером, как изображено на Рис. 1.2. Например, в байте 0 памяти хранятся биты слова 31.„24.
Рис. 1.2. Формат хранения данных (программ) в памяти big-endian
В соответствии с форматом little-endian, процессор сохраняет младший байт слова данных (программ) в байте памяти с наименьшим номером, а старший байт слова — в байте памяти с наибольшим номером, как изображено на Рис. 1.3. Например, в байте 0 памяти хранятся биты слова 7...0.
Рис. 1.3. Формат хранения данных (программ) в памяти little-endian
В исходном тексте пользовательской встроенной программы с помощью специальных директив можно указать, какой из форматов хранения данных будет использоваться.
1.4.1. Режимы работы и регистровые модели процессора в состоянии ARM
В состоянии ARM процессор может функционировать в одном из следующих режимов:
1. User — выполнение программ пользователя.
2. Supervisor — работа под управлением операционной системы (ОС), которая оперирует данными, недоступными программам пользователя.
НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |