ARM Cortex-M - ARM Cortex-M

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

В ARM Cortex-M это группа 32-битный RISC РУКА процессорных ядер по лицензии Arm Holdings. Эти ядра оптимизированы для недорогих и энергоэффективных микроконтроллеров, встроенных в десятки миллиардов потребительских устройств.[1] Ядра состоят из Cortex-M0, Cortex-M0 +, Cortex-M1, Cortex-M3, Cortex-M4, Cortex-M7, Cortex-M23, Cortex-M33, Cortex-M35P, Cortex-M55.[2][3][4][5][6][7][8] Ядра Cortex-M4 / M7 / M33 / M35P / M55 имеют FPU кремниевый вариант, и когда они включены в кремний, эти ядра иногда называются «Cortex-Mx с FPU» или «Cortex-MxF», где «x» - номер ядра.

Обзор

32-битный
ГодОсновной
2004Cortex-M3
2007Кортекс-М1
2009Cortex-M0
2010Кортекс-М4
2012Кортекс-М0 +
2014Cortex-M7
2016Кортекс-М23
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.

Лицензия

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

Силиконовая настройка

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

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

  • Таймер SysTick: 24-битный системный таймер, который расширяет функциональные возможности как процессора, так и контроллера вложенных векторных прерываний (NVIC). Если он присутствует, он также предоставляет дополнительное прерывание SysTick с настраиваемым приоритетом.[9][10][11] Хотя таймер SysTick не является обязательным, очень редко можно найти микроконтроллер Cortex-M без него. Если микроконтроллер Cortex-M33 имеет опцию Security Extension, то у него есть два SysTick, один Secure и один незащищенный.
  • Bit-Band: отображает полное слово памяти на один бит в области битовой полосы. Например, запись в слово псевдонима установит или очистит соответствующий бит в области битовой полосы. Это позволяет напрямую получать доступ к каждому отдельному биту в области битовой полосы из адреса, выровненного по словам. В частности, отдельные биты могут быть установлены, очищены или переключены из C / C ++ без выполнения последовательности инструкций чтения-изменения-записи.[9][10][11] Хотя битовый диапазон является необязательным, реже можно найти микроконтроллер Cortex-M3 и Cortex-M4 без него. Некоторые микроконтроллеры Cortex-M0 и Cortex-M0 + имеют битовый диапазон.
  • Блок защиты памяти (MPU): обеспечивает поддержку защиты областей памяти посредством применения правил доступа и привилегий. Он поддерживает до восьми различных регионов, каждый из которых может быть разделен на еще восемь субрегионов равного размера.[9][10][11]
  • Tightly-Coupled Memory (TCM): ОЗУ с малой задержкой, которая используется для хранения критически важных процедур, данных и стека. Помимо кеша, это обычно самая быстрая оперативная память микроконтроллера.
Дополнительные компоненты ARM Cortex-M
Ядро ARMКора
M0[2]
Кора
M0 +[3]
Кора
M1[4]
Кора
M3[5]
Кора
M4[6]
Кора
M7[7]
Кора
M23[8]
Кора
M33[12]
Кора
M35P
SysTick 24-бит ТаймерНеобязательный
(0,1)
Необязательный
(0,1)
Необязательный
(0,1)
да
(1)
да
(1)
да
(1)
Необязательный
(0,1,2)
да
(1,2)
да
(1,2)
Одноцикловый порт ввода / выводаНетНеобязательныйНетНетНетНетНеобязательныйНетНет
Битовая памятьНет[13]Нет[13]Нет*НеобязательныйНеобязательныйНеобязательныйНетНетНет
Защита памяти
Блок (MPU)
НетНеобязательный
(0,8)
НетНеобязательный
(0,8)
Необязательный
(0,8)
Необязательный
(0,8,16)
Необязательный
(0,4,8,12,16)
Необязательный
(0,4,8,12,16)
Необязательный
*
Безопасность Атрибуция
Блок (САУ) и
Пределы стека
НетНетНетНетНетНетНеобязательный
(0,4,8)
Необязательный
(0,4,8)
Необязательный
*
Инструкция TCMНетНетНеобязательныйНетНетНеобязательныйНетНетНет
Данные TCMНетНетНеобязательныйНетНетНеобязательныйНетНетНет
Инструкция КешНет[14]Нет[14]Нет[14]Нет[14]Нет[14]НеобязательныйНетНетНеобязательный
Кэш данныхНет[14]Нет[14]Нет[14]Нет[14]Нет[14]НеобязательныйНетНетНет
Таблица векторов Компенсировать
Регистр (VTOR)
НетНеобязательный
(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 System Design Kit.[13]
  • Примечание. Программное обеспечение должно подтверждать существование функции, прежде чем пытаться ее использовать.[11]
  • Примечание. Доступна ограниченная общедоступная информация о Cortex-M35P, пока не будет Техническое справочное руководство выпущен.

Дополнительные варианты кремния:[9][10]

  • Порядок байтов данных: обратный порядок байтов или обратный порядок байтов. В отличие от устаревших ядер 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 архитектура,[9] Cortex-M3 реализует АРМв7-М архитектура,[10] Cortex-M4 / Cortex-M7 реализует ARMv7E-M архитектура,[10] Cortex-M23 / M33 / M35P реализуют ARMv8-M архитектура,[15] а Cortex-M55 реализует ARMv8.1-M архитектура.[16] Архитектуры являются бинарными инструкциями, совместимыми снизу вверх от 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.[9][10] В архитектурах 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).[9][10] Cortex-M23 / M33 добавить TrustZone инструкции.

