ARM Cortex-M

редактировать
ИС микроконтроллеров ARM Cortex-M0 и Cortex-M3 от NXP и Silicon Labs (Energy Micro ) Die из микросхемы STM32F100C4T6B.
24 МГц микроконтроллер ARM Cortex-M3 с 16 KB флэш-памятью, 4 КБ ОЗУ. Изготовлено STMicroelectronics.

ARM Cortex-Mпредставляет собой группу процессорных ядер 32-bit RISC ARM. лицензированы Arm Holdings. Эти ядра оптимизированы для недорогих и энергоэффективных микроконтроллеров, встроенных в десятки миллиардов потребительских устройств. Ядра состоят из Cortex-M0, Cortex-M0 +, Cortex-M1, Cortex-M3, Cortex-M4, Cortex-M7, Cortex-M23, Cortex-M33, Cortex-M35P, Cortex-M55. Ядра Cortex-M4 / M7 / M33 / M35P / M55 имеют FPU кремниевый вариант, и когда эти ядра включены в кремний, эти ядра иногда называют «Cortex-Mx с FPU» или «Cortex-MxF», где 'x' - номер ядра.

Содержание
  • 1 Над view
    • 1.1 Лицензия
    • 1.2 Настройка кремния
    • 1.3 Наборы инструкций
    • 1.4 Устаревшие версии
  • 2 Cortex-M0
    • 2.1 Чипы
  • 3 Cortex-M0 +
    • 3.1 Чипы
      • 3.1.1 Самый маленький компьютер в мире
  • 4 Cortex-M1
    • 4.1 Чипы
  • 5 Cortex-M3
    • 5.1 Чипы
  • 6 Cortex-M4
    • 6.1 Чипы
  • 7 Cortex-M7
    • 7,1 чипа
  • 8 Cortex-M23
    • 8,1 чипа
  • 9 Cortex-M33
    • 9,1 чипа
  • 10 Cortex-M35P
    • 10,1 чипа
  • 11 Cortex-M55
    • 11.1 Микросхемы
  • 12 Инструменты разработки
  • 13 Документация
  • 14 См. Также
  • 15 Ссылки
  • 16 Дополнительная литература
  • 17 Внешние ссылки
Обзор
32-битный
ГодCore
2004Cortex-M3
2007Cortex-M1
2009Cortex-M0
2010Cortex-M4
2012Cortex-M0 +
2014Cortex-M7
2016Cortex-M23
2016Cortex-M33
2018Cortex-M35P
2020Cortex-M55

Семейство ARM Cortex-M - это ядра микропроцессоров ARM, которые предназначены для использования в микроконтроллерах, ASIC, ASSP, ПЛИС и SoC. Ядра Cortex-M обычно используются как специализированные микросхемы микроконтроллеров, но также «спрятаны» внутри микросхем SoC в качестве контроллеров управления питанием, контроллеров ввода-вывода, системных контроллеров, контроллеров сенсорных экранов, контроллеров интеллектуальных батарей и контроллеров датчиков.

Хотя 8-битные микроконтроллеры были очень популярны в прошлом, Cortex-M постепенно уступает место 8-битному рынку, поскольку цены на недорогие чипы Cortex-M падают. Cortex-M стал популярной заменой 8-битных чипов в приложениях, которые выигрывают от 32-битных математических операций, и заменяет старые устаревшие ядра ARM, такие как ARM7 и ARM9.

License

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

Кремниевая настройка

Производители интегрированных устройств (IDM) получают процессор ARM IP как синтезируемый RTL (записанный в Verilog ). В этой форме они могут выполнять оптимизацию и расширения архитектурного уровня. Это позволяет производителю достичь индивидуальных целей проектирования, таких как более высокая тактовая частота, очень низкое энергопотребление, расширения набора команд (включая числа с плавающей запятой), оптимизация размера, поддержка отладки и т. Д. Чтобы определить, какие компоненты были включены в конкретный ARM Чип процессора, обратитесь к техническому описанию производителя и сопутствующей документации.

Вот некоторые из вариантов микросхемы для ядер Cortex-M:

  • Таймер SysTick: 24-битный системный таймер, который расширяет функциональные возможности как процессора, так и контроллера вложенных векторных прерываний (NVIC). Если он присутствует, он также предоставляет дополнительное прерывание SysTick с настраиваемым приоритетом. Хотя таймер SysTick не является обязательным, очень редко можно найти микроконтроллер Cortex-M без него. Если микроконтроллер Cortex-M33 имеет опцию Security Extension, тогда он имеет два SysTicks, один Secure и один незащищенный.
  • Bit-Band: отображает полное слово памяти на один бит в битовом область диапазона. Например, запись в слово псевдонима установит или очистит соответствующий бит в области битовой полосы. Это позволяет напрямую получать доступ к каждому отдельному биту в области битовой полосы из адреса, выровненного по словам. В частности, отдельные биты могут быть установлены, очищены или переключены из C / C ++ без выполнения последовательности инструкций чтения-изменения-записи. Хотя битовый диапазон является необязательным, реже можно найти микроконтроллер Cortex-M3 и Cortex-M4 без него. Некоторые микроконтроллеры Cortex-M0 и Cortex-M0 + имеют битовую полосу пропускания.
  • Блок защиты памяти (MPU): обеспечивает поддержку защиты областей памяти посредством применения правил привилегий и доступа. Он поддерживает до восьми различных регионов, каждую из которых можно разделить на еще восемь субрегионов равного размера.
  • Tightly-Coupled Memory (TCM): ОЗУ с малой задержкой, которое используется для хранения критически важных программ. , данные, стеки. Помимо кеша, это обычно самая быстрая оперативная память в микроконтроллере.
