Цитата(aaarrr @ Jan 10 2008, 18:32)

Почему это нельзя?
На процессорах класса SAM7 использовать отличные от supervisor режимы смысла не имеет, так как защита отсутствует в принципе.
Потому что если используется SWI то
R14_svc = address of next instruction after the SWI instruction
SPSR_svc = CPSR
CPSR[4:0] = 0b10011 /* Enter Supervisor mode */
CPSR[5] = 0 /* Execute in ARM state */
/* CPSR[6] is unchanged */
CPSR[7] = 1 /* Disable normal interrupts */
if high vectors configured then
PC = 0xFFFF0008
else
PC = 0x00000008
соответсвенно LR у вас испортится т.к. проц уже в supervisor mode
Поэтому имеет смысл переключаться и оставаться в system mode