7 years, 11 months ago.

How to start programming ARM? What are the prerequisite? How long does it take to master?

Hello, I am a student of Software Engineering. I know some high-level languages like C, C++, Java, Android, and a little C#. This is my final year in the university and I want to start learning programming ARM. I don't know how to start, where to start, what the prerequisites are, and what types of tutorial are available in here. I don't know if it is okay to post questions like this in here, but I really need someone to help me start. Thanks.

Is really depends on why are you learning ARM. Do you intend to use as a hobby, or do you want to work with it?

posted by Thiago . 06 May 2016

Well, apparently I want to learn how to work with it. I want to start with toy projects and then go to more serious ones. I want to do an IoT project as my final-year project.

posted by Sadiq Fazily 06 May 2016

3 Answers

7 years, 11 months ago.

Did you ever program some computer without a "operating system"?
If you have enough memory (as the 1768) C++ is very comfortable and Mbed is a nice wrapper around hardware. But you need to understand how the hardware is running !
Find a book like "Building Bare-Metal ARM Systems with GNU" from Quantum Leaps or "The Definitive Guide to the ARM Cortex-M3" from Joseph Yiu and do not forget the datasheet of your processor ...and have pleasure.

7 years, 11 months ago.

Get yourself for example a K64F board (it has an ethernet connector on board, so if you want to switch to IOT stuff you can do it, but there are also other options. Might not hurt either to try one with less memory, where you can't use all those handy standard libraries since they take all your memory), and just get started.

7 years, 11 months ago.

Well one answer is you carry on using C++ as before, part of the point of MBED is to provide a wrapper around device hardware functions to avoid the need to delve into device specifics.

I'd suggest choosing more than one platform, there is a lot of material for the LPC1768 MBED and as it is an M3 core it should be powerful enough for IOT work. It has ethernet capability but does not have the connector so it needs to be plugged into a host PCB with the connector. On the downside it is very dependant on external hardware.

As your background is software not hardware it might be advisable to choose a platform with on-board peripherals. This helps to ensure that there will be "out of the box" demo code. For example if you had the K64F you might add the MBED application shield, https://developer.mbed.org/components/mbed-Application-Shield/ , which gives you a display and some controls.