1. A method for upgrading firmware in an embedded system, comprising the steps of: providing a processor; providing a non-volatile programmable read only memory device having a fixed vector table, a boot area for storing boot code, a first application area for storing firmware, and a second application area for storing firmware; providing a random access memory device (RAM) having a software vector table and a RAM application area; programming the fixed vector table with a reset vector address and interrupt vector addresses, said reset vector address pointing to the boot code in said boot area and said interrupt vector addresses pointing to corresponding interrupt vector addresses in the software vector table; loading an upgraded version of firmware into one of the first application area or the second application area; resetting the processor to run the upgraded version of firmware; and filling the software vector table with proper corresponding interrupt vector addresses for the interrupt vectors contained in the fixed vector table as determined by the upgraded version of firmware.