Оптимизация видео на MIK32 «Амур»: борьба с кэшем и прерываниями
Запуск демо-сцены на отечественном RISC-V вскрывает жёсткую реальность. При работе кода из внешней Flash-памяти скромный объём кэша в 1024 байта рушит скорость в десять раз. Своё влияние вносит и тяжёлый оверхед стандартных прерываний Arduino.
Ради стабильных 30 FPS критичные участки переносятся в ОЗУ. Медленный программный SPI меняется на аппаратный, внедряется кастомный обработчик таймера, а кадры пакуются самописным блочным кодеком. Всё это работает, но требует ручной подгонки.
Проанализируем этапы хардкорной оптимизации.
Обсуждение 8
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram