]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Demo/PIC32MEC14xx_MPLAB/src/MEC14xx/interrupts/girq24d.S
Add PIC32MEC14xx port and demo application.
[freertos] / FreeRTOS / Demo / PIC32MEC14xx_MPLAB / src / MEC14xx / interrupts / girq24d.S
diff --git a/FreeRTOS/Demo/PIC32MEC14xx_MPLAB/src/MEC14xx/interrupts/girq24d.S b/FreeRTOS/Demo/PIC32MEC14xx_MPLAB/src/MEC14xx/interrupts/girq24d.S
new file mode 100644 (file)
index 0000000..dcb62e3
--- /dev/null
@@ -0,0 +1,84 @@
+/*\r
+    Copyright (C) 2014 Microchip Inc.\r
+    All rights reserved\r
+\r
+    1 tab == 4 spaces!\r
+*/\r
+\r
+#ifdef __XC32\r
+#include <xc.h>\r
+#include <sys/asm.h>\r
+#else\r
+#include "Regs.S"\r
+#endif\r
+\r
+#include "MEC14xx/mec14xx_girqm.h"\r
+\r
+/******************************************************************/\r
+\r
+/***************************************************************\r
+ *  MEC14xx GIRQ24 Disaggregated Vector Jump table\r
+ *\r
+ ***************************************************************/\r
+\r
+    .extern girq24_b0\r
+    .extern girq24_b1\r
+    .extern girq24_b2\r
+\r
+#if GIRQ24_DISAGG != 0\r
+\r
+/* \r
+ * FreeRTOS Handler for MIPS M14K Software Interrupt 0 \r
+ * implemented in the porting layer.\r
+ */\r
+    .extern vPortYieldISR\r
+\r
+/*\r
+ * Disaggregated girq24_isr\r
+ * Program address of this version of girq24_isr into JTVIC GIRQ24\r
+ * Aggregator Control register with bit[0] = 1.\r
+ */\r
+\r
+/*\r
+ * NOTE: All the additional labels surrounding every instruction are\r
+ * there to force GCC OBJDUMP to disassemble microMIPS correctly.\r
+ */\r
+\r
+    .insn\r
+#ifdef __XC32\r
+    .section .girqs.girq24_isr, code\r
+#else\r
+    .section .girqs.girq24_isr,"x"\r
+#endif\r
+    .set  nomips16\r
+    .set  micromips\r
+    .set  noreorder\r
+    .set  noat\r
+    .ent girq24_isr\r
+    .global girq24_isr\r
+    .align 2\r
+\r
+girq24_isr:\r
+    J       girq24_b0\r
+g24b0b:\r
+    NOP\r
+\r
+    .align 2\r
+g24b1a:\r
+    J       vPortYieldISR   /* girq24_b1 */\r
+g24b1b:\r
+    NOP\r
+\r
+    .align 2\r
+g24b2a:\r
+    J       girq24_b2\r
+g24b2b:\r
+    NOP\r
+g24end:\r
+    .end girq24_isr\r
+\r
+#endif\r
+\r
+/******************************************************************/\r
+\r
+\r