ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
24 ноября
176177 Топик полностью
Cepгeй Бopщ (19.12.2009 14:11, просмотров: 156) ответил ViorDash на Возможно ли чтобы IAR AVR для сохранения регистров при вызове interrupt подпрограмм использовал PUSH и POP вместо ST Rxx, Y- и LD Y+, Rxx. В настройках не нашел. Если нет, то для чего такая реализация, ведь два лишних регистра (R28, R29) при этом
У них организовано два стека - "настоящий" используется как стек возвратов (RSTACK), программный - как стек для данных (CSTACK). Сделано это из-за отсутствия какой-либо косвенной адресации стекового кадра в ядре AVR. Благодаря такому решению код получается более компактный и быстрый. Платить за это приходится регистровой парой Y и необходимостью прикидывать размер одного из стеков, чтобы он не налезал на второй.