Я тоже напоролся на PAbort в последней инструкции макроса portRESTORE_CONTEXT(), выглядящей как SUBS PC, LR, #4
Нагуглил эту тему, но ничего из описанного не помогло - видимо, это другая проблема. Свою глюку я поборол, и решил написать здесь для таких же как я бедолаг, гуглящих решение этой проблемы и попадающих в эту тему.
В моем случае все дело было в том, что я в startup.S после инициализации стеков для всех режимов оставлял процессор в режиме System, а надо было оставлять в Supervisor.
Из-за этого инструкция LDMFD LR, {R0-R14}^ замещала не ту копию R13 (SP) и R14 (LR), и поэтому последующая команда LDR LR, [LR, #+60] работала с испорченным содержимым LR, и разумеется, переходила по "мусорному" адресу.