Список архитектур ARM
Список процессорных и микроконтроллерных микроархитектур семейства ARM, разработанных ARM Holdings, и сторонними группами. Упорядочено по версии набора команд ARM.
Компания ARM предоставляла список фирм, реализовавших архитектуры ARM самостоятельно[1]. Некоторую информацию также предоставляет компания Keil[2].
Список ядер собственной разработки ARM также опубликован на их интернет-сайте[3].
Ядра ARM
Разработанные в ARM
Семейство ARM | Архитектура ARM | Ядро | Дополнения | Кэши (I / D), MMU | Типичные MIPS @ МГц |
---|---|---|---|---|---|
ARM1 | ARMv1 | ARM1 | Первая реализация | Нет | |
ARM2 | ARMv2 | ARM2 | В ARMv2 была добавлена инструкция MUL (умножение) | Нет | 4 MIPS @ 8 МГц 0,33 DMIPS/МГц |
ARMv2a | ARM250 | Встроенный MEMC (MMU), графический процессор и сопроцессор ввода-вывода. В ARMv2a добавлены инструкции SWP и SWPB (обмен) | Нет, MEMC1a | 7 MIPS @ 12 МГц | |
ARM3 | ARMv2a | ARM3 | Первая интегрированная кэш память | 4 КБ, унифицированный | 12 MIPS @ 25 МГц 0,50 DMIPS/МГц |
ARM6 | ARMv3 | ARM60 | В ARMv3 добавлена поддержка 32-битой адресации памяти (ранее — 26 бит) | Нет | 10 MIPS @ 12 МГц |
ARM600 | Как в ARM60, дополнительно — кэш и шина сопроцессора (для блока FPA10 обработки числе с плавающей запятой) | 4 КБ, унифицированный | 28 MIPS @ 33 МГц | ||
ARM610 | Как в ARM60, кэш, без шины сопроцессора | 4 КБ, унифицированный | 17 MIPS @ 20 МГц 0,65 DMIPS/МГц | ||
ARM7 | ARMv3 | ARM700 | 8 КБ, унифицированный | 40 МГц | |
ARM710 | Как ARM700, без шины сопроцессора | 8 КБ, унифицированный | 40 МГц | ||
ARM710a | Как ARM710 | 8 КБ, унифицированный | 40 МГц 0,68 DMIPS/МГц | ||
ARM7TDMI | ARMv4T | ARM7TDMI(-S) | 3-стадийный конвейер, Thumb. В ARMv4 отказались от 26-битной адресации | Нет | 15 MIPS @ 16,8 МГц 63 DMIPS @ 70 МГц |
ARM710T | Как ARM7TDMI, дополнительно имеет кэш | 8 КБ, унифицированный, MMU | 36 MIPS @ 40 МГц | ||
ARM720T | Как ARM7TDMI, имеет кэш | 8 КБ, унифицированный, MMU (с FCSE — Fast Context Switch Extension) | 60 MIPS @ 59,8 МГц | ||
ARM740T | Как ARM7TDMI, имеет кэш | MPU | |||
ARM7EJ | ARMv5TEJ | ARM7EJ-S | 5-стадийный конвейер, Thumb, Jazelle DBX, Расширенные DSP-команды | Нет | |
ARM8 | ARMv4 | ARM810[4][5] | 5-стадийный конвейер, статический предсказатель ветвлений, удвоение пропускной способности памяти | 8 КБ, унифицированный, MMU | 84 MIPS @ 72 МГц 1,16 DMIPS/МГц |
ARM9TDMI | ARMv4T | ARM9TDMI | 5-стадийный конвейер, Thumb | Нет | |
ARM920T | Как ARM9TDMI, кэши | 16 КБ / 16 КБ, MMU с FCSE (Fast Context Switch Extension)[6] | 200 MIPS @ 180 МГц | ||
ARM922T | Как ARM9TDMI, кэши | 8 КБ / 8 КБ, MMU | |||
ARM940T | Как ARM9TDMI, кэши | 4 КБ / 4 КБ, MPU | |||
ARM9E | ARMv5TE | ARM946E-S | Thumb, DSP, кэши | Различные, тесно связанная память (TCM), MPU | |
ARM966E-S | Thumb, DSP | Без кэша и памяти TCM | |||
ARM968E-S | Как ARM966E-S | Без кэша и TCM | |||
ARMv5TEJ | ARM926EJ-S | Thumb, Jazelle DBX, DSP | Различные, TCM, MMU | 220 MIPS @ 200 МГц | |
ARMv5TE | ARM996HS | Процессор без тактовой частоты, остальное как у ARM966E-S | Без кэша, TCM, MPU | ||
ARM10E | ARMv5TE | ARM1020E | 6-стадийный конвейер, Thumb, DSP, (VFP) | 32 КБ / 32 КБ, MMU | |
ARM1022E | Как ARM1020E | 16 КБ / 16 КБ, MMU | |||
ARMv5TEJ | ARM1026EJ-S | Thumb, Jazelle DBX, DSP, (VFP) | Различные, MMU или MPU | ||
ARM11 | ARMv6 | ARM1136J(F)-S[7] | 8-стадийный конвейер, SIMD, Thumb, Jazelle DBX, (VFP), DSP | Различные, MMU | 740 @ 532—665 МГц (i.MX31 SoC), 400—528 МГц |
ARMv6T2 | ARM1156T2(F)-S | 8-стадийный конвейер, SIMD, Thumb-2, (VFP), DSP | Различные, MPU | ||
ARMv6Z | ARM1176JZ(F)-S | Как ARM1136EJ(F)-S | Различные, MMU + TrustZone | 965 DMIPS @ 772 МГц, до 2600 DMIPS с 4 процессорами[8] | |
ARMv6K | ARM11 MPCore | Как ARM1136EJ(F)-S, SMP с 1-4 ядрами | Различные, MMU | ||
SecurCore | ARMv6-M | SC000 | 0,9 DMIPS/МГц | ||
ARMv4T | SC100 | ||||
ARMv7-M | SC300 | 1,25 DMIPS/МГц | |||
Cortex-M | ARMv6-M | Cortex-M0[9] | Microcontroller profile, Thumb + Thumb-2 subset (BL, MRS, MSR, ISB, DSB, DМБ),[10] аппаратное умножение, опциональный системный таймер и память «bit-banding» | Опциональный кэш, без TCM, без MPU | 0,84 DMIPS/МГц |
Cortex-M0+[11] | Микроконтроллер, подмножество Thumb и Thumb-2 (BL, MRS, MSR, ISB, DSB, DМБ),[10] аппаратное умножение, опциональный системный таймер и память «bit-banding» | Опциональный кэш, без TCM, опциональный MPU на 8 регионов | 0,93 DMIPS/МГц | ||
Cortex-M1[12] | Микроконтроллер, подмножество Thumb и Thumb-2 (BL, MRS, MSR, ISB, DSB, DМБ),[10] аппаратное умножение, опция SVC / банк для указателя стека, опциональный системный таймер, без памяти «bit-banding» | Опциональный кэш, 0-1024 КБ I-TCM, 0-1024 КБ D-TCM, без MPU | 136 DMIPS @ 170 МГц,[13] (0,8 DMIPS/МГц FPGA-dependent)[14] | ||
ARMv7-M | Cortex-M3[15] | Микроконтроллер, Thumb / Thumb-2, аппаратные умножение и деление, опциональная память «bit-banding» | Опциональный кэш, без TCM, опциональный MPU на 8 регионов | 1,25 DMIPS/МГц | |
ARMv7E-M | Cortex-M4[16] | Микроконтроллер, Thumb / Thumb-2 / DSP / опциональное расширение FPv4 для одинарной точности, аппаратные умножение и деление, опциональная память «bit-banding» | Опциональный кэш, без TCM, опциональный MPU на 8 регионов | 1,25 DMIPS/МГц (1,27 с FPU FPv4) | |
ARMv7E-M | Cortex-M7[17] | Микроконтроллер, Thumb / Thumb-2 / DSP / опциональный блок FPU для чисел одинарной и двойной точности, аппаратные умножение и деление | 0-64 КБ I-кэш, 0-64 КБ D-кэш, 0-16 МБ I-TCM, 0-16 МБ D-TCM (все — с опциональным ECC), Опциональный MPU на 8 или 16 регионов | 2,14 DMIPS/МГц | |
ARMv8-M Baseline | Cortex-M23 | ARM TrustZone | 0,98 DMIPS/МГц
2,5 CoreMark/МГц | ||
ARMv8-M Mainline | Cortex-M33 | ARM TrustZone | 1,5 DMIPS/МГц
3,86 CoreMark/МГц | ||
Cortex-R | ARMv7-R | Cortex-R4[18] | Профиль реального времени, Thumb / Thumb-2 / DSP / опциональный VFPv3 FPU, аппаратные умножение и опциональное деление, опциональные четность и ECC для внутренних шин, кэша, TCM, 8-стадийный конвейер, два ядра в режиме «lockstep» с логикой обработки ошибок | 0-64 КБ / 0-64 КБ, 0-2 из 0-8 МБ TCM, опционально MPU на 8 или 12 | |
Cortex-R5 (MPCore)[19] | Профиль реального времени, Thumb / Thumb-2 / DSP / опциональный VFPv3 FPU, аппаратные умножение и опциональное деление, опциональные четность и ECC для внутренних шин, кэша, TCM, 8-стадийный конвейер, два ядра в режиме «lockstep» с логикой обработки ошибок. Опционально допускается работа двух ядер как независимых. Периферийный порт с низкими задержками (LLPP), порт когерентности для ускорителя (ACP)[20] | 0-64 КБ / 0-64 КБ, 0-2 из 0-8 МБ TCM, опц. MPU на 12 или 16 | |||
Cortex-R7 (MPCore)[21] | Профиль реального времени, Thumb / Thumb-2 / DSP / опциональный VFPv3 FPU, аппаратные умножение и опциональное деление, опциональные четность и ECC для внутренних шин, кэша, TCM, 11-стадийный конвейер, два ядра в режиме «lockstep» с логикой обработки ошибок. Ядра out-of-order, с динамическим переименованием регистров. Опционально допускается работа двух ядер как независимых. Периферийный порт с низкими задержками (LLPP), порт когерентности для ускорителя (ACP)[20] | 0-64 КБ / 0-64 КБ, ? из 0-128 КБ TCM, опц. MPU на 16 | |||
Cortex-A | ARMv7-A | Cortex-A5[22] | Профиль «Application», ARM / Thumb / Thumb-2 / DSP / SIMD / опциональный VFPv4-D16 FPU / опциональный NEON / Jazelle RCT и DBX, 1-4 ядро, опционально MPCore, блок управления снупированием (SCU, snoop control unit), контроллер общих прерываний (GIC), порт когерентности для ускорителя (ACP) | 4-64 КБ / 4-64 КБ L1, MMU + TrustZone | 1,57 DMIPS/МГц на ядро |
Cortex-A7 MPCore[23] | Профиль «Application», ARM / Thumb / Thumb-2 / DSP / VFPv4-D16 FPU / NEON / Jazelle RCT и DBX / аппаратная виртуализация, очередное исполнение команд (in-order), суперскаляр, SMP на 1-4 ядра, Large Physical Address Extensions (LPAE), блок управления снупированием (SCU), контроллер общих прерываний (GIC), порт когерентности для ускорителя (ACP). Архитектура и набор расширений совпадают с Cortex-A15. 8-10 стадий в конвейере, пониженное энергопотребление[24] | 32 КБ / 32 КБ L1, 0-4 МБ L2, MMU + TrustZone | 1,9 DMIPS/МГц на ядро | ||
Cortex-A8[25] | Профиль «Application», ARM / Thumb / Thumb-2 / VFPv3 FPU / NEON / Jazelle RCT и DAC, 13-стадийный суперскаляр | 16-32 КБ / 16-32 КБ L1, 0-1 МБ L2 опц. ECC, MMU + TrustZone | до 2000 (2,0 DMIPS/МГц с частотами от 600 МГц до превышающих 1 ГГц) | ||
Cortex-A9 MPCore[26] | Профиль «Application», ARM / Thumb / Thumb-2 / DSP / опционально VFPv3 FPU / опционально NEON / Jazelle RCT и DBX, внеочередное исполнение (out-of-order) со спекулятивностью, суперскаляр, SMP на 1-4 ядра, блок управления снупированием (SCU), контроллер общих прерываний (GIC), порт когерентности для ускорителя (ACP). | 16-64 КБ / 16-64 КБ L1, 0-8 МБ L2 опц. контроль четности, MMU + TrustZone | 2,5 DMIPS/МГц на ядро, 10,000 DMIPS @ 2 ГГц на техпроцессе TSMC 40G (два ядра) | ||
Cortex-A12[27] позже объединен с A17 | Профиль «Application», ARM / Thumb-2 / DSP / VFPv4 FPU / NEON / аппаратная виртуализация, внеочередное спекулятивное исполнение, суперскаляр, SMP на 1-4 ядра, Large Physical Address Extensions (LPAE), блок управления снупированием (SCU), контроллер общих прерываний (GIC), порт когерентности для ускорителя (ACP). | 32-64 КБ / 32 КБ L1, 256 КБ-8 МБ L2 | 3,0 DMIPS/МГц на ядро | ||
Cortex-A15 MPCore[28] | Профиль «Application», ARM / Thumb / Thumb-2 / DSP / VFPv4 FPU / NEON / целочисленное деление / MAC (объединенное умножение-сложение) / Jazelle RCT / аппаратная вирутализация, внеочередное спекулятивное исполнение, суперскаляр, SMP на 1-4 ядра, Large Physical Address Extensions (LPAE), блок управления снупированием (SCU), контроллер общих прерываний (GIC), порт когерентности для ускорителя (ACP). 15-24 стадийный конвейер[24] | 32 КБ с четностью / 32 КБ с ECC L1, 0-4 МБ L2 с ECC, MMU + TrustZone | Не менее 3,5 DMIPS/МГц на ядро (до 4,01 DMIPS/МГц в зависимости от реализации)[29] | ||
Cortex-A17 MPCore | Профиль «Application», ARM / Thumb / Thumb-2 / DSP / VFPv4 FPU / NEON / целочисленное деление / MAC (объединенное умножение-сложение) / Jazelle RCT / аппаратная виртуализация, внеочередное спекулятивное исполнение, суперскаляр, SMP на 1-4 ядра, Large Physical Address Extensions (LPAE), блок управления снупированием (SCU), контроллер общих прерываний (GIC), порт когерентности для ускорителя (ACP). | MMU + TrustZone | |||
Cortex-A50 | ARMv8-A | Cortex-A53[30] | Профиль «Application», AArch32 и AArch64, SMP на 1-4 ядра, Trustzone, улучшенный NEON SIMD, VFPv4, аппаратная виртуализация, запуск до двух команд в цикл, очередное (in-order) конвейерное исполнение | 8-64 КБ с четностью / 8-64 КБ с ECC L1 на каждое ядро, 128 КБ-2 МБ общий L2, 40-битные физические адреса | 2,3 DMIPS/МГц |
Cortex-A57[31] | Профиль «Application», AArch32 и AArch64, SMP на 1-4 ядра, Trustzone, улучшенный NEON SIMD, VFPv4, аппаратная виртуализация, запуск множества команд в цикл, глубокое внеочередное исполнение | 48 КБ с двойной четностью (DED) / 32 КБ L1 с ECC на ядро, 512 КБ-2 МБ общий L2, 44-битные физ. адреса | Не менее 4,1 DMIPS/МГц на ядро (до 4,76 DMIPS/МГц в зависимости от реализации) | ||
Cortex-A72[32] | |||||
Семейство ARM | Архитектура ARM | Ядро | Дополнения | Кэши (I / D), MMU | Типичные MIPS @ МГц |
Разработки других групп
Разработаны сторонними компаниями, владевшими архитектурной лицензией от ARM, которая разрешала реализацию запатентованных инструкций.
Семейство | Набор команд | Микроархитектура | Набор расширение | Кэш I / D), MMU | Типичные Typical MIPS @ МГц |
---|---|---|---|---|---|
StrongARM | ARMv4 | SA-110 | 5-стадийный конвейер | 16 КБ / 16 КБ, MMU | 100-206 МГц 1,0 DMIPS/МГц |
SA-1100 | Развитие SA-110 | 16 КБ / 8 КБ, MMU | |||
Faraday[33] | ARMv4 | FA510 | 6-стадийный конвейер | До 32 КБ / 32 КБ кэш, MPU | 1,26 DMIPS/МГц 100—200 МГц |
FA526 | До 32 КБ / 32 КБ кэш, MMU | 1,26 MIPS/МГц 166—300 МГц | |||
FA626 | 8-стадийный конвейер | 32 КБ / 32 КБ кэш, MMU | 1,35 DMIPS/МГц 500 МГц | ||
ARMv5TE | FA606TE | 5-стадийный конвейер | Без кэша, без MMU | 1,22 DMIPS/МГц 200 МГц | |
FA626TE | 8-стадийный конвейер | 32 КБ / 32 КБ кэш, MMU | 1,43 MIPS/МГц 800 МГц | ||
FMP626TE | 8-стадийный конвейер, SMP | 1,43 MIPS/МГц 500 МГц | |||
FA726TE | 13-стадийный конвейер, запуск двух инструкций в такт | 2,4 DMIPS/МГц 1000 МГц | |||
XScale | ARMv5TE | XScale | 7-стадийный конвейер, Thumb, DSP | 32 КБ / 32 КБ, MMU | 133-400 МГц |
Bulverde | Дополнительно: расширения WMMX, Wireless SpeedStep | 32 КБ / 32 КБ, MMU | 312-624 МГц | ||
Monahans[34] | Дополнительно: расширение WMMX2 | 32 КБ / 32 КБ (L1), опциональный L2 кэш до 512 КБ, MMU | Up to 1,25 ГГц | ||
Marvell Sheeva | ARMv5 | Feroceon | 5-8 стадий конвейера, запуск одной инструкции за цикл | 16 КБ / 16 КБ, MMU | 600-2000 МГц |
Jolteon | 5-8 стадий конвейера, запуск двух инструкций за цикл | 32 КБ / 32 КБ, MMU | |||
PJ1 (Mohawk) | 5-8 стадий конвейера, запуск двух инструкций за цикл, WMMX2 | 32 КБ / 32 КБ, MMU | 1,46 DMIPS/МГц 1,06 ГГц | ||
ARMv6 / ARMv7-A | PJ4 | 6-9 стадий конвейера, запуск двух инструкций за цикл, WMMX2, SMP | 32 КБ / 32 КБ, MMU | 2,41 DMIPS/МГц 1,6 ГГц | |
Snapdragon | ARMv7-A | Scorpion[35] | 1 или 2 ядра. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv3 FPU / NEON (ширина 128-бит) | 256 КБ L2 на ядро | 2,1 DMIPS/МГц на ядро |
Krait[35] | 1, 2, или 4 ядра. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON (ширина 128-бит) | 4 КБ / 4 КБ L0, 16 КБ / 16 КБ L1, 512 КБ L2 на ядро | 3,3 DMIPS/МГц на ядро | ||
Apple A6, Apple A6X |
ARMv7-A | Swift[36] | 2 ядра. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON | L1: 32 КБ / 32 КБ, L2: 1 МБ | 3,5 DMIPS/МГц на ядро |
Apple A7 | ARMv8-A | Cyclone | 2 ядра. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON / TrustZone / AArch64 | L1: 64 КБ / 64 КБ, L2: 1 МБ | 1,3 ГГц |
Apple A8 | ARMv8-A | Cyclone | 2 ядра. ARM / Thumb / Thumb-2 / DSP / SIMD / VFPv4 FPU / NEON / TrustZone / AArch64 | L1: (н/у);КБ, L2: (н/у);МБ | 1,4 ГГц |
X-Gene | ARMv8-A | X-Gene | 64-разрядный, запуск до 4 инструкций за цикл, SMP, 64 ядра[37] | кэш, MMU, виртуализация | 3 ГГц |
Denver | ARMv8-A | Denver | 64-разрядный, 2 ядра SMP, аппаратный декодер до 2 инструкций за цикл, либо программная динамическая рекомпиляция в широкие инструкции | 128 КБ I / 64 КБ D | до 2,5 ГГц |
ThunderX | ARMv8-A | ThunderX | 64-разрядный, 2 модели: 8-16 или 24-48 ядер (возможно объединение двух чипов) | До 2,5 ГГц |
См. также
Примечания
- Line Card (PDF) (недоступная ссылка) (2003). Дата обращения: 6 января 2011. Архивировано 5 июня 2011 года.
- ARM Ltd and ARM Germany GmbH. Device Database . Keil. Дата обращения: 6 января 2011.
- Processors . ARM (2011). Дата обращения: 6 января 2011.
- ARM Holdings (7 August 1996), ARM810 – Dancing to the Beat of a Different Drum, Hot Chips, <http://www.dlhoffman.com/publiclibrary/software/hot_chips_papers/hc96/hc8_pdf/4.1.pdf>. Проверено 21 сентября 2013. Архивная копия от 23 сентября 2015 на Wayback Machine
- VLSI Technology Now Shipping ARM810, EE Times (26 August 1996). Дата обращения 21 сентября 2013.
- Register 13, FCSE PID register ARM920T Technical Reference Manual
- ARM1136J(F)-S – ARM Processor . Arm.com. Дата обращения: 18 апреля 2009. Архивировано 21 марта 2009 года.
- ARM11 Processor Family . ARM. Дата обращения: 12 декабря 2010.
- Cortex-M0 Specification Summary; ARM Holdings.
- Cortex-M0/M0+/M1 Instruction set; ARM Holding. (недоступная ссылка). Дата обращения: 14 октября 2014. Архивировано 18 апреля 2013 года.
- Cortex-M0+ Specification Summary; ARM Holdings.
- Cortex-M1 Specification Summary; ARM Holdings.
- ARM Holdings (19 March 2007). ARM Extends Cortex Family with First Processor Optimized for FPGA. Пресс-релиз. Проверено 11 April 2007.
- ARM Cortex-M1 . ARM product website. Дата обращения: 11 апреля 2007.
- Cortex-M3 Specification Summary; ARM Holdings.
- Cortex-M4 Specification Summary; ARM Holdings.
- Cortex-M7 Specification Summary; ARM Holdings.
- Cortex-R4 Specification Summary; ARM Holdings. (недоступная ссылка). Дата обращения: 14 октября 2014. Архивировано 7 июля 2011 года.
- Cortex-R5 Specification Summary; ARM Holdings. (недоступная ссылка). Дата обращения: 14 октября 2014. Архивировано 6 июля 2012 года.
- Cortex-R5 & Cortex-R7 Press Release; ARM Holdings; 31 January 2011.
- Cortex-R7 Specification Summary; ARM Holdings.
- Cortex-A5 Specification Summary; ARM Holdings.
- Cortex-A7 Specification Summary; ARM Holdings.
- Deep inside ARM's new Intel killer, The Register (20 October 2011).
- Cortex-A8 Specification Summary; ARM Holdings.
- Cortex-A9 Specification Summary; ARM Holdings.
- Cortex-A12 Summary; ARM Holdings. Архивировано 7 июня 2013 года.
- Cortex-A15 Specification Summary; ARM Holdings.
- Exclusive : ARM Cortex-A15 «40 Per Cent» Faster Than Cortex-A9 // ITProPortal.com
- Cortex-A53 Processor . ARM Holdings. Дата обращения: 13 октября 2012.
- Cortex-A57 Processor . ARM Holdings. Дата обращения: 13 октября 2012.
- Cortex-A72 Processor . ARM Holdings. Дата обращения: 13 марта 2016.
- (недоступная ссылка)
- 3rd Generation Intel XScale Microarchitecture: Developer’s Manual . download.intel.com. Intel (May 2007). Дата обращения: 2 декабря 2010.
- Qualcomm’s New Snapdragon S4: MSM8960 & Krait Architecture Explored; Anandtech.
- Lal Shimpi, Anand The iPhone 5's A6 SoC: Not A15 or A9, a Custom Apple Core Instead . AnandTech (15 September 2012). Дата обращения: 15 сентября 2012.
- AppliedMicro's 64-core chip could spark off ARM core war | PCWorld
Литература
- Digital Signal Processing and Applications Using the ARM Cortex M4; 1st Edition; Donald Reay; Wiley; 250 pages; 2014; ISBN 978-1118859049.
- Assembly Language Programming : ARM Cortex-M3; 1st Edition; Vincent Mahout; Wiley-ISTE; 256 pages; 2012; ISBN 978-1848213296.
- The Definitive Guide to the ARM Cortex-M3 and Cortex-M4 Processors; 3rd Edition; Joseph Yiu; Newnes; 600 pages; 2013; ISBN 978-0124080829.
- The Definitive Guide to the ARM Cortex-M0; 1st Edition; Joseph Yiu; Newnes; 552 pages; 2011; ISBN 978-0-12-385477-3.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.