Вход
Наше всё
Теги
codebook
无线电组件
Поиск
Опросы
Закон
Среда
4 июня
О смысле всего сущего
0xFF
Средства и методы разработки
Мобильная и беспроводная связь
Блошиный рынок
Объявления
Микроконтроллеры
PLD, FPGA, DSP
AVR
PIC
ARM, RISC-V
Технологии
Кибернетика, автоматика, протоколы
Схемы, платы, компоненты
Микроконтроллеры AVR
1522060
Топик полностью
Ale3000
(02.06.2025 09:09, просмотров: 39)
ответил
vpv.vpv
на
Вот как это выглядит в листинге. В регисторовой паре R15:R14 лежит текущий указатель на нужную функцию. Функция "портит"только пару регистров. Её вызов происходит мгновено (команда MOVW - 1 такт). А вот преамбулы и послеамбулы прерывания из-за косвенного вызова длятся невыносимо долго и бестолково.
Так тут у вас функция вызывается по указателю. Конечно, компилятор не может знать, куда в данный момент указывает указатель. Если функцию вызывать напрямую, то компилятор не будет сохранять неиспользуемые регистры.
Ответить
Да, скорей всего это так. Но мне незачем одну и ту же функцию вызывать в прерывании - само прерывание и есть одна функция.
-
vpv.vpv
(02.06.2025 13:22
)