diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2011-02-17 02:12:14 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2011-02-17 02:12:14 +0000 |
commit | b67122892a05ffdaaf0e49835106a1bc44a01607 (patch) | |
tree | dcf8b3ca5215d3119fceb1b5e6eb203d0caada68 /nuttx/arch/hc/include | |
parent | 964be7e8d9f98f3ad6df915a712848abe94bcf93 (diff) | |
download | px4-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-x | nuttx/arch/hc/include/hcs12/irq.h | 54 |
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) /************************************************************************************ |