From fd763486d875968941c77386e23936e817856c8e Mon Sep 17 00:00:00 2001 From: Josh Rahm Date: Fri, 20 Nov 2020 18:41:49 -0700 Subject: Finally got a peripheral interrupt! --- 02-usart/tests/test_irq.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 02-usart/tests/test_irq.c (limited to '02-usart/tests/test_irq.c') diff --git a/02-usart/tests/test_irq.c b/02-usart/tests/test_irq.c new file mode 100644 index 0000000..89eea11 --- /dev/null +++ b/02-usart/tests/test_irq.c @@ -0,0 +1,37 @@ +#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); +} -- cgit