Embedded devices typically have an operating system, one or more
file-systems, as well as a bootloader and other data components resident
in flash memory. During software development and testing, there is
frequently a need to selectively update a combination of such images. The
described technique organizes the images in the flash memory such that
one can speed up the update process by eliminating relocation of existing
images. A command-driven update mechanism provides a flexible
process--eg, one can upload the images back to a host, one can update the
update code itself, etc. A start handshake is used that enables
auto-detection of the embedded serial port that is used for the update.