Skip to content

Latest commit

 

History

History
29 lines (23 loc) · 1.76 KB

why-arm.md

File metadata and controls

29 lines (23 loc) · 1.76 KB

Why the ARM Cortex-M?

Why not AVR or PIC or ...?

ARM Cortex-M processors are very popular and are used across many industries. In a way they provide unprecedented performance in a variety of cores from the low power Cortex-M0 to the floating-point enabled Cortex-M4F. They are used in everything from your Fitbit, to your Quadcopter, and beyond to medical equipment, robotic arms, and automobiles. Also, ARM Cortex-M processors are developed by many companies, all using the standard core specified by ARM. This gives embedded systems developers a wide range of choice of manufacturer, and feature set. Also, going forward the relatively low cost of these 32-bit processors may make 8-bit processors less competitive in both an industrial and hobbyist perspective. Even Arduino is moving away from the AVR platform with the Arduino Zero.

Also not many microcontroller families are currently supported by Rust, which uses LLVM as its backend. Popular microcontrollers like AVR, and PIC are not (officially) supported by LLVM and as the Rust compiler relies on LLVM for code generation it doesn't support them either. However, an unofficial AVR backend for LLVM is currently undergoing the process of being merged back into upstream LLVM, so this situation will likely improve in the near future.

TODO: might be interesting to address the new Intel Quark platforms.

Do note that some of the concepts covered here like the tooling and how to use common peripherals are transferable to other microcontroller families.