Пытаюсь сделать data-abort. Выполняю инструкции типа:
x=0xFFFF7004; asm(" str R0,[R0]");
В datasheet чётко написано:
0xFFFF7000 - 0xFFFF0FFF Invalid Access*
NOTE: *An access to this area will cause a memory abort.
В симуляторе, чётко вижу, что по этому адресу записывается значение. Однако в железе ничего не происходит. В чём, может быть засада?
Пытаюсь сделать perfetch-abort. Выполняю инструкции типа: x=0x80001000; asm(" stmdb sp!,{r0}"); asm(" ldmia sp!,{PC}");
Напрямую записать в PC компилятор не даёт. В симуляторе, чётко вижу, что программа прыгает на адрес 0x80001000. Однако в железе видно тоже происходит прыжок (т.к.) виснет прога, но прерывания не происходит.
--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
|