Дополнительные компоненты ARM Cortex-M
ARM CoreCortex
M0
Cortex
M0 +
Cortex
M1
Cortex
M3
Cortex
M4
Cortex
M7
Cortex
M23
Cortex
M33
Cortex
M35P
SysTick 24-bit Таймер Необязательно
(0,1)
Необязательно
(0,1)
Необязательно
(0,1)
Да
(1)
Да
(1)
Да
(1)
Необязательно
(0,1,2 )
Да
(1,2)
Да
(1,2)
Порт одноциклового ввода-выводаNoДополнительноNoNoNoNoДополнительноNoНет
Память Bit-BandNoNoНет *ДополнительноДополнительноДополнительноNoNoНет
Защита памяти
Модуль ( MPU)
NoНеобязательно
(0,8)
NoНеобязательно
(0,8)
Необязательно
(0,8)
Необязательно
(0,8,16)
Необязательно
(0,4,8,12,16)
Необязательно
(0,4,8,12,16)
Необязательно
*
Безопасность Атрибуция
Единица (SAU) и
Ограничения стека
NoNoNoNoNoNoНеобязательно
(0,4,8)
Дополнительно
(0,4,8)
Дополнительно
*
Инструкция TCMNoNoДополнительноNoNoДополнительноNoNoНет
Данные TCMNoNoДополнительноNoNoДополнительноNoNoНет
Инструкция Кэш NoNoNoNoNoНеобязательноNoNoНеобязательно
Кэш данныхNoNoNoNoNoНеобязательноNoNoНет
Таблица векторов Смещение
Регистр (VTOR)
NoНеобязательно
(0,1)
Необязательно
(0,1)
Необязательно
(0,1)
Необязательно
(0,1)
Необязательно
(0,1)
Необязательно
(0,1,2)
Да
(1 , 2)
Да
(1,2)
  • Примечание. Большинство микросхем Cortex-M3 и M4 имеют битовую полосу пропускания и MPU. Параметр битовой полосы может быть добавлен к M0 / M0 + с помощью набора для проектирования системы Cortex-M.
  • Примечание. Программное обеспечение должно проверять наличие функции перед попыткой ее использования.
  • Примечание. Ограниченная общедоступная информация доступна для Cortex-M35P до тех пор, пока не будет выпущено его техническое справочное руководство.

Дополнительные параметры микросхемы:

  • Порядок байтов данных: младший или прямой порядок байтов. В отличие от традиционных ядер ARM, Cortex-M постоянно фиксируется в кремнии в качестве одного из этих вариантов.
  • Прерывания: от 1 до 32 (M0 / M0 + / M1), от 1 до 240 (M3 / M4 / M7 / M23) ), От 1 до 480 (M33 / M35P).
  • Контроллер прерывания пробуждения: необязательно.
  • Регистр смещения таблицы векторов: необязательно. (недоступно для M0).
  • Ширина выборки инструкций: только 16-битная или в основном 32-битная.
  • Поддержка пользователей / привилегий: необязательно.
  • Сбросить все регистры : Необязательно.
  • Порт однократного ввода-вывода: Необязательно. (M0 + / M23).
  • Порт доступа к отладке (DAP): Нет, SWD, JTAG и SWD. (необязательно для всех ядер Cortex-M)
  • Поддержка остановки отладки: необязательно.
  • Количество компараторов точек наблюдения: от 0 до 2 (M0 / M0 + / M1), от 0 до 4 (M3 / M4 /M7/M23/M33/M35P).
  • Количество компараторов точек останова: от 0 до 4 (M0 / M0 + / M1 / ​​M23), от 0 до 8 (M3 / M4 / M7 / M33 / M35P).

Наборы команд

Cortex-M0 / M0 + / M1 реализуют архитектуру ARMv6-M, Cortex-M3 реализует архитектуру ARMv7-M, Cortex -M4 / Cortex-M7 реализует архитектуру ARMv7E-M, Cortex-M23 / M33 / M35P реализует архитектуру ARMv8-M, а Cortex-M55 реализует ARMv8.1-Mархитектура. Архитектуры являются двоичными инструкциями, совместимыми снизу вверх, от ARMv6-M до ARMv7-M до ARMv7E-M. Двоичные инструкции, доступные для Cortex-M0 / Cortex-M0 + / Cortex-M1, могут выполняться без изменений на Cortex-M3 / Cortex-M4 / Cortex-M7. Двоичные инструкции, доступные для Cortex-M3, могут выполняться без изменений на Cortex-M4 / Cortex-M7 / Cortex-M33 / Cortex-M35P. В архитектурах Cortex-M поддерживаются только наборы команд Thumb-1 и Thumb-2; устаревший 32-разрядный набор инструкций ARM не поддерживается.

Все ядра Cortex-M реализуют общее подмножество инструкций, которое состоит из большинства Thumb-1, некоторых Thumb-2, включая 32-битное умножение результата. Cortex-M0 / Cortex-M0 + / Cortex-M1 / Cortex-M23 были разработаны для создания самого маленького кремниевого кристалла, таким образом, имея наименьшее количество инструкций в семействе Cortex-M.

