Table 13-26 Example Memory Operation Sequence - ARM ARM1176JZF-S Technical Reference Manual

Table of Contents

Advertisement

Operation
1
Memory write
2
Debug
exception
3
Data Memory
Barrier
4
5
DSCR read
6
Memory write
7
Data Memory
Barrier
8
DSCR read
9
Exit Debug
state
a. The sticky imprecise data abort bit is set because an imprecise data abort was signalled in Debug state.
b. Abort is not taken because the processor is in Debug state.
c. Abort is not latched because DSCR[19] is set.
d. The previous abort latched on row (3) is taken, now the processor has left Debug state and the A bit in the CPSR is not set.
ARM DDI 0301H
ID012310
aborts, the processor latches the abort and its type until the processor leaves Debug state, in the
same way as if an imprecise data abort is detected in normal operation when the A bit in the
CPSR is set. The aborts are not taken immediately.
When the processor sets this bit, any memory accesses from Debug state that cause imprecise
data aborts cause DSCR[7], sticky imprecise data abort, to be set, but are otherwise discarded.
The cause and type of the abort are not recorded. In particular, if an abort is still latched from
the initial Data Memory Barrier that was completed on entry to Debug state, it is not overwritten
by the new abort. Following writes to memory by the debugger it issues a Data Memory Barrier
operation to ensure imprecise data aborts are detected.
Before exit from Debug state, a debugger must issue a Data Memory Barrier operation. On exit
from Debug state, DSCR[19] is cleared by the processor.
If an imprecise data abort has occurred during the period between entry to Debug state and the
when the processor set DSCR[19], it is taken by the processor on exit from Debug state,
providing the A bit in the CPSR is not set. If the A bit in the CPSR is set, it is pended until the
A bit in the CPSR is cleared, as for normal operation.
Table 13-26 lists an example sequence of a memory operation executed in normal operation that
eventually causes an imprecise abort when the processor is in Debug state. In addition, a
memory operation issued by the debugger in Debug state causes a second imprecise abort that
is ignored by the processor, apart from the sticky imprecise data abort bit being set. Throughout
the example the A bit in the CPSR is clear.
Result
Buffered operation
Enters Debug state
Buffered operation flushed
- imprecise data abort
Processor sets DSCR[19]
Clears sticky bits
Buffered operation
Buffered operation flushed
- imprecise data abort
Clears sticky bits
Processor clears DSCR[19]
Copyright © 2004-2009 ARM Limited. All rights reserved.
Non-Confidential, Unrestricted Access

Table 13-26 Example memory operation sequence

Debug
DCSR[19]
DCSR[7]
state?
No
0
0
Yes
0
0
Yes
0
a
1
Yes
1
1
Yes
1
0
Yes
1
0
Yes
1
1
Yes
1
0
No
0
0
Debug
Abort
Abort
latched?
taken?
Yes
b
No
c
No
No
d
Yes
(d)
13-41

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents