aboutsummaryrefslogtreecommitdiff
path: root/interrupts.c
diff options
context:
space:
mode:
authorWojtek Kosior <kwojtus@protonmail.com>2020-01-02 13:24:29 +0100
committerWojtek Kosior <kwojtus@protonmail.com>2020-01-02 13:24:29 +0100
commit3941fe97783c7a31ab04fbfb127f5026dd31ef78 (patch)
tree523b0b1d626969c3eb52545b672ca909dd5ae31b /interrupts.c
parentea465f85cf7a47f488332509a2f6d7ae5c88057c (diff)
downloadrpi-MMU-example-3941fe97783c7a31ab04fbfb127f5026dd31ef78.tar.gz
rpi-MMU-example-3941fe97783c7a31ab04fbfb127f5026dd31ef78.zip
demo of arm timer irq
Diffstat (limited to 'interrupts.c')
-rw-r--r--interrupts.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/interrupts.c b/interrupts.c
index c6e3f17..62c644b 100644
--- a/interrupts.c
+++ b/interrupts.c
@@ -1,5 +1,6 @@
#include "io.h"
#include "svc_interface.h"
+#include "armclock.h"
void __attribute__((noreturn)) setup(void);
@@ -58,9 +59,16 @@ void generic_handler(void)
void irq_handler(void)
{
- puts("irq happened");
-
- while(1);
+ if (armclk_irq_pending())
+ {
+ puts("<<irq from timer>>");
+ armclk_set_timer_match_timeout(0x00100000);
+ }
+ else
+ {
+ puts("unknown irq");
+ while(1);
+ }
}
void fiq_handler(void)