-
- Ещё проще - это PIC16, и клон его затолкали сопроцессором в CH32X035 ( и в др. ) - PIOC называется, 48МГц - 1 такт команды, жаль только что 2 i/o, но тоже вариант интересный - Zikon(10.04.2026 09:00)
- PY32F0xx например имеет тоже FastIO и на частоте 24МГц переключает выход за 1 такт - и при этом работает при 1.7-5.5В. AVR какое питание надо для 20МГц ? - Zikon(07.04.2026 07:26)
- сейчас Cortex-M тоже так умеет, FastIO называется, и даже stm32c011
имеет кэш инструкций и на частоте 48МГц за 1 такт переключает
выход, с учетом работы flash на 24МГц, а на частоте 24МГц многие
китайские клоны также за 1 такт переключают выход. - Zikon(07.04.2026 07:23)
- А при влёте в прерывание нужные команды точно уже будут в кэше
инструкций? Дело в том, что сбросить выход - это не всё. Выход надо
быстро сбрасывать по какому-то волЯтильному внешнему событию. Т.е.
по прерыванию. И замерять работу всей цепочки, например: "сработал
компаратор - отключился выход". - 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)