Cortex-M0 / M0 + / M1 включает инструкции Thumb-1, за исключением новых инструкций (CBZ, CBNZ, IT), которые были добавлены в архитектуру ARMv7-M. Cortex-M0 / M0 + / M1 включает второстепенное подмножество инструкций Thumb-2 (BL, DMB, DSB, ISB, MRS, MSR). Cortex-M3 / M4 / M7 / M33 / M35P имеют все базовые инструкции Thumb-1 и Thumb-2. Cortex-M3 добавляет три инструкции Thumb-1, все инструкции Thumb-2, аппаратное целочисленное деление и арифметические инструкции насыщения. Cortex-M4 добавляет инструкции DSP и дополнительный блок одинарной точности с плавающей запятой (VFPv4-SP). Cortex-M7 добавляет дополнительный FPU двойной точности (VFPv5). Cortex-M23 / M33 добавляет инструкции TrustZone.

Варианты инструкций ARM Cortex-M
Arm CoreCortex
M0
Cortex
M0 +
Cortex
M1
Cortex
M3
Cortex
M4
Cortex
M7
Cortex
M23
Cortex
M33
Cortex
M35P
Cortex
M55
Архитектура ARM ARMv6-MARMv6-MARMv6-MARMv7-MARMv7E-MARMv7E-MARMv8-M
Baseline
ARMv8-M
Mainline
ARMv8-M
Mainline
Armv8.1-M
Архитектура компьютера Фон Нейман Фон НейманФон НейманГарвард ГарвардГарвардФон НейманГарвардГарвардГарвард
Канал обучения 3 этапа2 этапа3 этапа3 этапа3 стадии6 стадий2 стадии3 стадии3 стадииот 4 до 5 стадий
Thumb -1 инструкцииБольшая частьБольшая частьБольшая частьВесьВесьВесьМостЭнти reВсяВся
Thumb-2 instructionsSomeSomeSomeВесьВесьВесьНемногоЦелыйЦелыйВесь
Умножить инструкции
32x32 = 32-битный результат
ДаДаДаДаДаДаДаДаДаДа
Инструкции умножения
32x32 = 64-битный результат
NoNoNoДаДаДаNoДаДаДа
Разделить инструкции
32/32 = 32-бит частное
NoNoNoДаДаДаДаДаДаДа
Насыщенные инструкцииNoNoNoНекоторыеДаДаNoДаДаДа
DSP инструкцииNoNoNoNoДаДаNoНеобязательноНеобязательноНеобязательно
Single-Precision (SP)
Плавающая точка инструкции
NoNoNoNoНеобязательноНеобязательноNoНеобязательноНеобязательноНеобязательно
Двойная точность (DP)
Инструкции с плавающей запятой
NoNoNoNoNoНеобязательноNoNoNoНеобязательно
С половинной точностью (HP)NoNoNoNoNoNoNoNoNoНеобязательно
Инструкции TrustZone NoNoNoNoNoNoДополнительноOptionalOptionalНеобязательно
Процессор инструкцииNoNoNoNoNoNoNoOptionalДополнительноНеобязательно
Технология гелияNoNoNoNoNoNoNoNoNoНеобязательно
Задержка прерывания
(если ОЗУ с нулевым ожиданием)
16 циклов15 циклов23 для NMI
26 для IRQ
12 циклов12 циклов12 циклов15 без защиты ext
27 security ext
TBDTBDTBD
  • Примечание: Cortex-M0 / M0 + / M1 не включает эти 16-битные Thumb-1инструкции: CBZ, CBNZ, IT.
  • Примечание: Cortex-M0 / M0 + / M1 включает только эти 32-битные Thumb-2инструкции: BL, DMB, DSB, ISB, MRS, MSR.
  • Примечание: Cortex-M0 / M0 + / M1 / ​​M23 имеет только 32-битные инструкции умноженияс более низким 32-битным результатом (32 бит × 32 бит = нижний 32b it), где Cortex-M3 / M4 / M7 / M33 / M35P включает дополнительные 32-битные инструкции умножения с 64-битными результатами (32 бит × 32 бит = 64 бит). Cortex-M4 / M7 (опционально M33 / M35P) включает инструкции DSP для умножения (16 бит × 16 бит = 32 бит), (32 бит × 16 бит = старшие 32 бит), (32 бит × 32 бит = старшие 32 бит).
  • Примечание : Количество циклов для выполнения команд умножения и деления различается в зависимости от архитектуры ядра ARM Cortex-M. Некоторые ядра имеют вариант кремния для выбора высокой скорости или небольшого размера (медленная скорость), поэтому у ядер есть возможность использовать меньше кремния с обратной стороной большего количества циклов. Прерывание, возникающее во время выполнения инструкции деления или инструкции медленного итеративного умножения, заставит процессор отказаться от инструкции, а затем перезапустить ее после возврата из прерывания.
    • Инструкции умножения «32-битный результат» - Cortex-M0 / M0 + / M23 - это вариант кремния с 1 или 32 циклами, Cortex-M1 - вариант кремния с 3 или 33 циклами, Cortex-M3 / M4 / M7 / M33 / M35P - 1 цикл.
    • Инструкции умножения «64-битный результат» - Cortex-M3 составляет 3–5 циклов (в зависимости от значений), Cortex-M4 / M7 / M33 / M35P - 1 цикл.
    • Разделить инструкции - Cortex-M3 / M4 - 2–12 циклов (в зависимости от значений), Cortex-M7 - 3–20 циклов (в зависимости от значений), Cortex-M23 - вариант 17 или 34 цикла, Cortex-M33 составляет 2–11 циклов (в зависимости от значений), Cortex-M35P подлежит уточнению.
  • Примечание: Cortex-M4 / M7 / M33 / M35P не имеет выбора варианта кремния: FPUили одинарной точности (SP), а в Cortex-M7 добавлен третий вариант микросхемы, поддерживающий как одинарную точность (SP), так и двойную точность (DP). Если Cortex-M4 / M7 / M33 / M35P имеет FPU, то он известен как Cortex-M4 F/ Cortex-M7 F/ Cortex-M33 F/ Cortex-M35P F.
  • Примечание: серия Cortex-M включает три новых 16-битных Thumb-1инструкции для спящего режима: SEV, WFE, WFI.
  • Примечание : Счетчик циклов задержки прерывания предполагает: 1) стек, расположенный в ОЗУ с нулевым ожиданием, 2) другую функцию прерывания, которая в данный момент не выполняется, 3) опция Security Extension не существует, потому что она добавляет дополнительные циклы. Ядра Cortex-M с компьютерной архитектурой Harvard имеют меньшую задержку прерывания, чем ядра Cortex-M с компьютерной архитектурой фон Неймана.