Варианты инструкций ARM Cortex-M
Ядро рукиКора
M0[2]
Кора
M0 +[3]
Кора
M1[4]
Кора
M3[5]
Кора
M4[6]
Кора
M7[7]
Кора
M23[8]
Кора
M33[12]
Кора
M35P
Кора
M55
ARM архитектураARMv6-M[9]ARMv6-M[9]ARMv6-M[9]АРМв7-М[10]ARMv7E-M[10]ARMv7E-M[10]ARMv8-M
Исходный уровень[15]
ARMv8-M
Основная линия[15]
ARMv8-M
Основная линия[15]
Армв8.1-М
Компьютерная архитектураФон НейманФон НейманФон НейманГарвардГарвардГарвардФон НейманГарвардГарвардГарвард
Инструкционный конвейер3 этапа2 этапа3 этапа3 этапа3 этапа6 этапов2 этапа3 этапа3 этапаОт 4 до 5 ступеней
Большой палец-1 инструкцииНаиболееНаиболееНаиболееВесьВесьВесьНаиболееВесьВесьВесь
Большой палец-2 инструкцииНемногоНемногоНемногоВесьВесьВесьНемногоВесьВесьВесь
Умножить инструкции
32x32 = 32-битный результат
дададададададададада
Умножить инструкции
32x32 = 64-битный результат
НетНетНетдададаНетдадада
Разделять инструкции
32/32 = 32-битное частное
НетНетНетдадададададада
Насыщенный инструкцииНетНетНетНемногодадаНетдадада
DSP инструкцииНетНетНетНетдадаНетНеобязательныйНеобязательныйНеобязательный
Одинарная точность (SP)
Плавающая точка инструкции
НетНетНетНетНеобязательныйНеобязательныйНетНеобязательныйНеобязательныйНеобязательный
Двойная точность (ДП)
Инструкции с плавающей точкой
НетНетНетНетНетНеобязательныйНетНетНетНеобязательный
Половинная точность (HP)НетНетНетНетНетНетНетНетНетНеобязательный
TrustZone инструкцииНетНетНетНетНетНетНеобязательныйНеобязательныйНеобязательныйНеобязательный
Сопроцессор инструкцииНетНетНетНетНетНетНетНеобязательныйНеобязательныйНеобязательный
Гелиевая технологияНетНетНетНетНетНетНетНетНетНеобязательный
Задержка прерывания
(если ОЗУ с нулевым ожиданием)
16 циклов15 циклов23 для NMI
26 для IRQ
12 циклов12 циклов12 циклов15 без охраны доб.
27 безопасности доб.
TBDTBDTBD
  • Примечание: Cortex-M0 / M0 + / M1 не включает эти 16-битные Большой палец-1 Инструкции: CBZ, CBNZ, IT.[9][10]
  • Примечание: Cortex-M0 / M0 + / M1 включает только эти 32-битные Большой палец-2 инструкции: BL, DMB, DSB, ISB, MRS, MSR.[9][10]
  • Примечание: Cortex-M0 / M0 + / M1 / ​​M23 имеет только 32-битный умножать инструкции с более низким 32-битным результатом (32 бит × 32 бит = младший 32 бит), где, поскольку 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 бит).[9][10]
  • Примечание. Количество циклов для выполнения команд умножения и деления различается в зависимости от архитектуры ядра 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 имеет кремниевый вариант выбора no FPU или же одинарная точность (SP) FPU, а Cortex-M7 добавляет третий вариант кремния, поддерживающий как одинарную точность (SP), так и двойная точность (DP). Если Cortex-M4 / M7 / M33 / M35P имеет FPU, то он известен как Cortex-M4.F / Cortex-M7F / Cortex-M33F / Cortex-M35PF.[9][10]
  • Примечание: серия Cortex-M включает три новых 16-битных Большой палец-1 инструкция для спящего режима: SEV, WFE, WFI.
  • Примечание. Счетчик циклов задержки прерывания предполагает: 1) стек, расположенный в ОЗУ с нулевым ожиданием, 2) другую функцию прерывания, которая в данный момент не выполняется, 3) параметр Security Extension не существует, поскольку он добавляет дополнительные циклы. Ядра Cortex-M с компьютерной архитектурой Harvard имеют более короткую задержку прерывания, чем ядра Cortex-M с компьютерной архитектурой фон Неймана.
