6.4 Access from Thumb state

In architectures before ARMv6T2, you cannot use the debug communications channel while the processor is in Thumb state, because there are no Thumb coprocessor instructions.

There are the following ways around this:

  • You can write each polling routine in a SVC handler, which can then be invoked while in either ARM or Thumb state. Entering the SVC handler immediately puts the processor into ARM state where the coprocessor instructions are available.

  • Thumb code can make interworking calls to ARM subroutines that implement the polling.

  • Use interrupt-driven communication rather than polled communication. The interrupt handler runs in ARM state, so the coprocessor instructions can be accessed directly.

Non-ConfidentialPDF file icon PDF versionARM DUI0471M
Copyright © 2010-2016 ARM Limited or its affiliates. All rights reserved.