Группы команд ARM Cortex-M
ГруппаInstr
биты
ИнструкцииCortex
M0, M0 +, M1
Cortex
M3
Cortex
M4
Cortex
M7
Cortex
M23
Cortex
M33, M35P
Cortex
M55
Thumb-116ADC, ADD, ADR, AND, ASR, B, BIC, BKPT, BLX, BX, CMN , CMP, CPS, EOR, LDM, LDR, LDRB, LDRH, LDRSB, LDRSH, LSL, LSR, MOV, MUL, MVN, NOP, ORR, POP, PUSH, REV, REV16, REVSH, ROR, RSB, SBC, SEV , STM, STR, STRB, STRH, SUB, SVC, SXTB, SXTH, TST, UXTB, UXTH, WFE, WFI, YIELDДаДаДаДаДаДаДа
Thumb-116CBNZ, CBZNoДаДаДаДаДаДа
Thumb-116ITNoДаДаДаNoДаДа
Thumb-232BL, DMB, DSB, ISB, MRS, MSRДаДаДа esДаДаДаДа
Thumb-232SDIV, UDIVNoДаДаДаДаДаДа
Thumb-232ADC, ADD, ADR, AND, ASR, B , BFC, BFI, BIC, CDP, CLREX, CLZ, CMN, CMP, DBG, EOR, LDC, LDM, LDR, LDRB, LDRBT, LDRD, LDREX, LDREXB, LDREXH, LDRH, LDRHT, LDRSB , LDRSBT, LDRSH, LDRSHT, LDRT, LSL, LSR, MCR, MCRR, MLA, MLS, MOV, MOVT, MRC, MRRC, MUL, MVN, NOP, ORN, ORR, PLD, PLDW, PLI, POP, PUSH, RBIT , REV, REV16, REVSH, ROR, RRX, RSB, SBC, SBFX, SEV, SMLAL, SMULL, SSAT, STC, STM, STR, STRB, STRBT, STRD, STREX, STREXB, STREXH, STRH, STRHT, STRT, SUB , SXTB, SXTH, TBB, TBH, TEQ, TST, UBFX, UMLAL, UMULL, USAT, UXTB, UXTH, WFE, WFI, YIELDNoДаДаДаNoДаДа
DSP 32PKH, QADD, QADD16, QADD8, QASX, QDADD, QDSUB, QSAX, QSUB, QSUB16, QSUB8, SADD16, SADD8, SASX, SEL, SHADD16, SHADD8, SHASX, SHSAX, SHSUB16, SHSUB8, SMLABB, SMLABT, SMLATB, SMLATT, SMLAD, SMLALBB, SMLALBT, SMLALTB, SML ALTT, SMLALD, SMLAWB, SMLAWT, SMLSD, SMLSLD, SMMLA, SMMLS, SMMUL, SMUAD, SMULBB, SMULBT, SMULTT, SMULTB, SMULWT, SMULWB, SMUSD, SSAT16, SSAX, SSUB16, SSABX8, SXTH16, SSABXTX, SXTX UADD16, UADD8, UASX, UHADD16, UHADD8, UHASX, UHSAX, UHSUB16, UHSUB8, UMAAL, UQADD16, UQADD8, UQASX, UQSAX, UQSUB16, UQSUBTA8, USAD8, USADA8, USATUB16, USATUB16, США. UXTB16NoNoДаДаNoНеобязательноДа
SP Float 32VABS, VADD, VCMP, VCMPE, VCVT, VCVTR, VDIV, VLDM, VLDR, VMLA , VMLS, VMOV, VMRS, VMSR, VMUL, VNEG, VNMLA, VNMLS, VNMUL, VPOP, VPUSH, VSQRT, VSTM, VSTR, VSUBNoNoДополнительноДополнительноNoДополнительноДополнительно
DP Float 32VCVTA, VCVTM, VCVTN, VCVTP, VMAXNM, VMINNM, VRINTA, VRINTM, VRINTN, VRINTP, VRINTR, VRINTX, VRINTZ, VSELNoNoNoДополнительноNoNoДополнительно
TrustZone 16BLXNS, BXNSNoNoNoNoДополнительноДополнительноДополнительно
TrustZone32SG, TT, TTT, TTA, TTATNoNoNoNoДополнительноДополнительноДополнительно
Co-pro cessor 16CDP, CDP2, MCR, MCR2, MCRR, MCRR2, MRC, MRC2, MRRC, MRRC2NoNoNoNoNoНеобязательноНеобязательно
  • Примечание: инструкции FPU с одинарной точностью (SP) действительны в Cortex-M4 / M7 / M33 / M35P только тогда, когда в кремнии существует опция SP FPU.
  • Примечание: инструкции FPU двойной точности (DP) действительны в Cortex-M7, только когда DP В микросхеме существует опция FPU.

Устаревшие

