ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
15 июня
1591579 Топик полностью
Nikolay_Po (Сегодня, 17:32, просмотров: 74) ответил Nikolay_Po на RISC-V, прерывания, стек прерываний и mscratch применительно к ОСРВ Задал вопрос в телеграм-канале RISC-V MCU. Задам и тут:
CAUTON: Не используйте HPE с FreeRTOS. Путём долгих страданий, выяснил, что HPE не совместим с существующим шаблонным механизмом сохранения, а, главное, восстановления контекста. Причём выяснил это не сразу. Не давала покоя жажда оптимизаций и выжимки скорости. 

Копание во внутренностях переключения контекста, в portContext.h, показало, что формат сохранения контекста используется как для прерывания таймера, так и для прерывания переключения контекста. И снаскоку, за присест, мне не удалось добиться совместимости. Так или иначе, финальный, восстановленый контекст, перед возвратом из прерывания модифицируется. Чаще всего, модифицируется точка возврата. И модификации перед возвратом, делают невозможным использование аппаратного сохранения контекста.

Как только, осознав это, я выключил HPE глобально - О чудо! Проблемы со стабильностью ушли.