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.