ARM Cortex-М представляет собой группу 32-разрядных RISC - ARM ядер процессора лицензированных 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-битный | |
---|---|
Год | Основной |
2004 г. | Cortex-M3 |
2007 г. | Кортекс-М1 |
2009 г. | Cortex-M0 |
2010 г. | Кортекс-М4 |
2012 г. | Кортекс-М0 + |
2014 г. | Cortex-M7 |
2016 г. | Кортекс-М23 |
2016 г. | Cortex-M33 |
2018 г. | Cortex-M35P |
2020 г. | Cortex-M55 |
Семейство ARM Cortex-M - это ядра микропроцессоров ARM, разработанные для использования в микроконтроллерах , ASIC , ASSP , FPGA и SoC . Ядра Cortex-M обычно используются как специализированные микросхемы микроконтроллеров, но также «спрятаны» внутри микросхем SoC в качестве контроллеров управления питанием, контроллеров ввода-вывода, системных контроллеров, контроллеров сенсорных экранов, контроллеров интеллектуальных батарей и контроллеров датчиков.
Хотя 8-битные микроконтроллеры были очень популярны в прошлом, Cortex-M постепенно уступает место 8-битному рынку, поскольку цены на недорогие чипы Cortex-M падают. Cortex-M стал популярной заменой 8-битных чипов в приложениях, которые извлекают выгоду из 32-битных математических операций, и заменяет более старые устаревшие ядра ARM, такие как ARM7 и ARM9 .
Лицензия [ править ]
Arm Holdings не производит и не продает устройства ЦП на основе собственных разработок, а скорее лицензирует архитектуру процессора заинтересованным сторонам. Arm предлагает различные условия лицензирования, различающиеся по стоимости и результатам. Всем лицензиатам Arm предоставляет интегрируемое описание аппаратного обеспечения ядра ARM, а также полный набор инструментов для разработки программного обеспечения и право продавать произведенные микросхемы, содержащие ЦП ARM.
Силиконовая настройка [ править ]
Производители интегрированных устройств (IDM) получают IP-адрес процессора ARM как синтезируемый 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 M0 [2] | Cortex M0 + [3] | Cortex M1 [4] | Cortex M3 [5] | Cortex M4 [6] | Cortex M7 [7] | Cortex M23 [8] | Cortex M33 [12] | Cortex M35P |
---|---|---|---|---|---|---|---|---|---|
24-битный таймер SysTick | Необязательно (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) | Необязательно * |
Security Attribution Unit (SAU) и ограничения стека | Нет | Нет | Нет | Нет | Нет | Нет | Необязательно (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 реализует архитектуру ARMv7-M , [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 .
Ядро руки | Cortex M0 [2] | Cortex M0 + [3] | Cortex M1 [4] | Cortex M3 [5] | Cortex M4 [6] | Cortex M7 [7] | Cortex M23 [8] | Cortex M33 [12] | Cortex M35P | Cortex M55 |
---|---|---|---|---|---|---|---|---|---|---|
ARM архитектура | ARMv6-M [9] | ARMv6-M [9] | ARMv6-M [9] | ARMv7-M [10] | ARMv7E-M [10] | ARMv7E-M [10] | Базовый уровень ARMv8-M [15] | ARMv8-M Mainline [15] | ARMv8-M Mainline [15] | Армв8.1-М |
Компьютерная архитектура | Фон Нейман | Фон Нейман | Фон Нейман | Гарвард | Гарвард | Гарвард | Фон Нейман | Гарвард | Гарвард | Гарвард |
Инструкционный конвейер | 3 этапа | 2 этапа | 3 этапа | 3 этапа | 3 этапа | 6 этапов | 2 этапа | 3 этапа | 3 этапа | От 4 до 5 ступеней |
Thumb-1 инструкции | Наиболее | Наиболее | Наиболее | Весь | Весь | Весь | Наиболее | Весь | Весь | Весь |
Thumb-2 инструкции | Немного | Немного | Немного | Весь | Весь | Весь | Немного | Весь | Весь | Весь |
Инструкции умножения 32x32 = 32-битный результат | да | да | да | да | да | да | да | да | да | да |
Инструкции умножения 32x32 = 64-битный результат | Нет | Нет | Нет | да | да | да | Нет | да | да | да |
Разделить инструкции 32/32 = 32-битное частное | Нет | Нет | Нет | да | да | да | да | да | да | да |
Насыщенные инструкции | Нет | Нет | Нет | Немного | да | да | Нет | да | да | да |
Инструкции DSP | Нет | Нет | Нет | Нет | да | да | Нет | Необязательный | Необязательный | Необязательный |
Одинарная точность (SP) с плавающей точкой инструкция | Нет | Нет | Нет | Нет | Необязательный | Необязательный | Нет | Необязательный | Необязательный | Необязательный |
Команды с плавающей запятой двойной точности (DP) | Нет | Нет | Нет | Нет | Нет | Необязательный | Нет | Нет | Нет | Необязательный |
Половинная точность (HP) | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Необязательный |
Инструкции TrustZone | Нет | Нет | Нет | Нет | Нет | Нет | Необязательный | Необязательный | Необязательный | Необязательный |
Инструкции сопроцессора | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Необязательный | Необязательный | Необязательный |
Гелиевая технология | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Необязательный |
Задержка прерывания (если ОЗУ с нулевым ожиданием) | 16 циклов | 15 циклов | 23 для NMI 26 для IRQ | 12 циклов | 12 циклов | 12 циклов | 15 без охраны доб.27 охрана доб | TBD | TBD | TBD |
- Примечание: Cortex-M0 / M0 + / M1 не включает эти 16-битные инструкции Thumb-1 : CBZ, CBNZ, IT. [9] [10]
- Примечание: Cortex-M0 / M0 + / M1 включает только эти 32-битные инструкции Thumb-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 имеет кремниевый вариант без FPU или FPU с одинарной точностью ( SP ), а Cortex-M7 добавляет третий силиконовый вариант с поддержкой как одинарной точности (SP), так и двойной точности. -точность ( DP ). Если Cortex-M4 / M7 / М33 / M35P имеет FPU, то он известен как Cortex-M4 F / Cortex-М7 Ж / Cortex-M33 F / Cortex-M35P F . [9] [10]
- Примечание. Серия Cortex-M включает три новых 16-битных инструкции Thumb-1 для спящего режима: SEV, WFE, WFI.
- Примечание. Подсчет циклов задержки прерывания предполагает: 1) стек, расположенный в ОЗУ с нулевым ожиданием, 2) другую функцию прерывания, которая в данный момент не выполняется, 3) параметр Security Extension не существует, потому что он добавляет дополнительные циклы. Ядра Cortex-M с компьютерной архитектурой Harvard имеют более короткую задержку прерывания, чем ядра Cortex-M с компьютерной архитектурой фон Неймана.
Группа | Instr биты | инструкции | Cortex M0, M0 +, M1 | Cortex M3 | Cortex M4 | Cortex M7 | Cortex M23 | Cortex M33, M35P | Cortex M55 |
---|---|---|---|---|---|---|---|---|---|
Большой палец-1 | 16 | ADC, 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 | да | да | да | да | да | да | да |
Большой палец-1 | 16 | CBNZ, CBZ | Нет | да | да | да | да | да | да |
Большой палец-1 | 16 | ЭТО | Нет | да | да | да | Нет | да | да |
Большой палец-2 | 32 | BL, DMB, DSB, ISB, MRS, MSR | да | да | да | да | да | да | да |
Большой палец-2 | 32 | SDIV, UDIV | Нет | да | да | да | да | да | да |
Большой палец-2 | 32 | ADC, 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 | Нет | да | да | да | Нет | да | да |
DSP | 32 | PKH, 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 Float | 32 | VABS, VADD, VCMP, VCMPE, VCVT, VCVTR, VDIV, VLDM, VLDR, VMLA, VMLS, VMOV, VMRS, VMSR, VMUL, VNEG, VNMLA, VNMLS, VNMUL, VPOP, VPUSH, VSQRSTR, VSTM, VSTM, VSTM | Нет | Нет | Необязательный | Необязательный | Нет | Необязательный | Необязательный |
DP Float | 32 | VCVTA, VCVTM, VCVTN, VCVTP, VMAXNM, VMINNM, VRINTA, VRINTM, VRINTN, VRINTP, VRINTR, VRINTX, VRINTZ, VSEL | Нет | Нет | Нет | Необязательный | Нет | Нет | Необязательный |
TrustZone | 16 | BLXNS, BXNS | Нет | Нет | Нет | Нет | Необязательный | Необязательный | Необязательный |
TrustZone | 32 | SG, TT, TTT, TTA, TTAT | Нет | Нет | Нет | Нет | Необязательный | Необязательный | Необязательный |
Сопроцессор | 16 | CDP, 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. Унаследованные ядра позволяли «на лету» изменять режим порядка байтов данных.
- Сопроцессор не поддерживался ядрами 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 <immediate>» не существует, поскольку она использовалась для переключения с Thumb-1 на набор инструкций ARM. Инструкция «BLX <register>» все еще доступна в Cortex-M.
- SETEND не существует, потому что переключение режима байтов с порядком байтов на лету больше не поддерживается.
- Команды сопроцессора не поддерживались ядрами Cortex-M, пока кремниевый вариант не был повторно введен в «ARMv8-M Mainline» для ядер ARM Cortex-M33 / M35P.
- Команда SWI была переименована в SVC, хотя двоичное кодирование команд осталось прежним. Однако код обработчика SVC отличается от кода обработчика SWI из-за изменений в моделях исключений.
Cortex-M0 [ править ]
Архитектура и классификация | |
---|---|
Микроархитектура | ARMv6-M |
Набор инструкций | Thumb-1 (большинство), Thumb-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 прерываний , плюс NMI
Варианты кремния:
- Скорость аппаратного целочисленного умножения: 1 или 32 цикла.
Чипсы [ править ]
Следующие микроконтроллеры основаны на ядре Cortex-M0:
- ВЫШЕ AC30M1x64
- Cypress PSoC 4000, 4100, 4100M, 4200, 4200DS, 4200L, 4200M
- Infineon XMC1100 , XMC1200, XMC1300, XMC1400, TLE984x
- Диалог DA1458x, DA1468x
- Скандинавский nRF51
- NXP LPC1100 , LPC1200
- Nuvoton NuMicro
- Sonix SN32F700
- ST STM32 F0
- Toshiba TX00
- Vorago VA10800 (экстремальные температуры), VA10820 (радиационно-стойкие)
Следующие чипы имеют Cortex-M0 в качестве вторичного ядра:
- NXP LPC4300 (один Cortex-M4F + один Cortex-M0)
- Беспроводные микроконтроллеры Texas Instruments SimpleLink CC1310 и CC2650 (один программируемый Cortex-M3 + один сетевой процессор Cortex-M0 + один проприетарный модуль контроллера датчиков)
Cortex-M0 + [ править ]
Архитектура и классификация | |
---|---|
Микроархитектура | ARMv6-M |
Набор инструкций | Thumb-1 (большинство) , Thumb-2 (некоторые) |
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 прерываний , плюс NMI
Варианты кремния:
- Скорость аппаратного целочисленного умножения: 1 или 32 цикла
- Блок защиты памяти на 8 областей (MPU) (такой же, как M3 и M4)
- Перемещение таблицы векторов (аналогично M3, M4)
- Одноцикловый порт ввода / вывода (доступен в M0 + / M23)
- Micro Trace Buffer (MTB) (доступен в M0 + / M23 / M33 / M35P)
Чипсы [ править ]
Следующие микроконтроллеры основаны на ядре Cortex-M0 +:
- ABOV Semiconductor A31G11x, A31G12x, A31G314
- Cypress PSoC 4000S, 4100S, 4100S +, 4100PS, 4700S, FM0 +
- Epson S1C31W74, S1C31D01, S1C31D50
- Холтек HT32F52000
- Микрочип (Atmel) SAM C2, D0, D1, D2, DA, L2, R2, R3
- NXP LPC800 , LPC11E60, LPC11U60
- NXP ( Freescale ) Kinetis E, EA, L, M, V1, W0
- Raspberry Pi RP2040 (два ядра M0 +)
- Renesas S124, S128, RE, RE01
- Silicon Labs ( Energy Micro ) EFM32 Zero, счастливый
- СТ STM32 L0 , G0
Следующие чипы имеют Cortex-M0 + в качестве вторичного ядра:
- Cypress PSoC 6200 (один Cortex-M4F + один Cortex-M0 +)
- ST WB (один Cortex-M4F + один Cortex-M0 +)
Самые маленькие микроконтроллеры ARM относятся к типу Cortex-M0 + (по состоянию на 2014 год самый маленький с размером 1,6 мм на 2 мм - Kinetis KL03). [17]
21 июня 2018 года исследователи Мичиганского университета на симпозиуме 2018 года объявили о « самом маленьком компьютере в мире » или компьютерном устройстве на основе ARM Cortex-M0 + (включая ОЗУ, беспроводные передатчики и приемники на основе фотоэлектрических элементов ). Технология и схемы СБИС с бумагой " Беспроводная сенсорная система 0,04 мм 3 16 нВт без батарей со встроенным процессором Cortex-M0 + и оптической связью для измерения температуры сотовой связи". Размер устройства составляет 1/10 от размера компьютера IBM, который ранее был объявлен мировым рекордом по сравнению с мартом 2018 года, что меньше, чем крупица скепсиса.
Cortex-M1 [ править ]
Архитектура и классификация | |
---|---|
Микроархитектура | ARMv6-M |
Набор инструкций | Thumb-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 прерываний , плюс 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 M1 [18]
- Microsemi ( Actel ) Fusion, IGLOO / e, ProASIC3L, ProASIC3 / E
- Xilinx Spartan-3, Virtex-2, Virtex-3, Virtex-4, Artix-7 [19]
Cortex-M3 [ править ]
Архитектура и классификация | |
---|---|
Микроархитектура | АРМв7-М |
Набор инструкций | Большой палец-1 , Большой палец-2 , Насыщенный (немного), Разделить |
Ключевые особенности ядра Cortex-M3: [5] [20]
- Архитектура ARMv7-M [10]
- 3-х ступенчатый конвейер с разветвлением спекуляции .
- Наборы инструкций:
- Большой палец-1 (целиком).
- Большой палец-2 (целиком).
- 32-битное аппаратное целочисленное умножение с 32-битным или 64-битным результатом, со знаком или без знака, добавление или вычитание после умножения. 32-битное умножение - это 1 цикл, но 64-битное умножение и инструкции MAC требуют дополнительных циклов.
- 32-битное аппаратное целочисленное деление (2–12 циклов).
- арифметическая поддержка насыщения .
- От 1 до 240 прерываний , плюс NMI .
- Задержка прерывания 12 циклов.
- Встроенные спящие режимы.
Варианты кремния:
- Дополнительный блок защиты памяти (MPU): 0 или 8 регионов.
Чипсы [ править ]
Следующие микроконтроллеры основаны на ядре Cortex-M3:
- ВЫШЕ AC33Mx128, AC33Mx064
- Actel SmartFusion, SmartFusion 2
- Аналоговые устройства ADUCM360, ADUCM361, ADUCM3029
- Чип Broadcom Wi-Fi BCM4319XKUBG
- Cypress PSoC 5000, 5000LP, FM3
- Holtek HT32F
- Infineon TLE9860, TLE987x
- Микрочип (Atmel) SAM 3A, 3N, 3S, 3U, 3X
- NXP LPC1300 , LPC1700 , LPC1800
- Компания ON Semiconductor Q32M210
- Realtek RTL8710
- Silicon Labs Precision32
- Silicon Labs ( Energy Micro ) EFM32 Tiny, Gecko, Leopard, Giant
- СТ STM32 F1, F2, L1, W
- TDK-Micronas HVC4223F
- Texas Instruments F28, LM3, TMS470, OMAP 4 , беспроводные микроконтроллеры SimpleLink (CC1310 Sub-GHz и CC2650 BLE + ZigBee + 6LoWPAN )
- Toshiba TX03
Следующие чипы имеют Cortex-M3 в качестве вторичного ядра:
- Apple A9 (Cortex-M3 как встроенный сопроцессор движения M9 )
- CSR Quatro 5300 (Cortex-M3 в качестве сопроцессора)
- Samsung Exynos 7420 (Cortex-M3 как микроконтроллер DVS ) [21]
- Texas Instruments F28, LM3, TMS470, OMAP 4470 (один Cortex-A9 + два Cortex-M3)
- XMOS XS1-XA (семь xCORE + один Cortex-M3)
Следующие FPGA включают ядро Cortex-M3:
- Microsemi SmartFusion2 SoC
Следующие производители поддерживают Cortex-M3 в качестве программных ядер на своих чипах FPGA:
- Altera Cyclone-II, Cyclone-III, Stratix-II, Stratix-III
- Xilinx Spartan-3, Virtex-2, Virtex-3, Virtex-4, Artix-7 [22]
Cortex-M4 [ править ]
Архитектура и классификация | |
---|---|
Микроархитектура | ARMv7E-M |
Набор инструкций | Thumb-1 , Thumb-2 , Насыщенный , DSP , Divide, FPU (SP) |
Концептуально Cortex-M4 представляет собой Cortex-M3 с инструкциями 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 прерываний , плюс NMI .
- Задержка прерывания 12 циклов.
- Встроенные спящие режимы.
Варианты кремния:
- Дополнительный модуль с плавающей запятой (FPU): совместим только с одинарной точностью IEEE-754 . Это называется расширением FPv4-SP.
- Дополнительный блок защиты памяти (MPU): 0 или 8 регионов.
Чипсы [ править ]
Следующие микроконтроллеры основаны на ядре Cortex-M4:
- Аналоговые устройства ADSP-CM40x
- Микрочип (Atmel) SAM 4L, 4N, 4S
- NXP ( Freescale ) Kinetis K, W2
- Texas Instruments SimpleLink Wi-Fi CC32xx, CC32xxMOD
Следующие микроконтроллеры основаны на ядре Cortex-M4F (M4 + FPU ):
- Аналоговые устройства ADUCM4050
- Cypress 6200 (один Cortex-M4F + один Cortex-M0 +), FM4
- Infineon XMC4000
- Максим Дарвин
- Микрочип (Atmel) SAM4C (двухъядерный: один Cortex-M4F + один Cortex-M4), SAM4E, SAMG5, SAMD5 / E5x
- Скандинавский nRF52
- Nuvoton NuMicro M480
- NXP LPC4000 , LPC4300 (один Cortex-M4F + один Cortex-M0)
- NXP ( Freescale ) Kinetis K, V3, V4
- Renesas S3, S5, S7, RA4, RA6
- Silicon Labs ( Energy Micro ) EFM32 Wonder
- ST STM32 F3, F4, L4, L4 +, WB (один Cortex-M4F + один Cortex-M0 +)
- Texas Instruments LM4F, TM4C, MSP432 , CC13x2R, CC1352P, CC26x2R
- Toshiba TX04
Следующие чипы имеют в качестве вторичного ядра Cortex-M4 или M4F:
- NXP ( Freescale ) Vybrid VF6 (один Cortex-A5 + один Cortex-M4F)
- NXP ( Freescale ) i.MX 6 SoloX (один Cortex-A9 + один Cortex-M4F)
- NXP ( Freescale ) i.MX 7 Solo / Dual (один или два Cortex-A7 + один Cortex-M4F)
- NXP ( Freescale ) i.MX 8 (два Cortex-A72 + четыре Cortex-A53 + два Cortex-M4F)
- NXP ( Freescale ) i.MX 8M и 8M Mini (четыре Cortex-A53 + один Cortex-M4F)
- NXP ( Freescale ) i.MX 8X (четыре Cortex-A35 + один Cortex-M4F)
- ST STM32MP1 (один или два Cortex-A7 + один Cortex-M4)
- Texas Instruments OMAP 5 (два Cortex-A15 + два Cortex-M4)
- Texas Instruments Sitara AM5700 (один или два Cortex-A15 + два Cortex-M4 в качестве блоков обработки изображений + два Cortex-M4 в качестве блоков общего назначения)
Cortex-M7 [ править ]
Архитектура и классификация | |
---|---|
Микроархитектура | ARMv7E-M |
Набор инструкций | Thumb-1 , Thumb-2 , Насыщенный , DSP , Divide, 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 прерываний , плюс 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:
- Микрочип (Atmel) SAM E7, S7, V7
- NXP ( Freescale ) Kinetis KV5x, i.MX RT
- ST STM32 F7, H7
Cortex-M23 [ править ]
Архитектура и классификация | |
---|---|
Микроархитектура | ARMv8-M базовый уровень |
Набор инструкций | Thumb-1 (большинство) , Thumb-2 (некоторые) , Divide, TrustZone |
Ядро Cortex-M23 было анонсировано в октябре 2016 года [25] и основано на новой архитектуре ARMv8-M, о которой ранее было объявлено в ноябре 2015 года. [26] Концептуально Cortex-M23 аналогичен Cortex-M0 + плюс инструкции целочисленного деления и Функции безопасности TrustZone, а также двухэтапный конвейер инструкций .
Ключевые особенности ядра Cortex-M23: [8] [25]
- 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:
- GigaDevice GD32E230
- Микрочип SAM L10, L11
- Nuvoton M2351
- Renesas S1JA, RA2A1
Cortex-M33 [ править ]
Архитектура и классификация | |
---|---|
Микроархитектура | ARMv8-M Основная линия |
Набор инструкций | Thumb-1 , Thumb-2 , Насыщенный , DSP , Divide, FPU (SP), TrustZone , Сопроцессор |
Ядро Cortex-M33 было анонсировано в октябре 2016 года [25] и основано на новой архитектуре ARMv8-M, о которой ранее было объявлено в ноябре 2015 года. [26] Концептуально Cortex-M33 похож на гибрид Cortex-M4 и Cortex- M23, а также имеет трехступенчатый конвейер команд .
Ключевые особенности ядра Cortex-M33: [12] [25]
- 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:
- Аналоговые устройства ADUCM410, ADUCM420
- Диалог DA1469x
- Скандинавский nRF91, nRF5340
- NXP LPC5500, i.MX RT600
- Renesas RA
- ST STM32 L5
- Silicon Labs Wireless Gecko, серия 2
Cortex-M35P [ править ]
Архитектура и классификация | |
---|---|
Микроархитектура | ARMv8-M Основная линия |
Набор инструкций | Thumb-1 , Thumb-2 , Насыщенный , DSP , Divide, FPU (SP), TrustZone , Сопроцессор |
Ядро Cortex-M35P было анонсировано в мае 2018 года. Концептуально это ядро Cortex-M33 с новым кешем инструкций, а также новыми концепциями оборудования с защитой от несанкционированного доступа, заимствованными из семейства ARM SecurCore, и настраиваемыми функциями четности и ECC. [27]
В настоящее время для Cortex-M35P доступна ограниченная общедоступная информация, пока не будет выпущено его техническое справочное руководство .
Чипсы [ править ]
Следующие микроконтроллеры основаны на ядре Cortex-M35P:
- По состоянию на февраль 2020 года ни о каких чипах объявлено не было.
Cortex-M55 [ править ]
Архитектура и классификация | |
---|---|
Микроархитектура | ARMv8.1-M Магистральный гелий |
Набор инструкций | 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 архитектура. [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 года ни о каких чипах объявлено не было.
Инструменты разработки [ править ]
Документация [ править ]
Документация для чипов ARM обширна. В прошлом документация по 8-битным микроконтроллерам обычно помещалась в один документ, но по мере развития микроконтроллеров появилось все необходимое для их поддержки. Пакет документации для микросхем ARM обычно состоит из набора документов от производителя микросхем, а также поставщика ядра процессора ( Arm Holdings ).
Типичное нисходящее дерево документации:
- Дерево документации (сверху вниз)
- Сайт производителя микросхемы.
- Маркетинговые слайды производителя ИС.
- Спецификация производителя ИС для конкретного физического чипа.
- Справочное руководство производителя ИС, в котором описываются общие периферийные устройства и аспекты семейства физических микросхем.
- Основной сайт ARM.
- Общее руководство пользователя ядра ARM.
- Техническое справочное руководство ARM core.
- Справочное руководство по архитектуре ARM.
У производителей микросхем есть дополнительные документы, такие как: руководства пользователя оценочной платы, примечания к применению, руководства по началу работы, документы библиотеки программного обеспечения, исправления и многое другое. См. Раздел Внешние ссылки для ссылок на официальные документы Arm.
См. Также [ править ]
- ARM архитектура
- Список архитектур и ядер ARM
- JTAG , SWD
- Прерывание , обработчик прерывания
- Операционная система реального времени , Сравнение операционных систем реального времени
Ссылки [ править ]
- ^ Сайт ARM Cortex-M; arm.com
- ^ a b c d Cortex-M0 r0p0 Техническое справочное руководство; Arm Holdings.
- ^ a b c d e Cortex-M0 + r0p0 Техническое справочное руководство; Arm Holdings.
- ^ a b c d Cortex-M1 r1p0 Техническое справочное руководство; Arm Holdings.
- ^ a b c d Справочное техническое руководство Cortex-M3 r2p1; Arm Holdings.
- ^ a b c d Cortex-M4 r0p1 Техническое справочное руководство; Arm Holdings.
- ^ a b c d Cortex-M7 r0p2 Техническое справочное руководство; Arm Holdings.
- ^ a b c d Cortex-M23 r1p0 Техническое справочное руководство; Arm Holdings.
- ^ a b c d e f g h i j k l m n o p q r Справочное руководство по архитектуре ARMv6-M; Arm Holdings.
- ^ a b c d e f g h i j k l m n o p q r Справочное руководство по архитектуре ARMv7-M; Arm Holdings.
- ^ a b c d Разработка встроенного программного обеспечения Cortex-M3; Примечание приложения 179; Arm Holdings.
- ^ a b c Cortex-M33 r0p3 Техническое справочное руководство; Arm Holdings.
- ^ a b c Комплект для проектирования системы Cortex-M; Arm Holdings.
- ^ a b c d e f g h i j Руководство по программированию ARM Cortex-M с инструкциями по ограничению памяти; Раздел 3.6 Требования к внедрению системы; AppNote 321; arm.com
- ^ a b c d e f g Справочное руководство по архитектуре ARMv8-M; Arm Holdings.
- ^ Справочное руководство по архитектуре ARMv8.1-M; Arm Holdings.
- ^ Fingas, Джон (25 февраля 2014). «Freescale делает самый маленький в мире чип контроллера ARM еще мельче» . Дата обращения 2 октября 2014 .
- ^ GOWIN Semiconductor присоединяется к ARM DesignStart, предлагая бесплатные процессоры ARM Cortex-M1 для своих семейств продуктов FPGA
- ^ Cortex-M1 DesignStart FPGA XilinxEdition
- ^ Садасиван, Шьям. «Введение в процессор ARM Cortex-M3» (PDF) . Arm Holdings . Архивировано из оригинального (PDF) 26 июля 2014 года.
- ^ «Samsung Exynos 7420 Deep Dive - внутри современной 14-нм SoC» . AnandTech . Проверено 15 июня 2015 .
- ^ Cortex-M3 DesignStart FPGA XilinxEdition
- ^ "Процессор Cortex-M7" . Arm Holdings . Проверено 24 сентября 2014 .
- ^ «ARM увеличивает рынок микроконтроллеров с помощью высокопроизводительного процессора Cortex-M7» . arm.com (пресс-релиз). 24 сентября 2014 г.
- ^ a b c d Новые процессоры ARM Cortex-M предлагают следующий отраслевой стандарт безопасного Интернета вещей; Arm Holdings; 25 октября 2016 г.
- ^ a b Архитектура ARMv8-M упрощает безопасность встроенных интеллектуальных устройств; Arm Holdings; 10 ноября 2015 года.
- ^ "Процессор Cortex-M35P" . Arm Holdings . Проверено 4 июня 2018 .
Дальнейшее чтение [ править ]
- Встроенные системы с микроконтроллерами 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 Cortex-M
- Официальный сайт ARM Cortex-M
- Cortex-M для начинающих - arm.com
- Расширения безопасности ARMv8-M - arm.com
- Стандарт программного интерфейса микроконтроллера Cortex (CMSIS) - arm.com
Ядро ARMБитовая
ширина
Сайт ARMОбщее
руководство пользователя ARMТехническое
справочное руководство ARM
Справочное руководство по архитектуре ARMCortex-M0 32 Связь Связь Связь ARMv6-M Кортекс-М0 + 32 Связь Связь Связь ARMv6-M Кортекс-М1 32 Связь Связь Связь ARMv6-M Cortex-M3 32 Связь Связь Связь АРМв7-М Кортекс-М4 32 Связь Связь Связь ARMv7E-M Cortex-M7 32 Связь Связь Связь ARMv7E-M Кортекс-М23 32 Связь Связь Связь ARMv8-M Cortex-M33 32 Связь Связь Связь ARMv8-M Cortex-M35P 32 Связь TBD TBD ARMv8-M Cortex-M55 32 Связь TBD TBD ARMv8.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 ).
- Миграция
- Переход с 8051 на Cortex-M3 - arm.com
- Переход с PIC на Cortex-M3 - arm.com
- Переход с ARM7TDMI на Cortex-M3 - arm.com
- Переход с Cortex-M4 на Cortex-M7 - keil.com
- Другой
- Bit Banding на микроконтроллерах STM32 Cortex-M