allowing the new switched to code to determine which resources to reset thus if a driver for a particular peripheral has not changed functionality it need not be reset similarly embodiments allow for specifying if allocated resources such as stack and heap need to be relocated or reset other embodiments may additionally reset particular address ranges of ram reset the program counter and reset the pic working registers in operation the old code 216 validates the new code 218 configures the system to boot from the new code 218 and branches into a suitable entry point in the new code 218 with no system reset as will be described in greater detail below in some embodiments the new code 218 either includes code defining which peripherals need to be reset or for reading values defining which peripherals need to be reset the defined peripherals are then reset without requiring a system wide reset this is illustrated schematically with reference to fig3 shown is timeline 300 once the new code has booted to a first instruction 302 resetting of peripherals etc is accomplished by the new code having determined which peripherals if any need to be reset thus the stack may be reset if needed 304 the heap may be set up if needed those parts of sram that need to be initialized may be initialized 308 and those peripherals if any that need to be initialized may be initialized 310 the code itself begins to execute 312 as can be appreciated by resetting or reinitializing only those components which need to be the reset time is minimized more particularly shown in fig4 a is a schematic of a hardware implementation of a hot swap in accordance with embodiments shown are old code 216 and.