Hi everyone, as I wrote in the title, I'm coming from AVR 8-bit MCUs programming and in the last year I learnt a lot about AVR 8-bit architecture,CPU,registers and so on.
I've done a few projects coding primarily in C and something in Assembly (serial peripheral modules,LCD interfacing and other little things), always writing my own code,looking at datasheets and implementing my libraries.
I don't use IDEs I just use makefiles and alittle toolchain (GNU-GCC) and I never used a simulator/debugger (I do my debugging via USART,but this is going to change I think..).
I want to start ARM programming and I know that I'm headed towards 32 bit MCUs so I understand that I need to learn about the CORTEX-M architecture profile (I'm newbie to ARM so please correct me whenever I'm wrong).
I think my first step is to buy a book (a very good one) to start understanding the new architecture and writing some code.
What ARM MCU should I begin with? I know of two good books (which one is better to start?)
and I know that I need a evaluation/development board with an ARM CORTEX-M core on chip.
I was thinking about mbed LPC1768 dev board,it seems to be popular and I could get one easily.
I don't know if I should begin with a CORTEX-M0 (and the relative book) or the M3/M4 core (and the other book and LPC11U24 dev board with a M0).
I want to learn to code in C and assembly,I don't want any sandbox or fancy IDE (that's why I throwed away Arduino when I started programming AVRs).
Can you give me some advices?
thanks a lot!
Luca (from Rome,Italy)
Hi luckyluke, welcome to the Community!
I have moved your question to ARM Processors for better visibility.
If you haven't found it yet, this blog post: Important ARM Technical Learning Resources is a really good place to start.
Let see if anyone else can get you some more specific info.
I've started my jurney to ARM with a Cortex-M4. It's not a big difference to start with a M3/4 or M0. Both are good for your first steps.
I've don't have used a Book to start with it. I think the datasheet is enought, if you have enought experience with 8bit MCUs like AVR(and reading the datasheets). The diffrence in programming an 8bit AVR and a 32bit ARM are not that big. But a good book can be really handy and fasten thinks up.
If you have programmed AVRs before maybe consider to get an ARM-Device from Atmel.You get an completly free and unlimeted IDE. You feel right at home if you programmed AVR's before (with Atmel Studio). Maybe you can use your JTAG-Debugger from your AVRs (only if you have used the Atmel ICE).
But on the other Hand you are right, the LPC is very popular and you find much thinks in the www. That can be hard for the Atmel-devices.
But that really depends on you, just get the device you wan't and jump into.
Basically, the M0 is the simpler MCU version designed for low power consumption, for efficient I/O processing, and to narrow the cost gap relative to 8- and 16-bit microcontrollers. The M3/M4 are high-performance versions of the Cortex-M profile. The M3 has enhanced instructions and saturating math support. The M4 has multiply accumulate (MAC), Single Instruction Multiple Data (SIMD) extension, and optional single precision Floating Point Unit (FPU).
Open the link in Carl Williamson's reply above if you want to learn more.
I also recommend the video The ARM University Program, ARM Architecture Fundamentals by chrisshore.
Hi, could I ask a question?
I want to study ARM.
With Luca, he has already know and have experience with ARM and hardware programming interface.
Should I start with a book? Or look for some projects with ARM to do?
Do I have to buy a board for practicing on it?
If you already worked with AVR, then maybe you are already familiar with the Atmel Studio environment.
Rather than learn a whole new set off development tools, the Atmel Studio tool is used for AVR and Cortex products.
I would recommend you get yourself an ATSAMD21-XPRO board (Cortex M0+) to start with. Once you plug it into the PC the Atmel Studio environment will recognise the board and you are good to go.
Atmel have also introduced a new Configuration tool called Atmel Start that will help you configure the device quickly and there are lots of example projects available to get you started with some code.
If you want something more powerful to play with then try the ATSAM70E-XPRO eval board for a cortex M7.