I have been working with AVR microcontrollers for the past 2 years and I am now quite comfortable with them. Like most people started with arduino but quickly felt limited by the options it provided and hence moved to working with AVR without arduino code on it.

I feel now the time has come to move to ARM architecture. From what I have seen they provide a lot more power and functionality and it seems like the logical next step.

However I am finding it difficult to find the right point of entry into the ARM world. The internet is filled with resources and it's quite daunting.

I am hoping someone experienced can point me to the right way in terms of reading, tutorials, links etc. to get me started.

All I know about ARM at this point is:

  1. Unlike AVR they license their design to third party companies that actually fabricate the chip.

  2. There are many families/vendors of ARM from various vendors each having their own feature set, development boards etc.

Some of the main questions I have in mind:

  1. What are the most popular vendors of ARM that are easily available and have low cost of entry? Also is there a link or list compiled by someone which lists all the arm families available?

  2. If I buy ARM from a particular manufacturer, am I bound to use their development tools (free?) or I just like AVR gcc, free ones are available?

  • \$\begingroup\$ I'd say that the lowest entry cost at chip level is the LPC1114, which is easily programmed using lpc21isp. At board level there are various boards in the price range E 5 .. 20 that include the target chips and a loader/debugger. \$\endgroup\$ Commented Mar 2, 2015 at 20:55
  • \$\begingroup\$ @WoutervanOoijen Price is not the main concern. The main concern is the ease of usability (at least initially when I'm still learning the ropes). \$\endgroup\$
    – Ankit
    Commented Mar 2, 2015 at 21:18
  • \$\begingroup\$ Ease of use has little to do with the chip and everything with the IDE, toolchain, and documentation. Don't expect an abundance of tutorials like there are for AVR. \$\endgroup\$ Commented Mar 3, 2015 at 7:41

2 Answers 2

  1. There's a lot of them. But, off the top of my head, here's some of the larger players in ARM microcontrollers:

    • Atmel (same manufacturer as AVR; present on the Arduino Due)
    • Cypress (in particular, the PSoC 4 and 5)
    • Energy Micro
    • Freescale
    • NXP (LPC family)
    • ST (STM32)
    • TI

    If you're unfamiliar with all of these, I'd recommend you start out with the STM32 family. They're pretty reasonable to work with, and they have a lot of reasonably cheap development boards available, including the Nucleo series.

  2. Not at all. There's an ARM GCC as well, and in fact many of these manufacturers use it as part of their standard toolchain.

  • \$\begingroup\$ Any advice as to the best way to jump into ARM? What are the differences between the various offerings, and what is the same between them? Is there there some base knowledge that applies to all ARMs? \$\endgroup\$
    – bigjosh
    Commented Mar 2, 2015 at 20:33
  • \$\begingroup\$ As of today the merger between NXP and Freescale reduces your list by one :) \$\endgroup\$ Commented Mar 2, 2015 at 20:45
  • \$\begingroup\$ Did Philips buy Motorola, or the other way round? Hope the re-branding goes better than the Siemens and Matsushita passive component division merger... \$\endgroup\$
    – user16324
    Commented Mar 2, 2015 at 20:59
  • \$\begingroup\$ @BrianDrummond Sounds like NXP would be the parent. It's not approved yet, though. eetimes.com/document.asp?doc_id=1325871 \$\endgroup\$
    – user39382
    Commented Mar 2, 2015 at 21:18
  • \$\begingroup\$ Thanks! As @bigjosh asked, what is the same and what is different in these offerings? Also is there some base knowledge that applies to all ARMS? With AVRs it was all about reading tutorials and trying them out myself. Is it the same with ARM or is there some pre-knowledge that I need to read up on? Also I'm curious, are standalone ARMs programmed using ISP interface (as with AVRs) or is there some other way? \$\endgroup\$
    – Ankit
    Commented Mar 2, 2015 at 21:22

I think one of the easiest ways to jump into ARM is using mbed kits and the compiler at http://developer.mbed.org/

They support NXP, STM, Freescale, Nordic, and other vendors' chips and their online IDE and dev kits make development pretty easy. When you're ready to get more hands on, you can often export your code from the online IDE to a GCC format. Then you should be able to get a common ARM GCC toolchain (I like the bare-metal toolchain from http://www.linaro.org/downloads/) and build the code on your machine with an included Makefile.

If you decide on a special chip like say TI's CC3200 for wifi, you're pretty much going to need their Code Composer Studio IDE to get anything semi-complex built because many of the binaries for the libraries in their examples are built only for their own platform. It's not too bad, but certainly not as nice as a command-line where you can more or less choose to do what you want.

You could also just dive right in on your own with ARM too, it's not too bad. But it's a little easier to start with mbed's nice libraries and then drop down when you need.

Good luck!

  • \$\begingroup\$ So mbed is kind of arduino equivalent of the ARM world? \$\endgroup\$
    – Ankit
    Commented Mar 3, 2015 at 18:05
  • 1
    \$\begingroup\$ Yea, kind of, to me anyway. Arduino now has ARM builds too but it abstracts a lot more from you than mbed does IMO. \$\endgroup\$
    – nemik
    Commented Mar 3, 2015 at 19:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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