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..

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

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..

599 次查看
donmarquardt
Contributor I

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

标记 (1)
0 项奖励
回复
0 回复数