AnsweredAssumed Answered

We are using a 5329 processor and our (default isr) system hangs when "undefined" memory is addressed and the Core Watchdog timer goes off resetting the system..

Question asked by Don Marquardt on Oct 2, 2013

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.

 

_INT_DISABLE();

      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();

 

 

Outcomes