aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2024-11-14 11:24:36 -0700
committerJosh Rahm <joshuarahm@gmail.com>2024-11-14 11:24:36 -0700
commit63054d2fdf9a0ae3e9dcdd0d20eb8714671a010b (patch)
tree7b5ad325f9f0c66907394914bb2acdaaa4275a61 /src
parentd1ebd3bd806f4b4e1f74703f682ca64994c79a28 (diff)
downloadch573-63054d2fdf9a0ae3e9dcdd0d20eb8714671a010b.tar.gz
ch573-63054d2fdf9a0ae3e9dcdd0d20eb8714671a010b.tar.bz2
ch573-63054d2fdf9a0ae3e9dcdd0d20eb8714671a010b.zip
Updates to how the ISR updates work.
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