Группы инструкций ARM Cortex-M
ГруппаInstr
биты
инструкцииКора
М0, М0 +, М1
Кора
M3
Кора
M4
Кора
M7
Кора
M23
Кора
М33, М35П
Кора
M55
Большой палец-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дадададададада
Большой палец-116CBNZ, CBZНетдададададада
Большой палец-116ЭТОНетдададаНетдада
Большой палец-232BL, DMB, DSB, ISB, MRS, MSRдадададададада
Большой палец-232SDIV, UDIVНетдададададада
Большой палец-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, YIELDНетдададаНетдада
DSP32PKH, QADD, QADD16, QADD8, QASX, QDADD, QDSUB, QSAX, QSUB, QSUB16, QSUB8, SADD16, SADD8, SASX, SEL, SHADD16, SHADD8, SHASX, SHSAX, SHSUB16, SHSUB8, SMLTML, SMLABB, SHSUB16, SHSUB8, SMLTB SMLAD, SMLALBB, SMLALBT, SMLALTB, SMLALTT, SMLALD, SMLAWB, SMLAWT, SMLSD, SMLSLD, SMMLA, SMMLS, SMMUL, SMUAD, SMULBB, SMULBT, SMULTT, SMULTBAX, SMULW16, SMDULW, SSB8, SSB16, SSDULW, SSB8 SXTAB, SXTAB16, SXTAH, SXTB16, UADD16, UADD8, UASX, UHADD16, UHADD8, UHASX, UHSAX, UHSUB16, UHSUB8, UMAAL, UQADD16, UQADD8, UQASX, USQUB16, USAD8, UQSATX, USQUB16, US8, UQS, UQS USUB8, UXTAB, UXTAB16, UXTAH, UXTB16НетНетдадаНетНеобязательныйда
SP Float32VABS, VADD, VCMP, VCMPE, VCVT, VCVTR, VDIV, VLDM, VLDR, VMLA, VMLS, VMOV, VMRS, VMSR, VMUL, VNEG, VNMLA, VNMLS, VNMUL, VPOP, VPUSH, VSQRSTR, VSTM, VSTMНетНетНеобязательныйНеобязательныйНетНеобязательныйНеобязательный
DP Float32VCVTA, VCVTM, VCVTN, VCVTP, VMAXNM, VMINNM, VRINTA, VRINTM, VRINTN, VRINTP, VRINTR, VRINTX, VRINTZ, VSELНетНетНетНеобязательныйНетНетНеобязательный
TrustZone16BLXNS, BXNSНетНетНетНетНеобязательныйНеобязательныйНеобязательный
TrustZone32SG, TT, TTT, TTA, TTATНетНетНетНетНеобязательныйНеобязательныйНеобязательный
Сопроцессор16CDP, CDP2, MCR, MCR2, MCRR, MCRR2, MRC, MRC2, MRRC, MRRC2НетНетНетНетНетНеобязательныйНеобязательный
  • Примечание. Инструкции FPU с одинарной точностью (SP) действительны в Cortex-M4 / M7 / M33 / M35P только в том случае, если в кремнии имеется опция SP FPU.
  • Примечание. Инструкции FPU с двойной точностью (DP) действительны в Cortex-M7 только в том случае, если опция DP FPU существует в кремнии.

Устаревание

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

  • Набор 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 (свопинг) 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
Набор инструкцийБольшой палец-1 (наиболее),
Большой палец-2 (немного)

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

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

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

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

  • Скорость аппаратного целочисленного умножения: 1 или 32 цикла.

