rtems_isr Spurious_Isr(
  rtems_vector_number vector
)
{
  /*int sp = 0; */
#if 0
  const char * const VectDescrip[] = {
    _Spurious_Error_[0],   _Spurious_Error_[0],  _Spurious_Error_[1],
    _Spurious_Error_[2],   _Spurious_Error_[3],  _Spurious_Error_[4],
    _Spurious_Error_[5],   _Spurious_Error_[6],  _Spurious_Error_[7],
    _Spurious_Error_[8],   _Spurious_Error_[9], _Spurious_Error_[10],
    _Spurious_Error_[11], _Spurious_Error_[12], _Spurious_Error_[13],
    _Spurious_Error_[13], _Spurious_Error_[14], _Spurious_Error_[14],
    _Spurious_Error_[14], _Spurious_Error_[14], _Spurious_Error_[14],
    _Spurious_Error_[14], _Spurious_Error_[14], _Spurious_Error_[14],
    _Spurious_Error_[15], _Spurious_Error_[16], _Spurious_Error_[17],
    _Spurious_Error_[18], _Spurious_Error_[19], _Spurious_Error_[20],
    _Spurious_Error_[21], _Spurious_Error_[22], _Spurious_Error_[23],
    _Spurious_Error_[24], _Spurious_Error_[23], _Spurious_Error_[23],
    _Spurious_Error_[23], _Spurious_Error_[23], _Spurious_Error_[23],
    _Spurious_Error_[23], _Spurious_Error_[23], _Spurious_Error_[23],
    _Spurious_Error_[23], _Spurious_Error_[23], _Spurious_Error_[23],
    _Spurious_Error_[23], _Spurious_Error_[23], _Spurious_Error_[25],
    _Spurious_Error_[26], _Spurious_Error_[26], _Spurious_Error_[26],
    _Spurious_Error_[26], _Spurious_Error_[26], _Spurious_Error_[26],
    _Spurious_Error_[26], _Spurious_Error_[26], _Spurious_Error_[26],
    _Spurious_Error_[26], _Spurious_Error_[26], _Spurious_Error_[27],
    _Spurious_Error_[27], _Spurious_Error_[27], _Spurious_Error_[27],
    _Spurious_Error_[27], _Spurious_Error_[28]};
#endif

  /*asm volatile ( "movea.l   %%sp,%0 " : "=a" (sp) : "0" (sp) ); */

  _CPU_ISR_Set_level( 7 );
  /*_UART_flush(); */
#if 0
  RAW_PUTS("\n\rRTEMS: Spurious interrupt: ");
  RAW_PUTS((char *)VectDescrip[( (vector>64) ? 64 : vector )]);
  RAW_PUTS("\n\rRTEMS:    Vector: ");
  RAW_PUTI(vector);
  RAW_PUTS(" sp: ");
  RAW_PUTI(sp);
  RAW_PUTS("\n\r");
#endif
  bsp_cleanup();

  /* BDM SIGEMT */
  asm("  .word  0x4afa");

  for(;;);
}
Beispiel #2
0
void bsp_fatal_extension(
  rtems_fatal_source source,
  bool is_internal,
  rtems_fatal_code the_error
)
{
  /* try to print error message to outbyte */
  RAW_PUTS("\r\nRTEMS: A fatal error has occured.\r\n");
  RAW_PUTS("RTEMS:    fatal error ");
  RAW_PUTI( the_error );
  RAW_PUTS(" (");
  outbyte( (char)((the_error>>24) & 0xff) );
  outbyte( (char)((the_error>>16) & 0xff) );
  outbyte( (char)((the_error>>8) & 0xff) );
  outbyte( (char)(the_error & 0xff) );
  RAW_PUTS(").\r\n");
}
Beispiel #3
0
rtems_isr Spurious_Isr(
  rtems_vector_number vector
)
{
  /*int sp = 0; */
#if 0
  const char * const VectDescrip[] = {
    _Spurious_Error_[0],   _Spurious_Error_[0],  _Spurious_Error_[1],
    _Spurious_Error_[2],   _Spurious_Error_[3],  _Spurious_Error_[4],
    _Spurious_Error_[5],   _Spurious_Error_[6],  _Spurious_Error_[7],
    _Spurious_Error_[8],   _Spurious_Error_[9], _Spurious_Error_[10],
    _Spurious_Error_[11], _Spurious_Error_[12], _Spurious_Error_[13],
    _Spurious_Error_[13], _Spurious_Error_[14], _Spurious_Error_[14],
    _Spurious_Error_[14], _Spurious_Error_[14], _Spurious_Error_[14],
    _Spurious_Error_[14], _Spurious_Error_[14], _Spurious_Error_[14],
    _Spurious_Error_[15], _Spurious_Error_[16], _Spurious_Error_[17],
    _Spurious_Error_[18], _Spurious_Error_[19], _Spurious_Error_[20],
    _Spurious_Error_[21], _Spurious_Error_[22], _Spurious_Error_[23],
    _Spurious_Error_[24], _Spurious_Error_[23], _Spurious_Error_[23],
    _Spurious_Error_[23], _Spurious_Error_[23], _Spurious_Error_[23],
    _Spurious_Error_[23], _Spurious_Error_[23], _Spurious_Error_[23],
    _Spurious_Error_[23], _Spurious_Error_[23], _Spurious_Error_[23],
    _Spurious_Error_[23], _Spurious_Error_[23], _Spurious_Error_[25],
    _Spurious_Error_[26], _Spurious_Error_[26], _Spurious_Error_[26],
    _Spurious_Error_[26], _Spurious_Error_[26], _Spurious_Error_[26],
    _Spurious_Error_[26], _Spurious_Error_[26], _Spurious_Error_[26],
    _Spurious_Error_[26], _Spurious_Error_[26], _Spurious_Error_[27],
    _Spurious_Error_[27], _Spurious_Error_[27], _Spurious_Error_[27],
    _Spurious_Error_[27], _Spurious_Error_[28]};
#endif

  /*asm volatile ( "movea.l   %%sp,%0 " : "=a" (sp) : "0" (sp) ); */

  _CPU_ISR_Set_level( 7 );
  /*_UART_flush(); */
#if 0
  RAW_PUTS("\n\rRTEMS: Spurious interrupt: ");
  RAW_PUTS((char *)VectDescrip[( (vector>64) ? 64 : vector )]);
  RAW_PUTS("\n\rRTEMS:    Vector: ");
  RAW_PUTI(vector);
  RAW_PUTS(" sp: ");
  RAW_PUTI(sp);
  RAW_PUTS("\n\r");
#endif
  bsp_generic_fatal( BSP_GENERIC_FATAL_SPURIOUS_INTERRUPT );
}