ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
26 апреля
652239 Топик полностью
мимокрокодил (11.02.2016 14:44, просмотров: 1) ответил rual на Собрал таки вундервафлю, но есть два вопроса, важный и бонусный (ибо обошелся):
Это регулируется calling convention, для арма - AAPCS r4-r11 обязана сохранять (если портит) вызываемая функция, LR - вызывающая (потому что он испортится при вызове). Если функция никого не вызывает, то LR можно не трогать. Надо еще не забывать про выравнивание стека на 8 байт, а то можно огрести забавные глюки на ровном месте. Из-за этого компилятор может сохранять на регистр больше, чем необходимо. SVC может вызвать HardFault в случае Priority Escalation Если приоритет SVC ниже или равен, чем текущий, а также если PRIMASK == 1. В общем, если она не может немедленно исполниться. Прочитать можно в ARMv7-M Architecture Reference Manual (DDI0403)