Архитектура ARM для серии ARM Cortex-M удалила некоторые функции из старых устаревших ядер:

  • 32-битный набор инструкций ARM не включен в Cortex- M ядер.
  • Порядок байтов выбирается при реализации кремния в ядрах Cortex-M. Устаревшие ядра позволяли «на лету» изменять режим данных endian.
  • Сопроцессор не поддерживался ядрами Cortex-M, пока кремниевый вариант не был повторно введен в «ARMv8» -M Mainline "для ядер ARM Cortex-M33 / M35P.

Возможности 32-битного набора инструкций ARM во многом дублируются наборами инструкций Thumb-1 и Thumb-2, но некоторые функции ARM этого не делают. имеют похожую функцию:

  • Инструкции SWP и SWPB (swap) ARM не имеют аналогичной функции в Cortex-M.

16-битный набор инструкций Thumb-1 со временем развивался с момента его первого выпуска в устаревших ядрах ARM7T с архитектурой ARMv4T. Новые инструкции Thumb-1 были добавлены по мере выпуска каждой устаревшей архитектуры ARMv5 / ARMv6 / ARMv6T2. Некоторые 16-битные инструкции Thumb-1 были удалены из ядер Cortex-M:

  • Инструкция «BLX » не существует, потому что она использовалась для переключения с Thumb-1 на набор инструкций ARM. Инструкция «BLX » по-прежнему доступна в Cortex-M.
  • SETEND не существует, потому что переключение на лету режима байта данных больше не поддерживается.
  • Инструкции сопроцессора не поддерживались ядрами Cortex-M, пока кремниевый вариант не был повторно введен в «ARMv8-M Mainline» для ядер ARM Cortex-M33 / M35P.
  • Инструкция SWI была переименована в SVC, хотя двоичное кодирование команд такое же. Однако код обработчика SVC отличается от кода обработчика SWI из-за изменений в моделях исключений.
Cortex-M0
Cortex-M0
Архитектура и классификация
Микроархитектура ARMv6-M
Набор команд Thumb-1 (большая часть),
Thumb-2 (некоторые)

Ядро Cortex-M0 оптимизировано для использования в кремниевых кристаллах небольшого размера и использовании в фишках по самой низкой цене.

Ключевые особенности ядра Cortex-M0:

Параметры кремния:

Чипы

Следующие микроконтроллеры основаны на ядре Cortex-M0:

Следующие чипы имеют Cortex-M0 в качестве вторичного ядра:

  • NXP LPC4300 (один Cortex-M4F + один Cortex-M0)
  • Texas Instruments Беспроводные микроконтроллеры SimpleLink CC1310 и CC2650 (один программируемый Cortex-M3 + один сетевой процессор Cortex-M0 + один проприетарный механизм контроллера сенсора)
Cortex-M0 +
Cortex-M0 +
Архитектура и классификация
Микроархитектура ARMv6-M
Набор команд Thumb-1 (большинство),
Thumb-2 (некоторые)
NXP (Freescale ) Плата FRDM-KL25Z с KL25Z128VLK (Kinetis L)

Cortex-M0 + является оптимизированным расширенным набором Cortex-M0. Cortex-M0 + полностью совместим с набором инструкций Cortex-M0, что позволяет использовать те же инструменты компилятора и отладки. Конвейер Cortex-M0 + был сокращен с 3 до 2 этапов, что снижает энергопотребление. В дополнение к функциям отладки в существующем Cortex-M0, в Cortex-M0 + можно добавить кремниевую опцию, называемую Micro Trace Buffer (MTB), которая обеспечивает простой буфер трассировки инструкций. Cortex-M0 + также получил функции Cortex-M3 и Cortex-M4, которые могут быть добавлены в качестве кремниевых опций, такие как модуль защиты памяти (MPU) и перемещение векторной таблицы.

Ключевые особенности ядра Cortex-M0 +:

  • архитектура ARMv6-M
  • 2-этапный конвейер (на один меньше, чем Cortex-M0)
  • Наборы инструкций: (то же, что и Cortex-M0)
    • Thumb-1 (большинство), отсутствует CBZ, CBNZ, IT
    • Thumb-2 (некоторые), только BL, DMB, DSB, ISB, MRS, MSR
    • 32-битное аппаратное целочисленное умножение с 32-битным результатом
  • От 1 до 32 прерывания, плюс NMI

Параметры кремния:

Чипы

Следующие микроконтроллеры на базе ядра Cortex-M0 +:

Следующие микросхемы имеют Cortex-M0 + в качестве вторичного ядра:

  • Cypress PSoC 6200 (один Cortex-M4F + один Cortex-M0 +)
  • ST WB (один Cortex-M4F + один Cortex-M0 +)

Самые маленькие микроконтроллеры ARM относятся к типу Cortex-M0 + (по состоянию на 2014 г. , самый маленький (1,6 мм на 2 мм) - Kinetis KL03).

Самый маленький компьютер в мире

21 июня 2018 года «самый маленький компьютер в мире ' » или компьютерное устройство было анонсировано - на базе ARM Cortex-M0 + (включая RAM и беспроводные передатчики и приемники на базе на фотогальванике ) - исследователями Мичиганского университета на симпозиуме 2018 года по технологиям и схемам СБИС с докладом «Беспроводная сенсорная система без батареи 0,04 мм 16 нВт со встроенным процессором Cortex-M0 + и Оптическая связь для измерения температуры сотовой связи ». Размер устройства составляет 1/10 от размера компьютера IBM, который ранее был объявлен мировым рекордом по сравнению с мартом 2018 года, что меньше, чем крупица скепсиса.

