I'm changing the RFBSL (part of ezChronos project) to function without any user interaction (ie Pressing button to restart the upgrade process).
Change the BSL application to automatically restart the link and upgrade process on failure until an upgrade is successful.
I have a few questions regarding the low level code:
1. I removed the jump to and the ISR_port2code, seen in other BSL examples that multiple JMP $ are inserted in Z AREA CODE. Is this to jump back to PC for incorrect access or keep code-address alignment?
2. In the case of proper BOR type reset (power failure etc) the BSL code will be restarted correctly, but how do I safely get the BSL active again in the case of software reset? I've seen the RESET vector has been moved outside the vector tables (-Z(CODE)RESET=FFD8-FFD9) as to stop reset loop when 0XFFFE-0xFFFF is erased. In my case the reset loop will no occur but the device will still be inoperable and will not go back to the BSL.
Is a possible solution to load 0x1000 in the reset vector to force a BSL restart and clear it after the application has been successfully upgraded.