А, может, просто открыть мурзилку и почитать? Или без роликов с ТыТруба ничего осилить не можем? https://gcc.gnu.org/onlinedocs/gcc/Func ... butes.html
Тема атрибутов тнсно связана со скриптами линковщика, так что запасайтесь чаем-кофе и читайте.
Получил сегодня CH32V305FBP6.
Сюрприз (отрицательный). ADC: Chanells: 2, Units: 1? (ADC_IN2/ADC_IN5 на пин 2)
В остальном: портировал почти свои программные коды для интерфейсы и к почти все используемые вн. устройства с других МК. В MounRiver Studio компактный прогр. код, быстрая компиляция, быстрая запись с программатора, надежная работа МК уже несколько недель наблюдения. CH32V/F нравятся.
[/uquote]Если обратиться к руководству "QingKeV2 Microprocessor Manual V1.2" (а именно архитектура QingKe V2A используется согласно технической документации на МК серии CH32V003), то на странице 15 в подразделе "3.4 Hardware Prologue/Epilogue (HPE)" написано, что при возникновении прерывания аппаратно всего за один такт исполнения сохраняются 10 регистров в аппаратном стеке, а на выходе из обработчика прерывания сохранённые 10 регистров аппаратно восстанавливаются, также за один такт. Поддерживаются до двух вложенных уровней прерываний. Для архитектур QingKeV3 и QingKeV4 сохраняются уже 16 регистров.
Таким образом компилятор понимает, что ему не надо генерировать пролог и эпилог функции для сохранения значения регистров, которые будут задействованы в функции обработки прерывания. За счёт этого снижается объём кода, вырастает скорость обработки прерывания. GCC должен быть с соответствующей "заплаткой" для использования такого режима.