IP2022 Users ManualSystem Architecture
www.ubicom.com
53
2.6.2
Reset and Interrupt Vectors
After reset, the PC is loaded with 0xFFF0, which is near the top of
the program memory space. Typical activities for the reset
initialization code include:
Setting up the FCFG register with appropriate values for flash
timing compensation.
Issuing a speed instruction to initialize the CPU core clock
speed.
Checking for the cause of reset (brown-out voltage, watchdog
timer overflow, or other cause). In some applications, a warm
reset allows some data initialization procedures to be skipped.
Copying speed-critical sections of code from flash memory to
program RAM.
Setting up data memory structures (stacks, tables, etc.).
Initializing peripherals for operation (timers, etc.).
Initializing the dynamic interrupt vector and enabling inter-
rupts.
Because the default interrupt vector location is 0x0000, which is in
shadow RAM, interrupts should not be enabled until the ISR is
loaded in shadow RAM or the dynamic interrupt vector is loaded
with the address of an ISR in flash memory. There is a single
dynamic interrupt vector shared by all interrupts. The interrupt
vector can be changed by loading the INTVECH and INTVECL
registers, or by issuing a reti instruction with an option specifying
that the interrupt vector should be updated with the current PC
value.