Вход
Наше всё
Теги
codebook
无线电组件
Поиск
Опросы
Закон
Понедельник
5 мая
О смысле всего сущего
0xFF
Средства и методы разработки
Мобильная и беспроводная связь
Блошиный рынок
Объявления
Микроконтроллеры
PLD, FPGA, DSP
AVR
PIC
ARM, RISC-V
Технологии
Кибернетика, автоматика, протоколы
Схемы, платы, компоненты
ARM, RISC-V контроллеры
1514386
Топик полностью
Nikolay_Po
(25.04.2025 22:57, просмотров: 53)
ответил
vpv.vpv
на
Что ж, неважнецкий какой-то компилятор, значит. )) IAR AVR чётко сохраняет только те, которые меняются. Но! Стоит внутри П/П сделать ещё один вызов - всё. IAR сохраняет все регистры. Хотя вызов (я делал косвенные, т.е. через указатели) очень простой. Вот там я применял "__raw", т.е. указание IAR'у не сохранять ничего. Я сам сохранял что нужно (особенно эффективна пересылка пары регистров в другую пару за 1 такт), отчего реакция и отработка П/П увеличивалась в разы.
Попробовал заинлайнить в прерывании все вызовы. Заинлайнилось. Ни одного вызова подпрограммы. Но как было 22 инструкции пролога, так и осталось. Не оптимизирует сборка GCC 12 от WCH.
Ответить
Ну что ж. Остаётся себя утешать тем, что в мелких чипах CH32V оптимизация не особо нужна. Хотите быстрее - ставте камни пожирнее, там и мегагерцы выше, и аппаратное сохранение регистров. Либо ждите, когда до CH32V снизойдёт IAR. :))
-
vpv.vpv
(28.04.2025 09:18
)