Цитата
1) при выполнении __swi возможна ли работа простых __int ?
Из ARM Architecture Reference Manual, инструкция SWI:
if CondidtionPassed(<cond>) then
R14_svc = address of SWI instruction + 4
SPSR_svc = CPSR
CPSR[5:0] = 0b010011; enter Supervisor mode
CPSR[7] = 1;
disable IRQ -- прерывания запрещены PC = 0x08
Цитата
2) Если невозможна, то как сбросить влаг программного прерывания (__swi), не выходя из самой функции __swi, чтобы разрешить INTы во время её выполнения ? Или что можно ещё сделать.
Прерывания запрещены и процессор в режиме Supervisor. Но ведь ничто не мешает нам разрешить прерывания в рег. CPSR (бит I).
Сообщение отредактировал kichkine - Mar 19 2007, 14:40