Я хочу установить приоритеты прерываний для внутренних исключений процессора. Крейт cortex_m
обеспечивает легкий доступ к регистрам управления NVIC. В частности, есть метод, позволяющий установить приоритет для каждого прерывания.
let mut p = cortex_m::Peripherals::take().unwrap();
p.NVIC.set_priority(...);
set_priority
просит меня передать аргумент, указывающий, для какого прерывания я намерен изменить приоритет. Скажем, я хочу изменить приоритет для PendSV
. Однако передача cortex_m::peripheral::scb::Exception::PendSV
не будет работать, потому что она не реализует требуемую привязку типажа.
Я разрабатываю на плате STM32F407VGT6, поэтому я также заглянул в крейт stm32f4
, но не нашел никакого определения enum, которое могло бы помочь.
Должен ли я написать свой собственный enum, который реализует необходимый трейт, чтобы он мог указывать номера прерываний, или уже есть какой-то существующий крейт, который может заставить его работать?