4.3.9. System Handler Control and State Register

The SHCSR enables the system handlers, and indicates:

See the register summary in Table 4.12 for the SHCSR attributes. The bit assignments are:

To view this graphic, your browser must support the SVG format. Either install a browser with native support, or install an appropriate plugin such as Adobe SVG Viewer.

Table 4.25. SHCSR bit assignments

BitsNameFunction
[31:19]-Reserved
[18]USGFAULTENAUsageFault enable bit, set to 1 to enable[a]
[17]BUSFAULTENABusFault enable bit, set to 1 to enable[a]
[16]MEMFAULTENAMemManage enable bit, set to 1 to enable[a]
[15]SVCALLPENDEDSVCall pending bit, reads as 1 if exception is pending[b]
[14]BUSFAULTPENDED

BusFault exception pending bit, reads as 1 if exception is pending[b]

[13]MEMFAULTPENDEDMemManage exception pending bit, reads as 1 if exception is pending[b]
[12]USGFAULTPENDEDUsageFault exception pending bit, reads as 1 if exception is pending[b]
[11]SYSTICKACTSysTick exception active bit, reads as 1 if exception is active[c]
[10]PENDSVACTPendSV exception active bit, reads as 1 if exception is active
[9]-Reserved
[8]MONITORACTDebug monitor active bit, reads as 1 if Debug monitor is active
[7]SVCALLACTSVCall active bit, reads as 1 if SVC call is active
[6:4]-Reserved
[3]USGFAULTACTUsageFault exception active bit, reads as 1 if exception is active
[2]-Reserved
[1]BUSFAULTACTBusFault exception active bit, reads as 1 if exception is active
[0]MEMFAULTACTMemManage exception active bit, reads as 1 if exception is active

[a] Enable bits, set to 1 to enable the exception, or set to 0 to disable the exception.

[b] Pending bits, read as 1 if the exception is pending, or as 0 if it is not pending. You can write to these bits to change the pending status of the exceptions.

[c] Active bits, read as 1 if the exception is active, or as 0 if it is not active. You can write to these bits to change the active status of the exceptions, but see the Caution in this section.


If you disable a system handler and the corresponding fault occurs, the processor treats the fault as a hard fault.

You can write to this register to change the pending or active status of system exceptions. An OS kernel can write to the active bits to perform a context switch that changes the current exception type.

Caution

  • Software that changes the value of an active bit in this register without correct adjustment to the stacked content can cause the processor to generate a fault exception. Ensure software that writes to this register retains and subsequently restores the current active status.

  • After you have enabled the system handlers, if you have to change the value of a bit in this register you must use a read-modify-write procedure to ensure that you change only the required bit.

Copyright © 2015, 2018 Arm. All rights reserved.ARM DUI 0646C
Non-ConfidentialID121118