We are using a 5329 processor and our (default isr) system hangs when "undefined" memory is addressed. I have tried to use the Address error ISR( at Vector 3) with no success. I do not get the interrupt when I address the non-existent memory. Here is the code I use to install the interrupt handler. It does show in the EDS Client. volatile MCF5329_STRUCT_PTR mcf5329_ptr; mcf5329_ptr = (MCF5329_STRUCT_PTR) _PSP_GET_MBAR(); if (_int_install_isr( (uint_32)MCF5329_EXC_ADDRESS_ERROR, | | | | (uint_32)MCF5329_EXC_ADDRESS_ERROR, | | | | | &AddressErrorInterrupt, | | | | | (void*)&Dummy_Data) == NULL) |
{ | | printf("MCF5329_EXC_ADDRESS_ERROR _int_install_isr failed"); |
} _mcf5329_int_init(MCF5329_EXC_ADDRESS_ERROR, CWD_INT_LEVEL, TRUE); I also tried the Core bus error interrupt at Source 62 in INTC0. Here is its code. As soon as the interrupt is enabled the ISR is called, even though I feel I cleared it. volatile MCF5329_STRUCT_PTR mcf5329_ptr; mcf5329_ptr = (MCF5329_STRUCT_PTR) _PSP_GET_MBAR(); | | uchar SCMISR = mcf5329_ptr->SCMISR; | | | mcf5329_ptr->SCMISR = SCMISR; // Clear Bus Error and core watchdog Interrupts |
if (_int_install_isr( | | | | (uint_32)MCF5329_INT_CFE, | | | | | &CFEInterrupt, | | | | | (void*)&Dummy_Data) == NULL) |
{ | | printf("MCF5329_INT_CFE _int_install_isr failed"); |
} _mcf5329_int_init(MCF5329_INT_CFE, CWD_INT_LEVEL, TRUE); | // | mcf5329_ptr->SCMISR = 2; // Clear and enable Bus Error |
mcf5329_ptr->CFIER = 1; // ENABLE Core Fault Interrupt _INT_ENABLE(); |