I am interested in learning ARM micro controllers. I did some internet search and this has raised a few questions in my mind.

  1. I was told that a majority of the modern day embedded system work in the industry is done with ARM uCs. Is it true?

  2. What is meant by ARM7/ARM Cortex M3/M4 etc? Specifically what is the difference between ARMX and ARM Cortex X?

  3. Removed – shopping/product recommendation question

  4. Removed – shopping/product recommendation question
  5. Removed – shopping/product recommendation question
  6. Removed – shopping/product recommendation question / asking for an opinion

I have previously worked with 8051 uCs.

  • 2
    \$\begingroup\$ Unfortunately: (a) Several sub-questions = too broad overall. (b) Some of the individual questions are shopping questions (e.g. 3) which will become outdated over time = off-topic. (c) Book recommendations = opinion-based. (d) Reading your questions 3 & 4 together, you seem to want an ARM MCU, in a DIP package, which can be programmed via a serial port programmer. That will really limit your choices, despite there being many other (cheap!) ways to experiment with ARM MCUs. I really wouldn't approach this in the way you have asked :-( I recommend reading previous "ARM beginner" questions. \$\endgroup\$ – SamGibson Mar 16 at 11:49
  • 2
    \$\begingroup\$ 2. can be answered by reading the ARM Cortex wikipedia page, so let's ignore that question for now, as OP will learn nothing quicker by reading an answer here vs reading an answer on wikipedia. \$\endgroup\$ – Marcus Müller Mar 16 at 11:57
  • 2
    \$\begingroup\$ I'm going to go ahead and remove the explicitly off-topic sub-questions; this question still stays too broad afterwards. \$\endgroup\$ – Marcus Müller Mar 16 at 11:57
  • \$\begingroup\$ @MarcusMüller: I went through the ARM cortex wiki page. Could not find the difference between ARMX and ARM Cortex X. Just came to know that ARM Cortex is multi core uC (which does not indicate that ARMX is not). Regarding broadness of the question, it could be a broad question as I am looking for starting point for learning ARM uCs. \$\endgroup\$ – Arvind Gupta Mar 16 at 15:45
  • \$\begingroup\$ en.wikipedia.org/wiki/List_of_ARM_microarchitectures \$\endgroup\$ – dim Mar 19 at 15:22

The product naming for ARM cores captures in effect 3 different things:

  • Processor Architecture
  • Performance and feature level (roughly)
  • Target market.

In the old days (pre ~2004), there were ARM7 (microcontroler), ARM9 (mid range) and ARM11 (high performance). These came in different configurations with different features, but the detail is fairly old now.

Cortex-A5 was the first of the ARMv7-A architecture. These can be seen as an evolution of the ARMv6 architecture, mostly compatible but with more features.

Cortex-M3 was the first of the ARMv7-M architecture. This was a step-change, with a different exception model, and only supporting Thumb state (16/32 bit instruction set).

Cortex-R4 was the first real-time optimised ARMv7-R processor.

Cortex-M0 was the first of the ARMv6-M architecture (which is a subset of ARMv7-M, not related to ARMv6).

For ARMv8 variants, double digit numbering was used (Cortex-A15 is an exception, being ARMv7 still).

Between ARM11 and Cortex-A5, not a huge difference (except in much of the low level detail).

Between ARM7 and Cortex-M3, quite some big changes, particularly the instruction set, and the memory model.

Between Cortex-A7 and Cortex-A53, another instruction set (A32/A64).

Another significant difference that came about with the switch to ARMv7 (and the Cortex name) is the introduction of an asynchronous debug interface. ARM7/ARM9 used a JTAG tap embedded in the processor. Later designs used a CoreSight debug port as a path to access memory-mapped debug registers. This removed the notorious RTCK signal, and allowed the introduction of SWD as a debug interface.


I cannot answer all questions since this is a broad questions (or actually questions), but I will try to answer a few. Btw, I'm NOT an electrical engineer, just started with it about 1.5 years ago.

  1. I think it is true.
  2. These are different MCU types; probably there are detailed datasheets available.
  3. Not as far as I know. Install CubeMX to see the pinout structure. However, I use the STM32-ARM-development-board-STM32F103C8T6 (and there are also Arduino like boards with ARM processors), both having a DIP layout. These are created by ST(M). enter image description here

  4. For programming an STM, you can use either a Nucleo (similar to an Arduino), but I use an ST-Link-V2-STM8-STM32-programmer.

enter image description here

However, a Nucleo contains already this ST Link inside. Below is a picture; there are several different types.

enter image description here

  1. This is the recommended software to be used with STM (especially as beginner): STM32CubeMx.

  2. I mostly read datasheets and look at online sources. Doing a quick google search gave me this list: stm32-education/text-books

Btw, take it step by step, I'm a professional software engineer, but had no knowledge about electronics and it's quite a different (but very interesting) world.

Good luck!

  • \$\begingroup\$ Thanks for the reply. The STM32F103C8T6 development board also has a mini USB port. So can it not be directly interfaced with a PC for programming it? Or do I need the ST Link-2? Also, in either case, how to actually program the breakout board. Is there any video which shows how to do so? Regarding the book, which book from the list would you recommend? I need a simple book to start off. Hope you understand. Regards, Arvind Gupta. \$\endgroup\$ – Arvind Gupta Mar 16 at 14:52
  • \$\begingroup\$ It has a mini USB port, but afaik it cannot be used for programming (unlike an Arduino for example). You need an ST Link2 for that. However, the nucleo probably can be connected by USB and be programmed by USB since it contains a builtin ST Link 2 (never tried myself). I only read partly the book Mastering STM32 by Carmine Noviello, but it was not based on HAL and I would recommand that. \$\endgroup\$ – Michel Keijzers Mar 17 at 0:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.