We are debugging a problem in our code, and ran across an unexpected item with regard to context saving in interrupts.
Looking at the code disassembly window in MPLab, there are no assembler directives after the Save() command. I have seen where we had to keep interrupts REALLY simple in the past, maybe this is why??
Here is what we see:
Code: Select all
821: }
822: Interrupt Flash(IPLow)
823: Save(FSR0,FSR1,PRODL)
824:
825: // if Ir_TX = false then
826:
827: If Net_Avail = 0 Then
18250 BC88 BTFSC 0xf88, 0x6, ACCESS
18252 D005 BRA 0x1825e
828: Inc(Net_Avail_Count)
18254 010A MOVLB 0xa
18256 4BCE INFSNZ 0xce, F, BANKED
18258 2BCF INCF 0xcf, F, BANKED
1825A 0100 MOVLB 0
1825C D023 BRA 0x182a4
-Tom