OSDN Git Service

Added interrupt vector for IR.
authorShinichiro Nakamura <shinta.main.jp@gmail.com>
Tue, 29 May 2012 11:10:40 +0000 (20:10 +0900)
committerShinichiro Nakamura <shinta.main.jp@gmail.com>
Tue, 29 May 2012 11:10:40 +0000 (20:10 +0900)
firm/06/bootload/intr.S
firm/06/bootload/intr.h
firm/06/bootload/vector.c

index c8324eb..f7ad57a 100644 (file)
@@ -105,3 +105,29 @@ _intr_timintr:
        mov.l   @er7+,er5\r
        mov.l   @er7+,er6\r
        rte\r
+\r
+       .global _intr_remocon\r
+#      .type   _intr_remocon,@function\r
+_intr_remocon:\r
+       mov.l   er6,@-er7\r
+       mov.l   er5,@-er7\r
+       mov.l   er4,@-er7\r
+       mov.l   er3,@-er7\r
+       mov.l   er2,@-er7\r
+       mov.l   er1,@-er7\r
+       mov.l   er0,@-er7\r
+       mov.l   er7,er1\r
+       mov.l   #_intrstack,sp\r
+       mov.l   er1,@-er7\r
+       mov.w   #SOFTVEC_TYPE_REMOCON,r0\r
+       jsr     @_interrupt\r
+       mov.l   @er7+,er1\r
+       mov.l   er1,er7\r
+       mov.l   @er7+,er0\r
+       mov.l   @er7+,er1\r
+       mov.l   @er7+,er2\r
+       mov.l   @er7+,er3\r
+       mov.l   @er7+,er4\r
+       mov.l   @er7+,er5\r
+       mov.l   @er7+,er6\r
+       rte\r
index d31c9a0..875c250 100644 (file)
@@ -3,11 +3,12 @@
 
 /* ¥½¥Õ¥È¥¦¥¨¥¢¡¦³ä¹þ¤ß¥Ù¥¯¥¿¤ÎÄêµÁ */
 
-#define SOFTVEC_TYPE_NUM     4
+#define SOFTVEC_TYPE_NUM     5
 
 #define SOFTVEC_TYPE_SOFTERR 0
 #define SOFTVEC_TYPE_SYSCALL 1
 #define SOFTVEC_TYPE_SERINTR 2
 #define SOFTVEC_TYPE_TIMINTR 3
+#define SOFTVEC_TYPE_REMOCON 4
 
 #endif
index 3ddd93b..5b8aa89 100644 (file)
@@ -5,6 +5,7 @@ extern void intr_softerr(void); /* 
 extern void intr_syscall(void); /* ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë */
 extern void intr_serintr(void); /* ¥·¥ê¥¢¥ë³ä¹þ¤ß */
 extern void intr_timintr(void); /* ¥¿¥¤¥Þ³ä¹þ¤ß */
+extern void intr_remocon(void); /* ¥ê¥â¥³¥ó³ä¹þ¤ß */
 
 /*
  * ³ä¹þ¤ß¥Ù¥¯¥¿¤ÎÀßÄê¡¥
@@ -13,7 +14,7 @@ extern void intr_timintr(void); /* 
 void (*vectors[])(void) = {
   start, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
   intr_syscall, intr_softerr, intr_softerr, intr_softerr,
-  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+  NULL, NULL, NULL, NULL, intr_remocon, NULL, NULL, NULL,
   NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
   NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
   intr_timintr, intr_timintr, intr_timintr, intr_timintr,