I'm using some ISRs for timers and for reconfiguring the DMAC after copying a block of ADC data to external memory.
While reading about another topic on this forum I noticed various mentions of
SF_CONTEXT_SAVE
R_BSP_IrqStatusClear(R_SSP_CurrentIrqGet());
SF_CONTEXT_RESTORE
However, I also saw various Synergy examples which don't use these. My current understanding is as follows:
SF_CONTEXT_SAVE and SF_CONTEXT_RESTORE are mainly used to enable ISR event tracing with TraceX. It shouldn't really matter if these are missing with the current implementation when this feature is not needed.
R_BSP_IrqStatusClear(R_SSP_CurrentIrqGet()); is used to clear the ISR flag of the current ISR to prevent calling it twice when it doesn't finish fast enough.
I also saw a mention that some peripherals might need some flags cleared in their ISRs (e.g. here: renesasrulz.com/.../interrupts-under-threadxhttps://renesasrulz.com/synergy/f/synergy---forum/7254/making-own-isr-in-s7g2 ). How can I find out what I need to clear? I don't clear anything right now.