|ARM Technical Support Knowledge Articles|
Applies to: RealView Development Suite (RVDS)
The "T" bit in the Combined Program Status Register (XPSR) indicates the execution state of the ARM core. ARM v6-M and v7-M processors such as the Cortex-M0 and Cortex-M3 can only execute in Thumb state and should always have the "T" bit equal to 1. However, the v6-M and v7-M architectures still allow the "T" bit to be set to 0.
When a program is loaded to a Cortex-M0 or Cortex-M3 processor, RealView Debugger (RVD) will not modify the "T" bit. On a core reset or power-on reset, the "T" bit will be set to the least-significant bit (LSB) of the value of the Reset Vector at address 0x4. All entries in the Vector Table must have the LSB set so the processor will execute the exception handler in Thumb state.
If you have an invalid Reset Vector address or have not programmed the vector table, it is possible that when you connect to the processor the "T" bit will be 0. If you then load your image and try to execute it, you will receive an error from RVD such as one of the following:
To resolve this error, you can program a valid Vector Table to memory and reset the processor. This will force the "T" bit to 1 if the Reset Vector is valid. If you are unable to program a valid Vector Table, you can manually set the "T" bit to 1. On the Cortex-M0 you must do this from the command line:
On the Cortex-M3 you can either do this through the command line using the above command, or use the Registers pane to modify the XPSR.
Article last edited on: 2010-04-09 20:51:22
Did you find this article helpful? Yes No
How can we improve this article?