-
- А при влёте в прерывание нужные команды точно уже будут в кэше
инструкций? Дело в том, что сбросить выход - это не всё. Выход надо
быстро сбрасывать по какому-то волЯтильному внешнему событию. Т.е.
по прерыванию. И замерять работу всей цепочки, например: "сработал
компаратор - отключился выход". - vpv.vpv(08.04.2026 06:57)
- На AVR я такое делал в пре-прологе, до сохранения контекста. Просто
ставил инструкцию сброса бита в атрибут пре-пролога (avr-gcc).
Конечно, с кэшем - как повезёт, скорее нет, чем да. Но зато
максимально быстро. Nikolay_Po(422 знак., 08.04.2026 11:00)
- Разве naked в GCC RISK-V - не завезли? Вроде, klen его пользует: - Toчкa oпopы(1 знак., 08.04.2026 16:37, ссылка)
- И чего? Мне потом ручками в ассемблере разбираться, как контекст
сохранить, что сохранять, а что нет? Хватит с меня и FreeRTOS с его
кодом переключения контекста. - Nikolay_Po(08.04.2026 18:11)
- Значит я не так понял. - Toчкa oпopы(08.04.2026 22:08)
- Идея была в том, чтобы сделать быстрое действие (например,
отключение драйвера ключей) сразу по входу в прерывание, не
дожидаясь проталкивания в стек предыдущего контекста. Nikolay_Po(247 знак., 09.04.2026 08:32)
- Я использую IAR VAR, он сам всё ненужное удаляет. Если видит, что
флаги и регистры не меняются, то и никакого пролога в прерывании не
будет. Вот, например: vpv.vpv(394 знак., 09.04.2026 11:15 - 11:18)
- IAR в этом плане вообще продвинут. - Звepoящep(20.04.2026 08:10)
- Зачётно! - Nikolay_Po(09.04.2026 11:17)
- Теперь понятно. Спасибо за пролог. - Toчкa oпopы(09.04.2026 09:28)
- Я использую IAR VAR, он сам всё ненужное удаляет. Если видит, что
флаги и регистры не меняются, то и никакого пролога в прерывании не
будет. Вот, например: vpv.vpv(394 знак., 09.04.2026 11:15 - 11:18)
- Идея была в том, чтобы сделать быстрое действие (например,
отключение драйвера ключей) сразу по входу в прерывание, не
дожидаясь проталкивания в стек предыдущего контекста. Nikolay_Po(247 знак., 09.04.2026 08:32)
- Значит я не так понял. - Toчкa oпopы(08.04.2026 22:08)
- И чего? Мне потом ручками в ассемблере разбираться, как контекст
сохранить, что сохранять, а что нет? Хватит с меня и FreeRTOS с его
кодом переключения контекста. - Nikolay_Po(08.04.2026 18:11)
- Разве naked в GCC RISK-V - не завезли? Вроде, klen его пользует: - Toчкa oпopы(1 знак., 08.04.2026 16:37, ссылка)
- На AVR я такое делал в пре-прологе, до сохранения контекста. Просто
ставил инструкцию сброса бита в атрибут пре-пролога (avr-gcc).
Конечно, с кэшем - как повезёт, скорее нет, чем да. Но зато
максимально быстро. Nikolay_Po(422 знак., 08.04.2026 11:00)
- А при влёте в прерывание нужные команды точно уже будут в кэше
инструкций? Дело в том, что сбросить выход - это не всё. Выход надо
быстро сбрасывать по какому-то волЯтильному внешнему событию. Т.е.
по прерыванию. И замерять работу всей цепочки, например: "сработал
компаратор - отключился выход". - vpv.vpv(08.04.2026 06:57)