summaryrefslogtreecommitdiff
path: root/nuttx/arch/hc/include
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2011-02-17 02:12:14 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2011-02-17 02:12:14 +0000
commitb67122892a05ffdaaf0e49835106a1bc44a01607 (patch)
treedcf8b3ca5215d3119fceb1b5e6eb203d0caada68 /nuttx/arch/hc/include
parent964be7e8d9f98f3ad6df915a712848abe94bcf93 (diff)
downloadpx4-nuttx-b67122892a05ffdaaf0e49835106a1bc44a01607.tar.gz
px4-nuttx-b67122892a05ffdaaf0e49835106a1bc44a01607.tar.bz2
px4-nuttx-b67122892a05ffdaaf0e49835106a1bc44a01607.zip
More m9s12x stuff
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3299 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/arch/hc/include')
-rwxr-xr-xnuttx/arch/hc/include/hcs12/irq.h54
1 files changed, 40 insertions, 14 deletions
diff --git a/nuttx/arch/hc/include/hcs12/irq.h b/nuttx/arch/hc/include/hcs12/irq.h
index 3149c543a..fb3c767e2 100755
--- a/nuttx/arch/hc/include/hcs12/irq.h
+++ b/nuttx/arch/hc/include/hcs12/irq.h
@@ -62,7 +62,8 @@
* TMPH
* TMPL
* FRAMEH
- * FRAMEL <-- SP after interrupt
+ * FRAMEL
+ * SP <-- SP after interrupt
* CCR
* B
* A
@@ -76,6 +77,7 @@
************************************************************************************/
/* Byte offsets */
+/* PPAGE register (only in banked mode) */
#ifndef CONFIG_HCS12_NONBANKED
# define REG_PPAGE 0
@@ -84,6 +86,8 @@
# define REG_FIRST_SOFTREG 0
#endif
+/* Soft registers (as configured) */
+
#if CONFIG_HCS12_MSOFTREGS > 2
# error "Need to save more registers"
#elif CONFIG_HCS12_MSOFTREGS == 2
@@ -108,20 +112,42 @@
# define REG_FRAMEH (REG_FIRST_HARDREG+6)
# define REG_FRAMEL (REG_FIRST_HARDREG+7)
-#define REG_CCR (REG_FIRST_HARDREG+8)
-#define REG_BA (REG_FIRST_HARDREG+9)
-# define REG_B (REG_FIRST_HARDREG+9)
-# define REG_A (REG_FIRST_HARDREG+10)
-#define REG_X (REG_FIRST_HARDREG+11)
-# define REG_XH (REG_FIRST_HARDREG+11)
-# define REG_XL (REG_FIRST_HARDREG+12)
-#define REG_Y (REG_FIRST_HARDREG+13)
-# define REG_YH (REG_FIRST_HARDREG+13)
-# define REG_YL (REG_FIRST_HARDREG+14)
-#define REG_PC (REG_FIRST_HARDREG+15)
-# define REG_PCH (REG_FIRST_HARDREG+15)
-# define REG_PCL (REG_FIRST_HARDREG+16)
+/* Stack pointer before the interrupt */
+
+#define REG_SP (REG_FIRST_HARDREG+8)
+# define REG_SPH (REG_FIRST_HARDREG+8)
+# define REG_SPL (REG_FIRST_HARDREG+9)
+
+/* On entry into an I- or X-interrupt, into an SWI, or into an undefined instruction
+ * interrupt, the stack frame created by hardware looks like:
+ *
+ * Low Address <-- SP after interrupt
+ * CCR
+ * B
+ * A
+ * XH
+ * XL
+ * YH
+ * YL
+ * PCH
+ * High Address PCL <-- SP before interrupt
+ */
+#define REG_CCR (REG_FIRST_HARDREG+10)
+#define REG_BA (REG_FIRST_HARDREG+11)
+# define REG_B (REG_FIRST_HARDREG+11)
+# define REG_A (REG_FIRST_HARDREG+12)
+#define REG_X (REG_FIRST_HARDREG+13)
+# define REG_XH (REG_FIRST_HARDREG+13)
+# define REG_XL (REG_FIRST_HARDREG+14)
+#define REG_Y (REG_FIRST_HARDREG+15)
+# define REG_YH (REG_FIRST_HARDREG+15)
+# define REG_YL (REG_FIRST_HARDREG+16)
+#define REG_PC (REG_FIRST_HARDREG+17)
+# define REG_PCH (REG_FIRST_HARDREG+17)
+# define REG_PCL (REG_FIRST_HARDREG+18)
+
+#define INTFRAME_SIZE 9
#define XCPTCONTEXT_REGS (REG_FIRST_HARDREG+17)
/************************************************************************************