Read-only archive of the All About Symbian forum (2001–2013) · About this archive

ARM4 & ARMI

2 replies · 1,477 views · Started 01 August 2003

You can generate three different executable binary formats (instruction set variations): ARM4, ARMI and THUMB.

The ARMI instruction set is a superset of a ARM4 (more or less so, I understand).

THUMB uses 16-bit instructions (the other two use 32).

The only binary format that interworks with both ARM4 and THUMB is ARMI, and that's why you should use it [ARMI] in general. The 'I' in ARMI stands for "intermediate", I think.

FWIW: The Programming for the Series 60 Platform and Symbian OS book has a diagram outlining the relationship of the different instruction sets on page 59.

"I" in ARMI stands for Interworking, not Intermediate.
ARMI has the advantage of being able to combine ARM4 code with THUMB code.
THUMB is used if you want to save space, it's like compressing the instruction set, it's 16 bit, while the normal ARM instruction is 32 bit.
However the critical parts should be compiled as ARM4 as it's slightly faster.
As a user programmer all you have to do is compile with ARMI and you'll be fine. You have to compile for ARMI if you intend to use any THUMB code or libraries. So stick to ARMI.