An embedded ROM-based processor system including a processor, system memory, a
programmable memory, a data selector and a patch controller. The system memory
includes a read-only memory (ROM). The programmable memory stores patch information
including patch code and one or more patch vectors. Each patch vector includes
a break-out address from the ROM and a patch-in address to a corresponding location
within the patch code. The data selector has an input coupled to the system memory
and an output coupled to the processor. The patch controller is operative to compare
an address provided by the processor with each break-out address to determine a
breakout condition, and to control the selector to transfer the processor to a
corresponding location within the patch code in response to a break-out condition.
The programmable memory may be volatile memory, where the patch information is
loaded from an external memory during initialization.