Не могу понять, как должен работать portRESTORE_CONTEXT, а конкретно его последняя команда
Код
SUBS PC, LR, #4
в случае, если код задачи скомпилирован в THUMB mode. Ведь тогда в PC помещается нечетное значение, а делать это, согласно ARM-ARM (A2.8.1), разрешено только специальным командам, например BX и POP:
Цитата
Writing an unaligned address to R15 is UNPREDICTABLE, except in the specific cases where the instructions are associated with a Thumb to ARM state transition
О том, что SUB относится к таким командам, мне не удалось найти упоминания.
Собственно поводом обратить на это внимание стала ругань симулятора IAR EW:
Цитата
Mon Apr 18 14:47:31 2011: Warning: UNPREDICTABLE behaviour (PC=0x00001F40): Branch to unaligned ARM address 0x00001529.