[Home] | [Donate!] [Контакты] |
[Подготовка к работе >>] |
Архитектура ARM существенно эволюционировала с момента своего появления и продолжает развиваться. Сейчас определено 8 основных версий архитектуры, которые пронумерованы, начиная с 1. Из них первые 3 считаются полностью устаревшими. Процессоры, принадлежащие к семействам процессоров ARM7, ARM9, ARM11 (с архитектурой версий 4-6), отнесены компанией ARM к "классическим", и хотя ещё применяются, они не рекомендуются для использования в новых разработках. Современные процессоры ARM имеют архитектуру версий 7 и 8 (ARMv7, ARMv6-M - подмножество ARMv7-M; ARMv8) и принадлежат к семействам процессоров Cortex: Cortex-A, Cortex-R, Cortex-M.
Среди многообразия процессоров с архитектурой ARM, есть как очень высокопроизводительные устройства (например, применяемые в планшетных компьютерах), так и устройства, для которых главное – малое энергопотребление и низкая цена (для использования в качестве микроконтроллеров).
Для того чтобы процессоры ARM максимально отвечали нуждам и ожиданиям потребителей, компания ARM, начиная с архитектуры версии ARMv7, вводит понятие профиля архитектуры. То есть, в рамках одной версии определяются несколько вариантов архитектуры (профилей).
На данный момент определены следующие профили:Хотя формально профили введены, начиная с 7-й версии архитектуры ARM, фактически они существовали и ранее, так как ранее существовали процессоры с VMSA, которые могут быть соотнесены с профилем A и процессоры с PMSA, которые соответствуют профилю R.
Современные на данный момент процессоры ARM принадлежат к семействам Cortex-A, Cortex-R, Cortex-M и имеют соответственно профили архитектуры A, R, M (архитектуры версий 7, 8).
Как известно, компания ARM занимается только разработкой и сама процессоры не производит. Производством занимаются другие компании, которые по лицензии используют разработки ARM. Объединяя ARM-ядро c RAM, ROM/PROM (Flash), периферийными устройствами, они создают свой процессор (микроконтроллер). Производитель определяет не только периферию, но имеет возможность конфигурировать само ядро, например, выбрать количество поддерживаемых внешних прерываний, количество уровней приоритета прерываний, состав включаемых модулей, определяемых архитектурой как опциональные и др.
Все современные процессоры ARM являются 32-битными, а в 8-й версии архитектуры появляется также поддержка 64-битного набора инструкций.
Если говорить о профиле микроконтроллеров M, то к нему относятся процессоры, которые могут использоваться как ядро микроконтроллера:
В этой линейке:
Cortex-M0 - процессор с наименьшей производительностью из линейки Cortex-M, что правда, не мешает ему обгонять 16-битные устройства, не говоря уже о 8-битных. Имеет низкую потребляемую мощность и является основой для наиболее дешёвых микроконтроллеров.
Cortex-M0+ является совместимым по набору инструкций с процессором Cortex-M0, при этом у него ещё ниже потребление электроэнергии и выше производительность. Самый энергоэффективный процессор. Лучше других подходит для устройств с батарейным питанием.
Cortex-M3 находит весьма широкое применение для высокопроизводительных, недорогих платформ; может использоваться в некоторых случаях в системах реального времени.
Cortex-M4 по сравнению с Cortex-M3 имеет расширения для DSP (цифровой обработки сигналов), FPU одинарной точности (опционально), усовершенствованный конвейер.
Cortex-M7 - последний, наиболее высокопроизводительный процессор из семейства Cortex-M, имеет расширения DSP, FPU для чисел одинарной и двойной точности (опционально), шестиступенчатый конвейер с предсказанием ветвлений и многое другое.
Cortex-M1 выбивается из стройной линейки процессоров семейства Cortex-M. Это процессор, специально разработанный для реализации на FPGA.
Микроконтроллеры с архитектурой ARM производят десятки компаний, всего доступно для выбора тысячи микроконтроллеров. Это упрощает подбор устройства, подходящего по производительности, объёму памяти, набору периферийных устройств, цене.
ARM-микроконтроллеры являются 32-битными; обеспечивают малую задержку при обработке прерываний; имеют инструкции для манипуляции с битами; обеспечивают высокую плотность кода (компактный код). Являются лидерами по производительности, имеют хорошее соотношение потребляемая мощность/производительность. Являются экономичными, обеспечивают длительную работу при питании от батарей, поддерживают несколько режимов сна на уровне архитектуры. Младшие модели микроконтроллеров из семейства Cortex-M, превосходя 8-битовые микроконтроллеры по быстродействию, сравнимы с ними по потребляемой мощности и цене (или даже лучше). Имеют малое количество вентилей; высокая плотность кода уменьшает требуемый объём памяти. В итоге микроконтроллер занимает мало места на кристалле.
Микроконтроллеры ARM хорошо подходят для программирования на C/C++. Архитектурная поддержка обработчиков в виде C++ функций, а также наличие библиотеки CMSIS, обеспечивающей API для доступа к ядру и периферии, позволяют полностью отказаться от использования ассемблера.
Имеется хороший выбор средств разработки, в том числе и бесплатных.
Имеются аппаратные средства отладки кода в устройстве, которые определены в архитектуре.
Единая архитектура позволяет использовать одни и те же инструменты для разработки, отладки, прошивки при работе с любыми ARM микроконтроллерами. Совместимость устройств способствует повторному использованию кода, упрощает переход от одного микроконтроллера к другому (в том числе и от другого производителя).
ARM архитектура предлагает продвинутый контроллер вложенных векторных прерываний (NVIC) с богатым функционалом; имеет поддержку операционных систем; имеет модуль защиты памяти (MPU, опция).