A distributed nodal system with a source computer processor node storing
program code for target node(s). A target node has an updatable firmware
memory storing program code for operating a target processor. The target
code comprises application code for controlling an embedded device,
primary communication code for communicating with a network, backup
communication code also having copy code for copying code between
portions of the firmware memory, and primary boot code for booting the
target processor and having check code. The check code determines whether
the primary communication code is corrupted, and if it is corrupted,
employs the copy code to overwrite the primary communication code with
the backup code. If uncorrupted, the check code determines whether the
application code is corrupted, and if corrupted, prevents execution of
the code.