Re: Thumb state???
The Arm CPU can work in "natve" 32-bit instruction length mode, in this mode all of the CPU registers are adderssable from the instruction set. CPU can work in another mode, called "thumb" mode, where another instruction set is used(instructions are coded in 16-bit length words) and not all of the CPU registers are possible to use. There are many reason for such kind of modes (program size, buses width and complication of the memory management) Now there are some new ARM architectures with modes caled Thumb-2 with another instruction set coded inside 16-bit word (Cortex). The switch between modes occours at the special coding of the branch instructions. The program can have block of code coded in nativ 32-bit mode (the interrupt procedures are allway entered in nativ mode) and another parts coded with Thumb mode instructions.