SWP/SWPB 指令有一個 5 週期的發出延遲。因此,下一條指令會暫停 4 個週期。只有在萬不得已的情況下,才應該使用 SWP/SWPB。
使用 LDR/STR 指令替代 SWP/SWPB 指令。
LDR r2, [r0]
SWP r2, [r1] ;; XSC_SWP
STR r2, [r1]
LDR r3, [r1]
STR r3, [r0]