aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/blinky.c11
-rw-r--r--src/init.c1
-rw-r--r--src/isr.s1
3 files changed, 10 insertions, 3 deletions
diff --git a/src/blinky.c b/src/blinky.c
index 9f89238..355b479 100644
--- a/src/blinky.c
+++ b/src/blinky.c
@@ -12,9 +12,6 @@
void delay(void);
void main(void);
-IRQ(irq_on_systick) {
- main();
-}
uint32_t collatz(uint32_t n)
{
@@ -78,3 +75,11 @@ void main(void)
delay();
}
}
+
+IRQ(systick) {
+ collatz(5);
+}
+
+IRQ(exc) {}
+
+IRQ(nmi) {}
diff --git a/src/init.c b/src/init.c
index a81ce1d..30e2c6d 100644
--- a/src/init.c
+++ b/src/init.c
@@ -16,6 +16,7 @@ default_irq_handler(void)
weak, alias("default_irq_handler"), __section__(".isr_vector"))) \
irq(void)
+WEAK_IRQ(irq_on_reset);
WEAK_IRQ(irq_on_nmi);
WEAK_IRQ(irq_on_exc);
WEAK_IRQ(irq_on_systick);
diff --git a/src/isr.s b/src/isr.s
index 6a9e6cf..065450d 100644
--- a/src/isr.s
+++ b/src/isr.s
@@ -8,6 +8,7 @@ j on_reset /* first instruction. Should jump directly to on_reset */
isr_vector:
.align 4
.word 0
+ j irq_on_reset
j irq_on_nmi
j irq_on_exc