Чипсы

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

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

  • NXP LPC4300 (один Cortex-M4F + один Cortex-M0)
  • Инструменты Техаса Беспроводные микроконтроллеры SimpleLink CC1310 и CC2650 (один программируемый Cortex-M3 + один сетевой процессор Cortex-M0 + один проприетарный модуль контроллера датчиков)

Кортекс-М0 +

Кортекс-М0 +
Архитектура и классификация
МикроархитектураARMv6-M
Набор инструкцийБольшой палец-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) и перемещение таблицы векторов.[3]

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

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

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

  • Скорость аппаратного целочисленного умножения: 1 или 32 цикла
  • Блок защиты памяти с 8 областями (MPU) (такой же, как M3 и M4)
  • Перемещение таблицы векторов (аналогично M3, M4)
  • Одноцикловый порт ввода / вывода (доступен в M0 + / M23)
  • Micro Trace Buffer (MTB) (доступен в M0 + / M23 / M33 / M35P)

Чипсы

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

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

  • Кипарис PSoC 6200 (один Cortex-M4F + один Cortex-M0 +)
  • ST WB (один Cortex-M4F + один Cortex-M0 +)

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

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

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

Кортекс-М1

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

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

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

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

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

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

Чипсы

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

  • Альтера Циклон-II, Циклон-III, Stratix-II, Stratix-III
  • GOWIN Semiconductor[18]
  • Microsemi (Actel ) Fusion, IGLOO / e, ProASIC3L, ProASIC3 / E
  • Xilinx Спартанец-3, Virtex-2, Virtex-3, Virtex-4, Artix-7[19]

Cortex-M3

Cortex-M3
Архитектура и классификация
МикроархитектураАРМв7-М
Набор инструкцийБольшой палец-1, Большой палец-2,
Насыщенный (некоторые), разделить
Ардуино Должная плата с Atmel ATSAM3X8E (ARM Cortex-M3 ядро) микроконтроллер
NXP Плата для разработки LPCXpresso с LPC1343

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

  • ARMv7-M архитектура[10]
  • 3-ступенчатый трубопровод с отраслевые спекуляции.
  • Наборы инструкций:
    • Большой палец-1 (целиком).
    • Большой палец-2 (целиком).
    • 32-битное аппаратное целочисленное умножение с 32-битным или 64-битным результатом, со знаком или без знака, добавление или вычитание после умножения. 32-битное умножение - это 1 цикл, но 64-битное умножение и инструкции MAC требуют дополнительных циклов.
    • 32-битное аппаратное целочисленное деление (2–12 циклов).
    • арифметика насыщения поддерживать.
  • От 1 до 240 прерывает, плюс НМИ.
  • Задержка прерывания 12 циклов.
  • Встроенные спящие режимы.

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

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

Чипсы

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

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

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

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

  • Альтера Циклон-II, Циклон-III, Stratix-II, Stratix-III
  • Xilinx Спартанец-3, Virtex-2, Virtex-3, Virtex-4, Artix-7[22]

Кортекс-М4

Кортекс-М4
Архитектура и классификация
МикроархитектураARMv7E-M
Набор инструкцийБольшой палец-1, Большой палец-2,
Насыщенный, DSP,
Разделять, FPU (SP)
Silicon Labs (Энергия Микро ) Доска Wonder Gecko STK с EFM32 WG990
TI Плата Stellaris Launchpad с LM4F120

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

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

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

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

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

Чипсы

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

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

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

Cortex-M7

Cortex-M7
Архитектура и классификация
МикроархитектураARMv7E-M
Набор инструкцийБольшой палец-1, Большой палец-2,
Насыщенный, DSP,
Разделять, FPU (SP и DP)

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

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

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

Кортекс-М23

Кортекс-М23
Архитектура и классификация
МикроархитектураARMv8-M базовый уровень
Набор инструкцийБольшой палец-1 (большинство),
Thumb-2 (некоторые),
Разделять, TrustZone

Ядро Cortex-M23 было анонсировано в октябре 2016 года.[27] и на основе более новой ARMv8-M архитектура об этом было объявлено ранее в ноябре 2015 года.[28] Концептуально Cortex-M23 похож на Cortex-M0 + плюс инструкции целочисленного деления и функции безопасности TrustZone, а также имеет двухступенчатую конвейер команд.

