Low-Level CPU Routines
The lib/cpu.S file contains low-level routines for handling specific
conditions related to the operation of the CPU:
init_interrupts Configures the location of exception and interrupt
vectors.
enable_interrupts Enables the delivery of interrupts to the configured
non-bootloader vectors.
handle_error_levelHandles the initial state of the CPU, making exception
and interrupt conditions possible.
These routines are called in an appropriate order in the general
initialisation code.
To support exceptions and interrupts, the following routines are defined in
the .vectors section of the payload:
ebase Handles TLB exceptions, jumping to the general exception
handler. The PIC32 products tested with this software do not
provide hardware that should raise such exceptions, however.
exc_handler Handles exception conditions, switching to a dedicated stack
and jumping to the exception_handler routine defined by an
application.
int_handler Handles interrupt conditions, switching to a dedicated
stack, saving register values, jumping to the
interrupt_handler routine defined by an application, then
restoring register values, switching back to the application
stack and returning to the interrupted code.