It is understood that the steps shown in FIG. 9 are merely illustrative and that additional steps may be added, that some steps may be omitted, and that the order of steps may be rearranged.
FIG. 10 shows an illustrative flowchart of steps for updating software via a physical port, according to an embodiment. Beginning with step 1002, the hazard detection system, and in particular, the software update module may detect and receive a software update package from a computer connected to a physical port of the hazard detection system. This software update package may be stored in an inactive portion of the NVM. At step 1004, the downloaded software package may be authenticated. The software package can be authenticated using any suitable technique. For example, in one approach the software update module can perform a series of integrity checks through a series of secure hash algorithm (SHA-1) checks on every code package within a software update binary. If the downloaded software package fails authentication, then the downloaded software update package may be deleted, as indicated by step 1006. In one approach, the entirety of the portion storing the unauthorized software update package may be deleted. Once deleted, the process may stop at step 1008. If the downloaded software package passes authentication, then the process proceeds to step 1010. At this point in the process, the authorized software update package is stored in an inactive portion of the NVM, but it is not yet being executed by any processor within the hazard detection system.