Ключевые особенности ядра Cortex-M23:[8][27]

  • ARMv8-M Базовая архитектура.[15]
  • 2-х ступенчатый трубопровод. (аналогично Cortex-M0 +)
  • TrustZone инструкции по безопасности. (доступно только в M23 / M33 / M35P)
  • 32-битное аппаратное целочисленное деление (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

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

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

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

  • ARMv8-M Основная архитектура.[15]
  • 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 Основная линия
Набор инструкцийБольшой палец-1, Большой палец-2,
Насыщенный, DSP,
Разделять, FPU (SP),
TrustZone, Сопроцессор

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

Ограниченная общедоступная информация в настоящее время доступна для Cortex-M35P, пока не будет Техническое справочное руководство выпущен.

Чипсы

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

  • По состоянию на февраль 2020 года ни одного чипа не анонсировано.

Cortex-M55

Cortex-M55
Архитектура и классификация
МикроархитектураARMv8.1-M Магистральный гелий
Набор инструкцийБольшой палец-1, Большой палец-2,
Насыщенный, DSP,
Разделять, FPU (VFPv5),
TrustZone, Сопроцессор, MVE

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

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

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

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

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

Чипсы

Следующие микроконтроллеры основаны на ядре Cortex-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 core.
  8. Справочное руководство по архитектуре ARM.

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

Смотрите также

Рекомендации

  1. ^ Сайт ARM Cortex-M; arm.com
  2. ^ а б c d Cortex-M0 r0p0 Техническое справочное руководство; Arm Holdings.
  3. ^ а б c d е Cortex-M0 + r0p0 Техническое справочное руководство; Arm Holdings.
  4. ^ а б c d Cortex-M1 r1p0 Техническое справочное руководство; Arm Holdings.
  5. ^ а б c d Cortex-M3 r2p1 Техническое справочное руководство; Arm Holdings.
  6. ^ а б c d Cortex-M4 r0p1 Техническое справочное руководство; Arm Holdings.
  7. ^ а б c d Cortex-M7 r0p2 Техническое справочное руководство; Arm Holdings.
  8. ^ а б c d Cortex-M23 r1p0 Техническое справочное руководство; Arm Holdings.
  9. ^ а б c d е ж грамм час я j k л м п о п q р Справочное руководство по архитектуре ARMv6-M; Arm Holdings.
  10. ^ а б c d е ж грамм час я j k л м п о п q р Справочное руководство по архитектуре ARMv7-M; Arm Holdings.
  11. ^ а б c d Разработка встроенного программного обеспечения Cortex-M3; Примечание приложения 179; Arm Holdings.
  12. ^ а б c Cortex-M33 r0p3 Техническое справочное руководство; Arm Holdings.
  13. ^ а б c Комплект для проектирования системы Cortex-M; Arm Holdings.
  14. ^ а б c d е ж грамм час я j Руководство по программированию ARM Cortex-M для инструкций по ограничению памяти; Раздел 3.6 Требования к внедрению системы; AppNote 321; arm.com
  15. ^ а б c d е ж грамм Справочное руководство по архитектуре ARMv8-M; Arm Holdings.
  16. ^ Справочное руководство по архитектуре ARMv8.1-M; Arm Holdings.
  17. ^ Фингас, Джон (25 февраля 2014 г.). «Freescale делает самый маленький в мире чип контроллера ARM еще мельче». Получено 2 октября 2014.
  18. ^ GOWIN Semiconductor присоединяется к ARM DesignStart, предлагая бесплатные процессоры ARM Cortex-M1 для своих семейств продуктов FPGA
  19. ^ Cortex-M1 DesignStart FPGA XilinxEdition
  20. ^ Садасиван, Шьям. «Знакомство с процессором ARM Cortex-M3» (PDF). Arm Holdings. Архивировано из оригинал (PDF) 26 июля 2014 г.
  21. ^ "Samsung Exynos 7420 Deep Dive - внутри современной 14-нм SoC". АнандТех. Получено 2015-06-15.
  22. ^ Cortex-M3 DesignStart FPGA XilinxEdition
  23. ^ «Процессор Cortex-M7». Arm Holdings. Получено 2014-09-24.
  24. ^ «ARM увеличивает рынок микроконтроллеров с помощью высокопроизводительного процессора Cortex-M7». arm.com (Пресс-релиз). 24 сентября 2014 г.
  25. ^ «KV5x: Kinetis KV5x - 240 МГц, ARM Cortex-M7, управление в реальном времени, Ethernet, управление двигателем и преобразование мощности, высокопроизводительные микроконтроллеры (MCU)». Freescale Semiconductor. Архивировано из оригинал на 2015-04-15. Получено 2015-04-09.
  26. ^ «Серия i.MX RT: MCU / Приложения, кроссовер, процессор Arm Cortex-M7 NXP». www.nxp.com. Получено 2018-07-16.
  27. ^ а б c d Новые процессоры ARM Cortex-M предлагают следующий отраслевой стандарт безопасного Интернета вещей; Arm Holdings; 25 октября 2016 г.
  28. ^ а б Архитектура ARMv8-M упрощает безопасность встроенных интеллектуальных устройств; Arm Holdings; 10 ноября 2015 года.
  29. ^ Microchip представляет микроконтроллеры SAM-L10 и SAM-L11 с TrustZone и picoPower
  30. ^ https://www.dialog-semiconductor.com/products/da1469x-product-family
  31. ^ https://www.nordicsemi.com/News/2018/12/Nordic-Semiconductor-rolls-out-its-unique-nRF91-Series-cellular-IoT-module
  32. ^ https://www.nordicsemi.com/Products/Low-power-short-range-wireless/nRF5340
  33. ^ http://media.nxp.com/phoenix.zhtml?c=254228&p=irol-newsArticle&ID=2370956
  34. ^ http://media.nxp.com/phoenix.zhtml?c=254228&p=irol-newsArticle&ID=2371063
  35. ^ https://www.renesas.com/us/en/products/microcontrollers-microprocessors/ra/ra6/ra6m4.html?cid=r_top_1_prd_ra6m4_20201006
  36. ^ https://www.st.com/content/st_com/en/about/media-center/press-item.html/p4087.html
  37. ^ https://www.silabs.com/products/wireless/gecko-series-2
  38. ^ «Процессор Cortex-M35P». Arm Holdings. Получено 2018-06-04.

дальнейшее чтение

  • Встроенные системы с микроконтроллерами ARM Cortex-M на языке ассемблера и C; 3-е изд; Ифэн Чжу; 738 страниц; 2017; ISBN  978-0982692660.
  • Руководство разработчика по семейству процессоров Cortex-M; 2-е изд; Тревор Мартин; 490 страниц; 2016; ISBN  978-0081006290.
  • Сборка ARM для встраиваемых приложений; 3-е изд; Дэниел Льюис; 318 страниц; 2017; ISBN  978-1543908046.
  • Полное руководство по процессорам ARM Cortex-M0 и Cortex-M0 +; 2-е изд; Джозеф Ю; 784 страницы; 2015; ISBN  978-0128032770.
  • Полное руководство по процессорам ARM Cortex-M3 и Cortex-M4; 3-е изд; Джозеф Ю; 600 страниц; 2013; ISBN  978-0124080829.
  • Цифровая обработка сигналов и приложения с использованием ARM Cortex-M4; 1-е изд; Дональд Рэй; 250 страниц; 2014; ISBN  978-1118859049.
  • Встроенные системы: введение в микроконтроллеры ARM Cortex-M; 5-е изд; Джонатан Вальвано; 506 страниц; 2012; ISBN  978-1477508992.
  • Программирование на языке ассемблера: ARM Cortex-M3; 1-е изд; Винсент Маут; 256 страниц; 2012; ISBN  978-1848213296.

внешняя ссылка

Официальные документы ARM Cortex-M
РУКА
основной
Кусочек
ширина
РУКА
интернет сайт
ARM общий
гид пользователя
ARM технический
справочное руководство
ARM архитектура
справочное руководство
Cortex-M032СвязьСвязьСвязьARMv6-M
Кортекс-М0 +32СвязьСвязьСвязьARMv6-M
Кортекс-М132СвязьСвязьСвязьARMv6-M
Cortex-M332СвязьСвязьСвязьАРМв7-М
Кортекс-М432СвязьСвязьСвязьARMv7E-M
Cortex-M732СвязьСвязьСвязьARMv7E-M
Кортекс-М2332СвязьСвязьСвязьARMv8-M
Cortex-M3332СвязьСвязьСвязьARMv8-M
Cortex-M35P32СвязьTBDTBDARMv8-M
Cortex-M5532СвязьTBDTBDARMv8.1-M
Краткие справочные карты
  • Инструкции: Thumb-1 (1 ), ARM и Thumb-2 (2 ), Вектор с плавающей точкой (3 ) - arm.com
  • Коды операций: Thumb-1 (1, 2 ), РУКА (3, 4 ), Директивы GNU Assembler (5 ).
Миграция
Другой