ARM Cortex-М представляет собой группу 32-разрядных RISC - ARM ядер процессора лицензированных ARM Holdings . Эти ядра оптимизированы для недорогих и энергоэффективных интегральных схем, которые встроены в десятки миллиардов потребительских устройств. [1] Хотя они чаще всего являются основным компонентом микросхем микроконтроллера , иногда они также встраиваются в другие типы микросхем. Семейство Cortex-M состоит из 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 в качестве контроллеров управления питанием, контроллеров ввода-вывода, системных контроллеров, контроллеров сенсорных экранов, контроллеров интеллектуальных батарей и контроллеров датчиков.
Основное отличие от ядра Cortex-A заключается в отсутствии блока управления памятью (MMU). Полноценная операционная система обычно не работает на процессорах этого класса.
Хотя в прошлом 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, SMLABB SMLAD, SMLALBB, SMLALBT, SMLALTB, SMLALTT, SMLALD, SMLAWB, SMLAWT, SMLSD, SMLSLD, SMMLA, SMMLS, SMMUL, SMUAD, SMULBB, SMULBT, SMULTT, SMULTBAX, SMULW16, SMDULW, SSB8, SSB, SSB, SSB, SSDUL, SS SXTAB, SXTAB16, SXTAH, SXTB16, UADD16, UADD8, UASX, UHADD16, UHADD8, UHASX, UHSAX, UHSUB16, UHSUB8, UMAAL, UQADD16, UQADD8, UQASX, USQUB16, USAD8, UQSATX, USQUB16, США, UQS, UQS, US8, US8, 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 (swap) 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, который ранее был заявлен 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
- Кремниевая лаборатория 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 +)
- Техасские инструменты 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:
- По состоянию на март 2021 года ни одного чипа не объявлено.
Инструменты разработки [ править ]
Документация [ править ]
Документация для чипов 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 ( 5 ).
- Миграция
- Переход с 8051 на Cortex-M3 - arm.com
- Переход с PIC на Cortex-M3 - arm.com
- Переход с ARM7TDMI на Cortex-M3 - arm.com
- Переход с Cortex-M4 на Cortex-M7 - keil.com
- Другой
- Разрядность на микроконтроллерах STM32 Cortex-M