Cortex-M1
Cortex-M1
Архитектура и классификация
Микроархитектура ARMv6-M
Набор команд Thumb-1 (большинство),
Thumb- 2 (некоторые)

Cortex-M1 - это оптимизированное ядро, специально разработанное для загрузки в микросхемы FPGA.

Ключевые особенности ядра Cortex-M1:

  • Архитектура ARMv6-M
  • 3-этапный конвейер.
  • Наборы команд:
    • Thumb- 1 (большая часть), отсутствуют CBZ, CBNZ, IT.
    • Thumb-2 (некоторые), только BL, DMB, DSB, ISB, MRS, MSR.
    • 32-битное аппаратное целочисленное умножение с 32-битным результатом.
  • от 1 до 32 прерываний, плюс NMI.

Кремниевые опции:

  • Аппаратная скорость целочисленного умножения: 3 или 33 цикла.
  • Дополнительная плотно связанная память (TCM): от 0 до 1 МБ для команд TCM, от 0 до 1 МБ для данных-TCM, каждая с дополнительным ECC.
  • Внешние прерывания: 0, 1, 8, 16, 32.
  • Отладка: нет, сокращенная, полная.
  • Порядок следования данных: прямой порядок байтов или прямой порядок байтов BE-8.
  • Расширение ОС: присутствует или отсутствует.

Чипы

Следующие производители поддерживают Cortex-M1 в качестве программных ядер на своих микросхемах FPGA:

  • Altera Cyclone-II, Cyclone-III, Stratix-II, Stratix-III
  • GOWIN Semiconductor
  • Microsemi (Actel ) Fusion, IGLOO / e, ProASIC3L, ProASIC3 / E
  • Xilinx Spartan-3, Virtex -2, Virtex-3, Virtex-4, Artix-7
Cortex-M3
Cortex-M3
Архитектура и классификация
Микроархитектура ARMv7-M
Набор команд Thumb-1, Thumb-2,
Насыщенный (некоторые), Divide
Arduino Плата Due с Atmel ATSAM3X8E (ядро ​​ARM Cortex-M3 ) микроконтроллер NXP LPCXpresso Development Board с LPC1343

Ключевые особенности ядра Cortex-M3:

  • Архитектура ARMv7-M
  • 3-ступенчатая конвейерная с предположение ветвления.
  • Наборы инструкций:
    • Thumb-1 (весь).
    • Thumb-2 (весь).
    • 32-битное аппаратное целое число, умноженное на 32-битный или 64-битный результат со знаком или без знака, сложение или вычитание после умножения. 32-битное умножение составляет 1 цикл, но 64-битное умножение и инструкции MAC требуют дополнительных циклов.
    • 32-битное аппаратное целочисленное деление (2–12 циклов).
    • арифметика насыщения поддержка.
  • от 1 до 240 прерываний, плюс NMI.
  • задержка прерывания 12 циклов.
  • Интегрированные спящие режимы.

Варианты кремния:

  • Дополнительный блок защиты памяти ( MPU): 0 или 8.

Чипы

Следующие микроконтроллеры основаны на ядре Cortex-M3:

Следующие микросхемы имеют Cortex-M3 в качестве вторичного ядра:

Следующие FPGA включают ядро ​​Cortex-M3:

Следующие производители поддерживают Cortex-M3 в качестве программных ядер на своих чипах FPGA:

  • Altera Cyclone-II, Cyclone-III, Stratix-II, Stratix-III
  • Xilinx Spartan-3, Virtex-2, Virtex-3, Virtex-4, Artix-7
Cortex-M4
Cortex-M4
Architectu по и классификация
Микроархитектура ARMv7E-M
Набор команд Thumb-1, Thumb-2,
Saturation, DSP,
Divide, FPU (SP)
Silicon Labs (Energy Micro ) Wonder Gecko STK Board с EFM32 WG990 TI Stellaris Launchpad Board с LM4F120

Концептуально Cortex-M4 представляет собой Cortex-M3 с инструкциями DSP и дополнительным блоком с плавающей запятой (FPU). Ядро с FPU известно как Cortex-M4F.

Ключевые особенности ядра Cortex-M4:

  • архитектура ARMv7E-M
  • 3-этапный конвейер с предположением ветвления.
  • Наборы инструкций :
    • Thumb-1 (весь).
    • Thumb-2 (весь).
    • 32-битное аппаратное целочисленное умножение с 32-битным или 64-битным результатом, со знаком или без знака, сложить или вычесть после умножения. 32-битное умножение и MAC - 1 цикл.
    • 32-битное аппаратное целочисленное деление (2–12 циклов).
    • Поддержка арифметики насыщения.
    • Расширение DSP: один цикл 16/32-битный MAC, двойной 16-битный MAC с одним циклом, 8/16-битный SIMD арифметический.
  • от 1 до 240 прерываний, плюс NMI.
  • Задержка прерывания 12 циклов.
  • Интегрированные спящие режимы.

Кремниевые опции:

  • Дополнительный блок с плавающей запятой (FPU): только одинарная точность IEEE-754 соответствует требованиям. Это называется расширением FPv4-SP.
  • Дополнительный блок защиты памяти (MPU): 0 или 8 регионов.

Чипы

Следующие микроконтроллеры основаны на ядре Cortex-M4:

Следующие микроконтроллеры основаны на Cortex- Ядро M4F (M4 + FPU ):

Следующие микросхемы имеют либо Cortex-M4 или M4F в качестве вторичного ядра:

Cortex-M7
Cortex-M7
Архитектура и классификация cation
Микроархитектура ARMv7E-M
Набор инструкций Thumb-1, Thumb-2,
Насыщенный, DSP,
Divide, FPU (SP & DP)

