Skip to main content
Topic: ARM Assembly Platform (Read 2121 times) previous topic - next topic

ARM Assembly Platform

Hey people,

I need a ARM platform that supports assembly programming... Obviously all of the C compiles down into assembly and then machine code. But I can't find any silicon manufactures that actually support or provide documentation about assembly programming... I picked up one of Atmel's SAM4L uC's ... but there isn't even an instruction set in the datasheet...

http://www.atmel.com/images/atmel-42023 ... asheet.pdf

Essentially, all I want is a tutorial that describes:
1. How to actually target a device and get the binary into a processor
2. Things to consider, differences between RISC and ARM architecture
3. Tools to assemble ARM assembly
4. Example code

Are all ARM processors the same? If I get a ARM-M4 from Atmel... Will the registers match an ARM-M4 from ST and from PIC?? Are all the instructions the same? Is there a JTAG programmer that can target any device?(IE: ARM-M4) and where can I find tools for it?

I've found tutorials online regarding ARM assembly programming, but they don't target a specific piece of silicon, they just discuss the actual assembly code...

If I can get to a point where I can blink an LED... I'm happy, my assembly is good. But I've only worked with 8-bit RISC stuff.

Thanks...

 

Re: ARM Assembly Platform

Reply #1
ARM documentation is available on arm.com.  The instruction sets are mostly upward compatable, but some features are optional.  The instruction sets on Cortex-M4 processors should be the same (modulo optional fetaturs) but the peripherals will diiffer.


Re: ARM Assembly Platform

Reply #3
Check out the ARM Cortex M3 instruction set: http://http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0337e/I1010015.html  These should be shared for all of the M3/M4 devices  ( Cortex M4 is just M3 with HW floating point support).

Datasheets include the register addresses/layouts, most of the times these are in the larger reference or "programmer" manuals.  Other than the basic ARM registers, this is what you're looking for - which was included in the datasheet you attached.

Quote
1. How to actually target a device and get the binary into a processor
As far as platforms go, I've used the ST discovery series, which include a programmer on-board (most of their lower-end chips don't include baked-in bootloader vs the Atmel chip you linked to appears to have a factory bootloader for USB/UART).

Quote
2. Things to consider, differences between RISC and ARM architecture
It's been too long since I've been in assembly on 8 bit and I've never used it on the ARM's - just C/C++

Quote
3. Tools to assemble ARM assembly
http://http://www.keil.com/arm/mdk.asp Free up to 32K I believe - which you're not going to hit any time soon if you're in assembly!  There are plenty of other environments out there as well, like Coo Cox IDE (completely free), based on eclipse...not sure how their programmer support is, but they do support the ST Discovery boards out of the box from what i remember.

Quote
4. Example code
I would look for a simple tutorial from your toolchain vendor once you decide on one.

Good luck!


Re: ARM Assembly Platform

Reply #5
[quote author="bearmos"]Cortex M4 is just M3 with HW floating point support.[/quote]

Not that it matters much in this topic, but that's not exactly true. What the M4 adds to the M3 is the DSP instruction set. The floating point support is an option in the M4. Some Cortex-M4 microcontrollers don't have an FPU. To be sure either look for a Cortex-M4F or check the chip datasheet for the ARM core options the silicon vendor has chosen.

Re: ARM Assembly Platform

Reply #6
You can also buy the books "The definitive guide to Arm Cortex M3 and M4" and "The definitive Guide to Arm Cortex M0" . both describes Arm assembly language on Cortex Mxx devices, and you can use the trial version of Keil ┬Ávision IDE and assembler and software simulator for free.
ARM has also all the needed books and documentation about their ARM Assembler and Cortex Mxx devices instruction sets.

Re: ARM Assembly Platform

Reply #7
[quote author="doub"][quote author="bearmos"]Cortex M4 is just M3 with HW floating point support.[/quote]

Not that it matters much in this topic, but that's not exactly true. What the M4 adds to the M3 is the DSP instruction set. The floating point support is an option in the M4. Some Cortex-M4 microcontrollers don't have an FPU. To be sure either look for a Cortex-M4F or check the chip datasheet for the ARM core options the silicon vendor has chosen.[/quote]

thanks for the correction!