We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
what is difference between Arm7 and Arm cortex-m series??
The two are quite different, though they can share code, if the code is written for this.
The name Cortex comes from Core and Texas
Arm7 (1994-2001) uses the Armv4T architecture, which supports two instruction sets: The old Arm instruction set and Thumb
Arm Cortex-M0 uses the Armv6-M (only supports 16-bit thumb instructions).
Arm Cortex-M3 and later uses the Armv7-M which supports the Thumb2 instruction set (16-bit + 32-bit instructions).
Apart from the instructions, there are other differences in the architecture.
For instance, the interrupt handling is different. On Cortex-M, you can write an interrupt routine directly in C like any other subroutine, without adding any special attribute keywords.
On Arm7, your compiler need to add a special prologue/epilogue.
The prologue/epilogue mainly saves and restores registers on the stack.
There are many other differences, which I cannot answer in detail; for this, you'll need an answer from an expert.
Personally, I find both architectures great.
There is no FIQ interrupt on Cortex-M, on the other hand, Interrupts are very easy on this one.
Thumb instructions are slightly limited from the older Arm instructions.
You cannot use LSR in a load or store instruction. This means you can't have an index in the top N bits of a register and use it directly. In such cases, you'll need an extra instruction to extract those bits.
You cannot subtract an index register from the base register in a load or store instruction.
There are some other limits as well.
-But most of the functionality exist in the Thumb2 instruction set, so normally you won't miss any features.