Cortex-M7 - это высокопроизводительное ядро ​​с почти вдвое большей энергоэффективностью, чем у более старого Cortex-M4. Он имеет 6-этапный суперскалярный конвейер с предсказанием ветвления и дополнительный модуль с плавающей запятой, способный выполнять операции с одинарной точностью и, опционально, с двойной точностью. Шины инструкций и данных были увеличены до 64-битной ширины по сравнению с предыдущими 32-битными шинами. Если ядро ​​содержит FPU, оно называется Cortex-M7F, иначе это Cortex-M7.

Ключевые особенности ядра Cortex-M7:

  • архитектура ARMv7E-M.
  • 6-этапный конвейер с предположением ветвления. Самое длинное из всех ядер ARM Cortex-M.
  • Наборы команд:
    • Thumb-1 (весь).
    • Thumb-2 (весь).
    • 32-битное аппаратное целочисленное умножение с 32-битным или 64-битным результатом со знаком или без знака, добавление или вычитание после умножения. 32-битное умножение и MAC - 1 цикл.
    • 32-битное аппаратное целочисленное деление (2–12 циклов).
    • Поддержка арифметики насыщения.
    • Расширение DSP: один цикл 16/32-битный MAC, двойной 16-битный MAC с одним циклом, 8/16-битный SIMD арифметический.
  • от 1 до 240 прерываний, плюс NMI.
  • Задержка прерывания 12 циклов.
  • Интегрированные спящие режимы.

Кремниевые опции:

  • Дополнительный модуль с плавающей запятой (FPU): (одинарная точность) или (одинарная и двойная- точность), оба стандарта IEEE-754-2008. Это называется расширением FPv5.
  • Необязательно Кэш ЦП : кэш команд от 0 до 64 КБ, кэш данных от 0 до 64 КБ, каждый с дополнительным ECC.
  • Необязательно Жестко-связанная память (TCM): от 0 до 16 МБ для команд TCM, от 0 до 16 МБ для данных-TCM, каждая с дополнительным ECC.
  • Дополнительный блок защиты памяти (MPU): 8 или 16 областей.
  • Дополнительная встроенная макроячейка трассировки (ETM): только инструкции или инструкции и данные.
  • Дополнительный режим удержания (с комплектом управления питанием рычага) для спящих режимов.

Чипы

Следующие микроконтроллеры основаны на ядре Cortex-M7:

Cortex-M23
Cortex-M23
Архитектура и классификация
Микроархитектура ARMv8-M Baseline
Набор команд Thumb-1 (most),
Thumb-2 (some),
Divide, TrustZone

The Cortex-M23 core was announced in October 2016 and based on the newer ARMv8-M archit ecture that was previously announced in November 2015. Conceptually the Cortex-M23 is similar to a Cortex-M0+ plus integer divide instructions and TrustZone security features, and also has a 2-stage instruction pipeline.

Key features of the Cortex-M23 core are:

  • ARMv8-M Baseline architecture.
  • 2-stage pipeline. (similar to Cortex-M0+)
  • TrustZone security instructions. (available only in M23/M33/M35P)
  • 32-bit hardware integer разделить (17 или 34 цикла). (недоступно в M0 / M0 + / M1) (медленнее, чем деление во всех других ядрах)
  • Границы предела стека. (доступно только с опцией SAU) (доступно в M23 / M33 / M35P)

Кремниевые опции:

  • Аппаратная скорость целочисленного умножения: 1 или 32 цикла.
  • Аппаратная скорость целочисленного деления: 17 или 34 цикла максимум. В зависимости от делителя инструкция может выполняться за меньшее количество циклов.
  • Дополнительный блок защиты памяти (MPU): 0, 4, 8, 12, 16 регионов.
  • Дополнительный блок атрибуции безопасности (SAU): 0, 4, 8.
  • Порт ввода-вывода с одним циклом (доступен в M0 + / M23).
  • Micro Trace Buffer (MTB) (доступен в M0 + / M23 / M33 / M35P)

Чипы

Следующие микроконтроллеры основаны на ядре Cortex-M23:

Cortex-M33
Архитектура и классификация
Микроархитектура ARMv8-M Mainline
Набор команд Thumb-1, Thumb-2,
Насыщенный, DSP,
Divide , FPU (SP),
TrustZone, Co-processor

Ядро Cortex-M33 было анонсировано в октябре 2016 года и основано на более новом ARMv8-M архитектура, о которой ранее было объявлено в ноябре 2015 года. Концептуально Cortex-M33 - это si похож на гибрид Cortex-M4 и Cortex-M23, а также имеет трехступенчатый конвейер команд..

Ключевые особенности ядра Cortex-M33:

  • Основная архитектура ARMv8-M.
  • 3-этапный конвейер.
  • TrustZone инструкции по безопасности. (доступно только в M23 / M33 / M35P)
  • 32-битное аппаратное целочисленное деление (максимум 11 циклов). (недоступно в M0 / M0 + / M1)
  • Границы пределов стека. (доступно только с опцией SAU) (доступно в M23 / M33 / M35P)

Кремниевые опции:

  • Дополнительный модуль с плавающей запятой (FPU): только одинарная точность Совместимость с IEEE-754. Он называется расширением FPv5.
  • Дополнительный блок защиты памяти (MPU): 0, 4, 8, 12, 16 регионов.
  • Дополнительный блок атрибуции безопасности (SAU): 0, 4, 8 регионов.
  • Micro Trace Buffer (MTB) (доступен в M0 + / M23 / M33 / M35P).

Чипы

Следующие микроконтроллеры основаны на ядре Cortex-M33:

