fighting with interrupt vectors
[rpikern] / src / main.c
index 8bab5a1..39a44d9 100644 (file)
@@ -8,7 +8,9 @@
 #include "rpi.h"
 #include "contty.h"
 #include "serial.h"
+#include "timer.h"
 #include "video.h"
+#include "intr.h"
 
 void dbgled(int x);
 
@@ -22,6 +24,10 @@ int main(void)
        static char cmdbuf[256];
        static int cmdend;
 
+       unsigned int cpsr;
+       asm volatile("mrs %0, cpsr" : "=r"(cpsr));
+       printf("CPSR: %x (mode: %x)\n", cpsr, cpsr & 0x1f);
+
        rpi_init();
        /*init_serial(115200); done in rpi_init now for early debugging */
        con_init();
@@ -32,7 +38,12 @@ int main(void)
 
        video_init();
 
+       timer_init();
+       intr_init();
+       enable_intr();
+
        printf("Going interactive\n");
+
        for(;;) {
                while(ser_pending()) {
                        int c = getchar();
@@ -99,6 +110,9 @@ static void cmdrun(char *cmd)
                cur_y -= 10;
                video_scroll(cur_x, cur_y);
 
+       } else if(strcmp(cmd, "ticks") == 0) {
+               printf("%lu\n", num_ticks);
+
        } else if(strcmp(cmd, "help") == 0) {
                printf("help not implemented yet\n");
        } else if(strcmp(cmd, "ver") == 0) {