Ayuda con puntero. Modulo Zigbee

Hola amigos, tengo una confusión acerca el manejo de unas excepciones en la CPU, las cuales se tratan en un contexto de interrupción. Bueno la cosa es que estoy confundido con los punteros y como funciona el asunto, haber si hay alguien amable en explicarme algo básico o darme algùn link donde pueda estudiar. Gracias de antemano. La definición de la rutina es la siguiente.

/* location of exception vectors in RAM */
#define BUS_ERROR *((volatile uint32 *)(0x4000008))
#define UNALIGNED_ACCESS *((volatile uint32 *)(0x4000018))
#define ILLEGAL_INSTRUCTION *((volatile uint32 *)(0x400001C))

// event handler function prototypes
PUBLIC void vBusErrorhandler(void);
PUBLIC void vUnalignedAccessHandler(void);
PUBLIC void vIllegalInstructionHandler(void);

BUS_ERROR = (uint32) vBusErrorhandler;
UNALIGNED_ACCESS = (uint32) vUnalignedAccessHandler;
ILLEGAL_INSTRUCTION = (uint32) vIllegalInstructionHandler;

PUBLIC void vBusErrorhandler(void)
{
Rutina Reset
}

en las direcciones de memoria es almacenado el vector de interrupcion.

Creo entender que BUS_ERROR esta definido como un puntero al puntero de una función ubicada en (volatile uint32) que como argumento ocupa el contenido de (0x4000008) eso es??? ademas como llama luego a la funcion vBusErrorhandler??? cuando el contenido de (0x4000008) deja de ser NULL o algo así???

Gracias por la ayuda, soy bastante nuevo en esto así que he tenido algunso problemas con esto jejjeje

Saludos
 
Atrás
Arriba