Cortex-M35P
Cortex-M35P
Архитектура и классификация
Микроархитектура ARMv8-M Mainline
Набор команд Thumb-1, Thumb-2,
Насыщенный, DSP,
Разделить, FPU (SP),
TrustZone, Сопроцессор

Ядро Cortex-M35P было анонсировано в мае 2018 года. Концептуально это ядро ​​Cortex-M33 с новым кешем инструкций, а также новыми концепциями оборудования с защитой от несанкционированного доступа, заимствованными из семейства ARM SecurCore, и настраиваемыми функциями четности и ECC.

Limited public i Информация о Cortex-M35P в настоящее время доступна до выпуска его Технического справочного руководства.

Чипы

Следующие микроконтроллеры основаны на ядре Cortex-M35P:

  • По состоянию на февраль 2020 года чипы не были анонсированы.
Cortex-M55
Cortex- M55
Архитектура и классификация
Микроархитектура ARMv8.1-M Mainline Helium
Набор команд Thumb-1, Thumb-2,
Насыщенный, DSP,
Divide, FPU (VFPv5),
TrustZone, Coprocessor, MVE

Ядро Cortex-M55 было анонсировано в феврале 2020 и основан на архитектуре Armv8.1-M, анонсированной ранее в феврале 2019 года. Он также имеет 4-этапный конвейер команд.

Ключевые особенности ядра Cortex-M55 включают:

  • Архитектура ARMv8.1-M Mainline / Helium.
  • 4-этапный конвейер.
  • Границы ограничения стека ( доступно только с опцией SAU).

Кремниевые опции:

  • Гелий (M-Profile Vector Extension, MVE)
  • с плавающей запятой одинарной и двойной точности
  • Цифровой сигнал Поддержка расширения обработки (DSP)
  • TrustZone поддержка расширения безопасности
  • Поддержка безопасности и надежности (RAS)
  • Поддержка сопроцессора
  • Безопасный и небезопасный MPU с 0, 4, 8, 12 или 16 регионов
  • SAU с 0, 4 или 8 регионами
  • Кэш инструкций размером 4 КБ, 8 КБ, 16 КБ, 32 КБ, 64 КБ
  • Кэш данных размером 4 КБ, 8 КБ, 16 КБ, 32 КБ, 64 КБ
  • ECC в кэшах и TCM
  • 1–480 прерываний
  • 3–8 бит приоритета исключения
  • Внутренние и внешние опции WIC, дополнительные CTI, ITM и DWT
  • Пользовательские инструкции ARM (доступны в будущих версиях)

Чипы

Следующие микроконтроллеры основаны на сотрудничество Ядро rtex-M55:

  • По состоянию на февраль 2020 года чипы не были анонсированы.
Инструменты разработки
Segger J-Link PRO. Отладочный зонд с интерфейсом SWD или JTAG для целевой микросхемы ARM и интерфейсами USB или Ethernet для хост-компьютера.
Документация

документация для чипов ARM обширна. В прошлом документация по 8-битным микроконтроллерам обычно помещалась в один документ, но по мере развития микроконтроллеров появилось все необходимое для их поддержки. Пакет документации для микросхем ARM обычно состоит из набора документов от производителя ИС, а также поставщика ядра ЦП (Arm Holdings ).

Типичное нисходящее дерево документации:

Дерево документации (сверху вниз)
  1. Веб-сайт производителя ИС.
  2. Маркетинговые слайды производителя ИС.
  3. ИС техническое описание производителя конкретного физического чипа.
  4. Справочное руководство производителя ИС, в котором описываются общие периферийные устройства и аспекты семейства физических чипов.
  5. Веб-сайт ядра ARM.
  6. Стандартный пользователь ядра ARM
  7. Техническое справочное руководство по ядру ARM.
  8. Справочное руководство по архитектуре ARM.

Производители ИС имеют дополнительные документы, такие как: руководства пользователя оценочной платы, примечания по применению, руководства по началу работы, программное обеспечение библиотечные документы, исправления и многое другое. См. Раздел Внешние ссылки для ссылок на официальные документы Arm.

См. Также
  • Портал электроники
Викискладе есть носители, относящиеся к ARM Cortex-M .
официальным документам ARM Cortex-M
ARM
ядро ​​
Бит
ширина
ARM
веб-сайт
ARM generic
руководство пользователя
Техническое руководство ARM
справочное руководство
Архитектура ARM
справочное руководство
Cortex-M0 32Ссылка Ссылка Ссылка ARMv6-M
Cortex-M0 + 32Ссылка Ссылка Ссылка ARMv6-M
Cortex-M1 32Ссылка Ссылка Ссылка ARMv6-M
Cortex-M3 32Ссылка Ссылка Ссылка ARMv7-M
Cortex-M4 32Ссылка Ссылка Ссылка ARMv7E-M
Cortex- M7 32Ссылка Ссылка Ссылка ARMv7E-M
Cortex-M23 32Ссылка Ссылка Ссылка ARMv8-M
Cortex-M33 32Ссылка Ссылка Ссылка ARMv8-M
Cortex-M35P 32Ссылка TBDTBDARMv8-M
Cortex-M55 32Ссылка TBDTBDARMv8.1- M
Краткие справочные карты
  • Инструкции: Thumb-1 (1 ), ARM и Thumb-2 (2 ), Vector Floating-Point (3 ) - arm.com
  • Коды операций: Thumb-1 (1, 2 ), ARM (3, 4 ), Директивы GNU Assembler (5 ).
Миграция
Другое
Последняя правка сделана 2021-06-09 02:03:40
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте