#include "test_harness.h" #include "core/irq.h" #include "core/nvic.h" TEST(irq, nvic) { interrupt_set_t is = { 0 }; interrupt_set_add(&is, IRQ_USART2); interrupt_set_add(&is, IRQ_USART3); enable_interrupts(&is); ASSERT_EQ(is.irqs[1], 0xC0); ASSERT_EQ(NVIC.ise_r[1], 0xC0); } TEST(irq, nvic_edgecase) { interrupt_set_t is = { 0 }; interrupt_set_add(&is, IRQ_WWDG_IRQ); interrupt_set_add(&is, IRQ_I2C1_ER); enable_interrupts(&is); ASSERT_EQ(is.irqs[0], 1); ASSERT_EQ(NVIC.ise_r[0], 1); ASSERT_EQ(is.irqs[1], 1); ASSERT_EQ(NVIC.ise_r[1], 1); } TEST(irq, enable_single_interrupt) { enable_interrupt(IRQ_USART2); ASSERT_EQ(NVIC.ise_r[1], 0x40); }