stryd_one Posted July 12, 2006 Report Posted July 12, 2006 Hi all,I'm a bit confused about the handling of the FSR0 and FSR2 pointer during the ISR's - is it saved when entering and restored on exiting the ISR, or carried into the ISR and lost on exit or...?From the words of the Boss:Following registers are dedicated for mainprograms, they will not be automatically saved before an interrupt call: TMP1...TMP5 and FSR0Following registers are dedicated for interrupt service routines, they shouldn't be used by mainprograms:IRQ_TMP1...IRQ_TMP5 and FSR2Following registers are stored automatically by the interrupt handler before a hook will be called, and they will be restored before the interrupt will be finished - therefore they can be used by the mainprogram and by ISRs without conflicts:FSR1, TBLPTRL, TBLPTRH, TABLAT, MIOS_PARAMETER1...MIOS_PARAMETER3And then on the ram handling doc available on the download page at ucapps.de:Question from Duggle:> Does FSR2 get saved and restored in the ISRs?> (if not then it can't be used in user routines without disabling interrupts)?> MIOS routines use FSR1 so if I use FSR1 completely in-between MIOS calls it > should be ok? (MIOS may destroy FSR1's content)> Are there any dangers of using FSR0? (It gets used by main, are there > any user hooks that should restore its content for use by main?Answer:All FSRs (FSR0, FSR1 and FSR2) as well as TBLPTR[LH], TABLAT and MIOS_PARAMETER[123] are stored by the interrupt handler. Yes, you can use FSR1 in between MIOS calles in your main program and in interrupt service routines w/o problems. What does happen to FSR0 and FSR2? Am I missing something? Quote
TK. Posted July 12, 2006 Report Posted July 12, 2006 Since MIOS V1.8, FSR2 is saved as well, and FSR0 is saved by the C wrapperMost of the older docs are inconsistent in the meantime, I know... biggest problem is, that all ISR related comments in the main.asm file are not correct anymore... just ignore itBest Regards, Thorsten. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.