eddy-em.livejournal.com github.com/eddyem
-
- А у меня требуется реакция не дольше чем за 20мкс по паре
интерфейсов сразу. Обработка блока данных - намного дольше и должна
быть приоритетнее кода пользовательского режима. В принципе, как
предположил товарищ il-2, можно не выходя из текущего высокоприоритетного прерывания, после
снятия флага запроса прерывания, понизить текущий приоритет
выполнения кода, изменив значение BASEPRI и вызвать подпрограмму
обработки. Nikolay_Po(69 знак., 14.10.2025 13:02)
- Сильно сомневаюсь что это сработает, но это на уровне ощущений.
Прерывание обрабатывается в Handler Mode, а BASEPRI (насколько я
понимаю) влияет только на Thread Mode. - LightElf(14.10.2025 18:37)
- Хмм... Жаль, меня пока не интересует ARM, на данный момент работаю
с RISC-V QingKe4F от WCH. Nikolay_Po(211 знак., 14.10.2025 20:58)
- Про RISC-V ничего сказать не могу. У ARM регистр BASEPRI позволяет запретить более приоритетные прерывания, но не позволяет разрешить менее приоритетные. Выше писал, что, по отзывам, вроде бы можно понизить приоритет текущему прерыванию, но в доке ARM это отдельным пунктом не рекомендуется делать. - LightElf(15.10.2025 00:40, +1)
- Хмм... Жаль, меня пока не интересует ARM, на данный момент работаю
с RISC-V QingKe4F от WCH. Nikolay_Po(211 знак., 14.10.2025 20:58)
- Сильно сомневаюсь что это сработает, но это на уровне ощущений.
Прерывание обрабатывается в Handler Mode, а BASEPRI (насколько я
понимаю) влияет только на Thread Mode. - LightElf(14.10.2025 18:37)
- А у меня требуется реакция не дольше чем за 20мкс по паре
интерфейсов сразу. Обработка блока данных - намного дольше и должна
быть приоритетнее кода пользовательского режима. В принципе, как
предположил товарищ il-2, можно не выходя из текущего высокоприоритетного прерывания, после
снятия флага запроса прерывания, понизить текущий приоритет
выполнения кода, изменив значение BASEPRI и вызвать подпрограмму
обработки. Nikolay_Po(69 знак., 14.10.2025 13:02)